前言
混迹IT行业多年,仍然还是普通的码农一枚。最近偶然拜读了资深CTO人月大佬的博客,收益匪浅,字里行间都是对架构的深度认知,而非简单的技术方案的陈述和前篇一律的面试宝典。
人月大佬整体技术类的文章是围绕企业架构和信息化规划,SOA,云原生技术解决方案,数字化转型和中台建设等方面展开。同时也兼顾一些关于个人知识管理和思维方面的文章。
人月聊IT:博文链接
一、坚持和专注-长期主义者
有人会经常问我为何能够坚持和保持每天一篇的文章输出从不间断,在头条你看到的是我最近半年的文章写作。而实际上我从16年就开始在新浪博客写作,在知乎也有思维专栏,整个写作周期已经超过15年。任何事情都不会是一蹴而就的,是一个长期坚持和专注的过程。
要对我个人有所了解,可以先看以下几篇文章。
人在职场,我始终想强调一点就是持续不断的学习和成长,而且你要意识到你是在为你自己的将来学习和实践,不仅仅是得到应有的工作报酬,更加重要的是提升自己的技能和经验。
活着还是忙着等死?而真正的活着就是要不甘寂寞,打破熵增定律,突破自己的舒适区,而不是作茧自缚和画地为牢。
二、思维和个人知识管理
思维和个人知识管理实际上是在非技术领域我思考最多的一个小领域。从10多年前关注个人知识管理,到最近几年对思维和问题分析解决层面的关注和总结。
作为个体成长,可以看到始终就是一个不断的学习实践,认识和理解事物,分析和解决问题的持续迭代过程,在这个过程中我们不断的积累自己的知识库,做事情的方法和模式。而以上这些都属于思维方面的内容。
既然类似创新都有TRIZ等科学的方法论和框架作为指导。那么思维同样也可以,研究思维首先就是要梳理清楚思维整体的框架逻辑,其次才是从上向下的展开各个子项的研究,最后再融合为一个整体。
因此在我发布的思维类文章实际都是围绕整体框架展开,即:
主线:包括思维框架和思维逻辑两大方面内容
分支:包括了学习方法实践,知识库积累,事物认知和决策,问题分析解决
以上即是我重点关注和归纳整理的思维方面的内容。
整个思维框架分解展开后我要阐述的内容就在上面部分。其中包括了学习方法模式,知识经验库积累,事物认知和决策,问题分析和诊断,最终解决和呈现逻辑几个方面的内容。进一步的延伸阅读指引如下:
1.三层六阶段学习金字塔-学习方法和模式
2.思维究竟是什么-思维的整体框架和逻辑
3.思维究竟是什么-思维的逻辑和模式匹配
4.我是如此思考的-思维整体框架和逻辑
5.技术人员如果跳出盒子,实现思维和认知升级
6.如何全面认识和分析事物-从简单归纳到多维思考能力培养
7.问题分析和解决逻辑-麦肯锡七步成诗仅是开始
8.个人知识管理培训分享
9.个人知识管理培训总结和分享
10.从表象到根源-一个软件系统JVM内存溢出问题分析解决全过程
11.碎片化工作和时间-如何构建体系化知识库提升系统思维
后面文章都没有补充相关链接,请大家直接访问人月大佬的原文博客。
三、数字化转型整体思考
对于企业数字化转型,关键词和热点太多,从消费互联到产业互联网,从智能制造到数字孪生,从信息化到数字化。因此要了解数字化转型首先要建立对其核心要素和框架的模型,比如上图,核心业务价值链还是体现在连接-数据-智能上,底层支撑又体现在技术平台+业务中台建设上。
要理解数字化转型,建议先阅读我整理的核心要素和能力框架构建思考这篇文章,建立对整个数字化转型完整的知识框架结构。
1、企业数字化转型-核心要素和能力框架构建思考
2、企业数字化转型-传统架构到中台微服务
3、传统企业数字化转型-从消费互联到产业互联
4、谈SAFe规模化敏捷框架助力企业数字化转型
5、传统企业IT架构转型-不是简单去追逐中台,微服务等热点
四、云原生整体解决方案
对于云原生,是我整个文章输出里面比重最大的部分,常说的微服务,DevOps,容器云等都可以纳入到云原生技术实践体现中。如上图,我们也构建了覆盖整个软件生命周期的云原生解决方案技术中台。在该图中可以更加清楚的看到各个技术组件所处的位置。
从阿里达摩院发布的2020年10大科技趋势中将云原生纳入,到华为最近发布了云原生2.0端到端解决方案,再到各大云服务厂商持续贡献到CNCF基金会开源项目,整个云原生发展如火如荼。
那么企业如何理解云原生,如何逐步迁移系统上云,如何构建一个私有云和公有云的混合云管理平台才是关键需要思考和总结的内容。
01 云原生-不是简单的微服务+DevOps+容器云集成
02 对企业IT系统全部迁移公有云的演进路线思考
03 读红帽Redhat云原生应用的构建之路白皮书
04 对基于云原生解决方案的技术中台产品规划和架构思考
05 你应该了解的Serverless无服务器架构和应用场景
06 传统IT架构转型-从SOA和微服务到云原生解决方案实践
07 阿里-华为-腾讯三大主流公有云平台云原生解决方案对比分析
08 从公有云到混合云-青云,灵雀云提供云原生解决方案解析
09 云计算和云原生服务商-从云原生技术到云原生开源生态竞争
10 对网易轻舟云原生软件平台的分析和思考
11 构建从云原生到多云环境下的能力适配和支撑平台
12 一文了解我国贡献给CNCF云原生基金会开源项目
13 云原生技术实践-关键要素和原则
14 对阿里重磅发布的云原生架构白皮书的初步解读
15 三大运营商联合华为等发布的《电信行业云原生白皮书》解读
五、企业架构和微服务规划咨询
对于传统企业架构规划,我们在多个大项目中均有实践,而今年的一个重要输出即是围绕中台建设和传统IT架构微服务化,对已有的企业架构规划方法进行了优化和重构,形成了新的微服务架构规划咨询方法论。
其核心点仍然体现在微服务如何拆分,API接口如何识别上。在这部分输出中,强烈建议大家阅读业务中台建设方法论对传统企业架构规划方法的改进一文。
01 从企业架构到信息化规划,从现状调研到架构设计的核心逻辑
02 业务中台建设方法论对传统企业架构规划方法的改进
03 企业架构规划-SOA服务架构设计和服务目录库规划实践
04 SOA规划-ESB服务总线体系架构和演进路线设计
05 从微服务架构咨询到技术中台建设方案
06 企业信息化规划核心逻辑和详细案例分享
07 企业信息化规划建设和IT治理管控能力提升思路分享
08 从埃森哲IT规划咨询方法论里究竟可以学习什么
09 企业中台规划咨询和微服务架构建设实施方案分享
六、中台和微服务
我们对中台建设的整体知识体系重新进行梳理。即从动态生命周期和静态维度拆分两个方面来构建一个完整的知识体系架构图。
对于该图,很多地方还不是很完善,后续我对中台架构和建设的知识体系将基于该图进一步做细化和调整。比如横向分层,可以进一步拆分为资源层,中台+服务层,应用层。对于业务层面也需要进一步拆分为组织,管理,业务流程几个方面。
但是从上面我们也基本可以看到完成一个中台建设所涉及到的业务规划,架构设计,开发实施,过程支撑方面的关键内容。这个关键内容仍然是围绕我前面提到的,即:
企业中台构建 =》业务规划设计(业务层面)+云原生架构(技术层面)
对于业务规划设计方面,核心的知识体系仍然是结合SOA和云计算,微服务架构思想的企业架构规划和领域模型设计。在云原生架构层面,重点仍然是微服务架构,DevOps和容器云。
01 从SOA架构思想到中台和微服务,太多的基础概念需要澄清
02 从微服务基本概念到核心组件-通过一个实例来讲解和分析
03 传统企业应以业务驱动构建中台,最大化保留IT遗留资产
04 数据中台核心概念理解了吗?我试着从最简单模型开始讲解
05 中台规划中微服务粒度究竟应该如何划分?你可以从以下几点考虑
06 微服务架构下如何解耦,对于已经紧耦合下如何重构?
07 微服务下产品集成和集成测试框架流程
08 传统企业微服务架构转型-从问题分析到规划实施
09 互联网中台思想和建设方法到传统企业为何水土不服?
10 参加华南CIO大会:平台+应用-传统IT架构的微服务化改造
11 企业IT架构转型中微服务架构实践中常见问题总结
12 谈基于平台+应用思想下的企业微服务架构转型
13 单体应用到微服务架构转型-实践过程总结
14 企业中台建设成熟度和关键指标分析
15 基于企业自建电商平台来思考中台和微服务架构演进
16 微服务架构下的API接口驱动开发,设计和集成
七、DevOps持续集成和交付
对于DevOps属于云原生的一个关键要素,但是在云原生里面更多的是将其作为敏捷研发,持续集成和交付,团队和组织文化的改进。在我输出的DevOps文章中,一方面是对整个DevOps成熟度模型的学习和总结,另外一个方面是结合我们自己的DevOps支撑平台产品的研发和实践总结,其中又包括了敏捷研发,持续集成和交付,流水线设计,自动化测试,自动化运维等内容。
01 DevOps最佳实践-处理好敏捷研发,持续集成和容器云三者集成
02 从敏捷开发到持续交付-DevOps成熟度模型解析
03 企业DevOps实施收益价值和难点解析
04 企业DevOps过程实践中若干问题的思考总结
05 对DevOps过程实践的一些思考和总结
06 对DevOps流水线设计的优化和改进实践
07北京DevOps大会资料学习整理
08 企业微服务转型和DevOps研发运维一体化方案思考
09 谈AIOps基础-从自动化运维到智能化运维
10 GOPS-2020全球运维大会深圳站DevOps相关材料学习
11 自动化功能测试和接口测试工具整理
12 从用户故事地图到Scrum敏捷研发管理
八、SOA参考架构和ESB总线
现在谈中台,微服务很多,但是可以看到核心还是SOA架构思想,云集中化思想。因此对于SOA架构思想,SOA规划方法,服务架构规划进一步理解是很有必要的。
具体在我今年出版的《SOA与大数据实战-企业私有云平台规划和建设》一书中有详细说明可以参考,该书虽然成书时间比较早,当时还没有微服务的概述,但是里面谈到的平台+应用的开发模式,组件化开发方法在当前仍然适用。
其次,虽然当前谈微服务比较多,但是企业传统IT转型到微服务会有相当漫长的一个时间周期,包括有些内部IT本身也不适合转为微服务架构,因此对于SOA集成平台和ESB总线,和微服务架构下的API网关,本身也会共存相当长一段时间。
01 一文详细讲解从接口集成到SOA架构思想
02 业务和流程驱动的SOA服务识别方法总结
03 SOA服务架构规划-从方法论到实践分享
04 谈SOA和云计算关系和相互演进融合
05 SOA和云计算-企业私有云PaaS平台建设实践
06 SOA和云计算-企业私有云平台规划和建设实践
07 IT系统和应用集成-从SOA架构思想到服务架构规划设计
08 技术咨询应该遵循什么方法?从SOA到EDA事件驱动架构研究
09 ESB企业服务总线功能,需求和核心架构分析
10 开源ESB服务总线产品试用和对比分析
11 大型ESB服务总线平台服务运行分析和监控预警实践
12 ESB总线接口服务运行日志存储和查询优化实践
13 对ESB服务总线和API网关产品集成和融合分析
14 大型集团ESB服务总线平台建设项目高可用性实践总结
15 聊聊消息中间件的关键特性和问题总结
九、API网关和能力开放平台
对于API网关是整个微服务架构体系里面的一个关键技术组件内容,当前基本都是以开源API网关来构建自己的解决方案和能力开放平台。
API网关本身也是中心化的架构模式,但是这种架构模式可以很方面的通过各种自定义和可配置的插件来实现安全,流控,日志等服务治理能力。在ServiceMesh没有大面积采用的情况下,通过API网关来实现服务治理管控仍然是最佳的一种选择。
01 一文详细讲解API网关核心功能和API管理扩展
02 从能力开放平台到能力中台构建思考
03 能力开放平台-最大化体现企业中台对外价值
04 开源API网关APISIX安装和初步验证
05 对API网关注册和接入的接口安全管理总结
06 微服务和API网关限流熔断实现关键逻辑思路
07 开源API网关Kong基本介绍和安装验证
08 微服务去中心化架构下为何还要用API网关?
09 开源API网关Kong的管理平台Konga安装验证
10 开源API网关Goku简介和简单安装验证
11 通过API网关实现微服务管控-限流,熔断和降级
十、SOA治理和微服务治理
对于微服务治理在前面已经谈到了实际上包括了微服务模块本书和微服务API接口治理两个方面的内容,而不能简单理解为API接口的治理。因此微服务治理应该进一步融入IT治理和SOA治理两个部分的内容。
如果重新给微服务治理一个定义,应该如下:
微服务治理是针对企业组织和业务目标,制订一套标准的管理,业务,技术,过程规范体系,实现微服务从需求,设计,开发上线,运行,下线的全生命周期管理能力。同时构建一套完整的度量指标体系,通过实时的日志和性能数据采集,持续的监控服务运行监控状态,并执行相应的限流,预警等管控策略,以确保微服务的持续健康,可靠和高效运行。
微服务治理概括来说,实际上关键包括两个部分。
即在微服务需求和设计期是如何进行微服务拆分,接口颗粒度设计;在运行期是如何基于度量体系进行监控并形成闭环持续优化改进。
01 从传统服务链监控到端到端流程监控技术实现
02 大型ESB服务总线平台服务运行分析和监控预警实践
03 基于ESB和API网关的服务运行监控分析和实践
04 通过API网关实现微服务管控-限流,熔断和降级
05 微服务架构下的高可用和高性能设计
06 从ESB服务组合编排到NetflixConductor微服务编排
07 微服务架构下分布式事务处理方案选择和对比
08 从API网关的去中心化到ServiceMesh分布式服务治理
09 从SOA治理到微服务治理,对整体框架构建的再思考
10 谈ServiceMesh微服务治理在云原生解决方案中作用
十一、数据治理和主数据
对于数据治理这块,主要是重新梳理了数据治理整体框架结构,数据治理体系本身应该包括数据管理体系和数据价值体系两个方面内容。
对于数据管理体系本身又应该围绕静态和动态两个维度来思考,在静态维度重点是数据对象和数据架构,而在动态维度重点是数据全生命周期管理。数据管理最终是将数据沉淀为资产开放和共性,让数据产生价值。
01 从数据治理到数据资产管理-数据治理框架再思考
02 主数据管理平台解决方案和建设重点
03 谈MDM主数据管理系统设计和实现关键点
04 数据质量管理中的数据稽核平台建设
05 谈智慧城市顶层设计和结合SOA和大数据的平台层建设规划
06 集团大数据平台和用户系统建设方案总结和分享
07 数据可视化-监控大屏呈现和拓扑图绘制工具总结
08 从商用报表谈自定义报表和可视化监控大屏设计
十二、软件架构和软件工程
架构设计包括了功能性架构和技术架构设计两个部分的内容,功能性架构解决业务流程和功能问题,而技术架构解决非功能性需求等问题。两种架构都包括了动态和静态两个方面的内容,对于功能性架构中动态部分为业务流程驱动全局用例,用例驱动的用例实现等;对于技术架构中动态部分为架构运行机制,而静态部分为框架,分层等方面的内容。
当前在敏捷研发和微服务架构下,往往很多人都忽视了整体架构设计。
在这里我再次强调对于全新系统的构建不适合敏捷研发,其前提仍然首先要进行完整的业务建模和软件架构设计,确定微服务划分和关键API接口,然后才能够开始后续迭代开发工作。架构完整性,领域模型等将在微服务开发中越来越受到应有的重视。
01 软件架构设计分层模型和构图思考
02 一文讲解业务系统软件架构设计核心内容和逻辑
04 对一个软件项目架构设计研发管理过程的评估和优化
05 谈DDD领域驱动设计和建模
06 对领域模型和上下文边界分析来划分微服务的再思考
07 微服务架构设计实践总结和思考
08 微服务架构下的高可用和高性能设计
09 对高可用集群构建的思考
10 业务系统非功能性架构和高可用性设计
总结
一直认为技术上的功底和能力很难通过只言片语体现出来,但是人月大佬的文章充满了对架构的深度思考,对软件思维的归纳总结,对微服务、中台、云原生的深度认识,字里行间铺面而来。
正如人月大佬文章中说的,每个程序员都应走出技术狂热误区,锻炼核心全局思维能力。不然永远只是技术的搬运工,永远的码农。