前面我写过很多关于数字化转型,云原生,微服务方面的文章。

虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不可逆的技术发展趋势。

企业IT架构转型,不只是单体应用简单拆分为微服务这么简单。而是整个IT应用架构模式发生巨大的变化,核心思想仍然是平台+应用的构建模式。

而这个平台也不是简单的IaaS平台或PaaS资源调度平台,而是当前主流说法的云原生技术中台。不仅仅提供容器云和容器资源编排调度,还得提供消息,缓存,数据库等各种技术服务能力,彻底实现从IT基础设施从资源层到逻辑层的抽象。

云原生技术中台-平台+微服务

在单体应用微服务化后,前期的软件研发和交付过程,后期的软件监控运维和治理能力都必须配套跟上。因此完整的云原生整体解决方案里面包括了DevOps持续集成和交付,微服务治理两块核心内容。

在当前云原生和微服务发展趋势下也可以看到,传统的SOA集成平台和ESB逐步会被API网关和能力开放平台所取代。而SOA治理也逐步变化为微服务治理。

虽然SpringCLoud框架体系里面已经有类似Zuul的网关组件,但是整个规划里面我们还是将API网关单列出来,因为整个API网关不仅仅应用于微服务架构体系和对外API接口暴露,更加重要的是将成为我们后续构建能力开放和服务能力聚合平台的一个关键集成平台。

整个云原生平台规划将围绕以下两点展开。

  • 容器云平台和DevOps支撑
  • 微服务全生命周期管理和能力开放

对微服务架构的支持和融合

在原来谈微服务架构的文章一直在强调,微服务架构不是简单的使用SpringCloud开发框架,更加不是简单的提供Rest API接口服务就是微服务架构。

更加重要的是微服务模块如何拆分,微服务API接口服务如何识别,粒度如何把控。其次更加重要的是微服务框架体系如何和DevOps支撑平台融合,如何和API网关集成融合,包括如何和后续的监控运维平台融合。这些都必须考虑清楚,才能够形成DevOps的基础能力平台。

在微服务架构实施过程中,需要有一系列的开发规范和技术标准也需要提供,包括模块的划分设计,API接口服务识别和定义,代码开发,测试,数据库拆分,安全,分布式事务处理,部署上线,监控,运维等,这些标准都必须定义清楚,否则整个微服务架构实施后由于模块拆分的更细,没有很好的研发过程管控,技术标准约束你反而会觉得比原来单体应用开发更乱。

PaaS技术服务平台构建

在原来谈私有云PaaS平台的时候就经常谈到里面有一个技术平台提供类似4A,流程,安全,缓存,消息,日志等各种技术服务能力。而在整个微服务架构体系实施中,也必须有一个完整的技术平台,每一个技术服务就是一个独立的微服务组件模块,可以独立部署和管控。

技术平台的各种技术能力,仍然是以独立的技术服务方式提供给整个微服务架构体系中。在整个微服务架构体系里面可以看到,内部的各个业务微服务模块调用技术服务API接口就不需要通过API网关,而直接走微服务注册中心即可。

监控平台-端到端的监控能力

对于监控平台可以看到,需要提供从资源到服务再到应用的端到端监控能力。最底层是服务器,数据库,中间件等资源监控。上面是服务和服务链监控,再上面是应用监控和端到端业务流程监控。

资源,服务,应用三个层面的应用之间本身又相互影响,存在勾稽关系,一个是资源最终暴露的性能问题可以反追溯到具体的应用业务功能功能,而具体的业务流程端到端监控本身又可以详细分析到某一个业务功能点和接口服务的性能数据。

微服务治理

微服务治理概括来说,实际上关键包括两个部分。

  • 其一是微服务应该如何拆分,API接口如何设计
  • 其二是运行期如何监控,管理,运维

上图给出的围绕微服务全生命周期管理和基于服务度量体系的持续运维监控两个方面展开,对于一些二级的内容在该图暂时无法展开,比如常说的服务版本管理,服务依赖分析也是微服务治理的关键内容,暂时在该图没有体现。

在运行期还有一个关键思维的转变就是不是简单的发生问题故障后的运维治理,而是应该基于监控预警分析下的主动的技术运营和SLA服务等级提升。

如果你要去给别人做微服务治理,实际上是客户在确定了微服务架构后就需要介入,包括选择什么样的开发框架,采用哪些开源技术,这些开源技术如何整合,微服务如何拆分,微服务开发过程如何规范化,如何持续集成和部署,API接口如何设计,微服务间如何集成,运行期微服务如何进行状态和性能监控,如何进行安全,日志,限流等管控。

能力是开放平台-大生态建设的基础

构建微服务开放框架,DevOps能力支撑平台或API网关可以实现的内部完整的微服务架构化,而如果要做到对外运营,服务聚合和大生态体系建设,更加重要的就是能力开放平台的建设,这个平台最终实现内部能力的开放,外围能力和生态的聚合,并走向产品化+运营化的发展方向。

能力开放在前面我谈到过,一个是完全自身已有能力的开放,一个是构建开放平台聚合外围能力。而只有聚合外部能力才是构建大生态,可持续发展的关键。能力开放也不是简单接入一个API接口,更加重要的是提供从能力开发接入,能力运行,能力消费订购,能力监控运维的全生命周期管理能力。

基于云原生平台的开发和集成

传统企业IT架构转型过程中可以看到几个关键点的变化:

  • 传统的单体应用-》独立自治的多个微服务模块
  • 传统的PaaS平台+ESB服务总线基础-》DevOps+容器化PaaS+API网关

简单来说就是你要做好IT架构的微服务化,中台化转型,那么你支撑平台这件事情也得跟上,平台提供共性能力支撑和能力开放,支持多个微服务模块持续集成和交付。在后期监控运维还得配合DevOps理念跟上,形成要给完整的IT生命周期闭环管理。

在进行API网关和DevOps支撑平台研发的时候,自己一直在思考两个重点,就是业务驱动和快速迭代,即基于实际的业务使用场景来思考和提炼产品应该具备哪些功能,实际的功能优先级是如何的。而业务场景驱动里面最重要的就是最终的用户角色分析,不同的用户角色实际的问题和需求是如何的。

底层平台如何提供管控治理能力和易用性?

拿API网关来说,不论是SpringCLoud框架里面的Zuul微服务网关,还是类似Kong,Orange等开源API网关产品,最早可能只是一个具备代理和路由转发,具备基本的安全,流控能力的网关引擎,连基本的管理界面都没有,到现在类似Kong已经形成了基本的管理前台界面,能够方面的进行API注册接入,各类插件模块的配置和添加,但是最终的使用者是谁呢?

我们分析类似Kong网关产品最终的使用者是偏业务系统本身的开发人员的,而不是面向统一的业务系统集成商或平台能力提供商的。

先不说类似我们当前集成平台实施中提供的各种服务接入,服务订购等各种服务流程,就连最基本的业务系统视角的功能也很难独立提供。

即业务系统开发人员是没法上这个管理平台的,那么如果业务系统需要查看注册接入了哪些服务,配置了哪些规则,具体服务调用实例和日志信息的时候,都无法提供这些能力,都需要进行定制化开发。而恰好这些当前开源API网关产品的痛点,可能就是定制化要给API网关的管理平台产品的优点。

也就是说当前API网关产品更多是面向已有微服务架构体系内的API能力对外开放需求来做的,而不是基于微服务架构体系里面多个业务系统,开发厂商间接口协同思路来做的。因此要将API网关产品转变为一个具备多系统集成能力的集成类产品,中间还有很多工作要做。

微服务实施配合研发过程和团队管理

当一个大的应用拆分为多个微服务并分配给多个厂商开发时,整个组织团队管理,研发过程管理,相互协同集成就变得非常重要。

举例来说,一个大的业务系统按微服务架构思路招标,比如一个供应链系统,招标的时候即按微服务模块划分思路拆分为了招投标管理,采购管理,供应商管理三个独立的技术标,后续三个开发商中标,每个开发商开发时候都采用微服务架构,比如招投标管理里面会继续拆分微多个微服务模块,而这个时候我们看到就存在两类接口集成问题,在实际协同上需要采用不同的集成策略来处理。

  1. 招投标内部多个微服务组件间接口集成:同一厂商,采用服务注册和配置中心即可,不需要网关
  2. 招投标和采购管理两个大子系统间集成:不同厂商,需要采用API网关来完成集成和协同

而这些就是实际我们面对的业务场景,集成场景需要这样来做,当你真正做到现场的实施项目的时候,这些关键需求自然会碰到。但是你如果完全是研发驱动,脱离市场和一线客户需求,那么最终产品将出现很多关键功能性缺失。

那么当你无法在前期通过需求调研或竞品分析各种方式采集到完整的用户需求,并整理为产品需求的时候,你需要考虑的就是基于敏捷开发思路下的产品快速迭代。

而快速迭代本身又有两个重点。

  1. 短周期:必须是短周期,1周到4周,短周期目的就是真正让进度可视,可见,可验证。
  2. 可使用:可使用是一个关键点,即迭代发布的版本一定是可以发到现场让用户真正开始使用的版本。

任何迭代版本的发布,是否可用必须是一个关键的衡量敏捷项目管理和迭代质量的指标。举个例子来说,我们准备1个月发布V1.0初始迭代版本,但是发布后发现这个版本根本用不起来,我们又陆续发布了1.1,1.2,1.3三个小版本才真正用起来,而这三个小版本的发布可能又用了2个月的时间。也就是说你的产品真正用户开始使用,真正开始支撑业务用了3个月的时间。那么这种形式主义上的迭代没有任何意义。

通过迭代的方式是让你进一步的收集需求和优化改进,但是一定不是关键需求缺失导致产品根本无法使用。如果一个迭代版本无法使用,那么发布到现场本身也没有任何意义。

冠以敏捷而抛弃过程并导致混乱,太强调沟通而无法进行基础工件交付,开起来很美好的短周期产品发布但是却是一个无法真正用起来的半成品,这些都是伪敏捷的自欺欺人做法。

传统IT架构转型,从云原生平台到微服务应用构建相关推荐

  1. AI TALK | 云原生时代的微服务架构与关键技术

    随着云原生与微服务技术的逐步发展,业界也逐步构建出一整套比较完整的微服务技术体系. 面向云原生时代,微服务架构是从业人员绕不开的一个话题,腾讯云AI&腾讯优图的内容风控安全审核能力也与微服务技 ...

  2. 云原生时代,微服务如何演进?

    简介:云原生时代,微服务和云原生会产生怎样的关系?云原生时代的微服务又有什么特点?当前有哪些比较活跃的微服务项目?阿里巴巴资深技术专家李响从微服务的生命周期.流量治理.编程模型以及可信安全4个方面,分 ...

  3. 【云原生】了解微服务低代码平台

    目录 一.星链简介 二.那么研发挑战有哪些挑战? 三.星链目标 1.设计原则 2.关键技术 3.业务价值 四.VMS:简单灵活的编程模型 五.Serverless:计算资源模型 六.星链典型应用场景 ...

  4. 快速了解云原生中的微服务应用(内含福利)

    [摘要] 云原生应用时代,如何集中团队力量在业务场景设计和实现,从而最大化软件研发ROI?如何利用云服务厂商,高效率低成本的开发高性能高可靠的微服务应用? "未来的软件一定是生长于云上的&q ...

  5. 传统企业应用转型--从0到1的微服务之路

    给团队内部做的一个小分享,欢迎拍砖.. 转载于:https://www.cnblogs.com/jager/p/6946923.html

  6. KubeVela:标准化的云原生平台构建引擎

    作者 | 孙健波(天元) 来源|阿里巴巴云原生公众号 本文由"GO 开源说"第三期 KubeVela 直播内容修改整理而成,视频内容较长,本文内容有所删减和重构. 点击查看视频 K ...

  7. 从阿里云容器攻防矩阵API安全生命周期,看如何构建金融安全云原生平台

    [编者按]云原生技术正在助力银行通过差异化业务进行创新,却也带来了由于研发/运维人员对新架构不熟悉所导致的基础设施风险.业务风险及数据暴露风险.如何在飞速更迭的技术环境下保持业务持续发展,同时保证业务 ...

  8. 架构演化:云原生时代开启之系列一演化篇

    信息技术从出现伊始到渐成主流,其趋势经历了软件.开源和云三个阶段: 软件改变世界.纵观人类社会漫长的发展历程,农耕时代.工业时代与信息时代可谓是三个明显分水岭,每个时代人类涉及的领域范畴均喷井式增长. ...

  9. Aruba发布业界首款服务智能边缘的云原生平台Aruba ESP

    利用AI 和自动化技术打造智能网络:支持业务连续性任务,驾驭未来智能边缘 慧与公司旗下的Aruba今日推出业内首款 AI 驱动的云原生平台 Aruba ESP(边缘服务平台),该平台建立在AIOps. ...

  10. 资深架构师谈云原生生态的基石Kubernetes

    谈到Kubernetes就不得不谈到容器.几年前容器技术大热,现在基本归于平淡,之前大家提到的容器通常是指Docker容器,甚至很多人认为容器就等同于Docker,还有很多人像操作虚拟机一样使用容器. ...

最新文章

  1. 退出oracle系统,配置Oracle随系统启动和关闭
  2. 多进程实现生产者消费者
  3. 耿建超英语语法---被动语态
  4. zing jvm_Zing加快了JVM应用程序的预热
  5. mvc5 + ef6 + autofac搭建项目(三)
  6. 38.使用标签-基础表单标签
  7. C# 获取当前程序集版本号,获取当前编译时间
  8. 21天学通JAVA——学习笔记
  9. 网络安全中常见网络命令
  10. PHP经典实用案例1000个
  11. 2019牛客多校第八场 BBeauty Values dp
  12. 用Python复现机器学习中12种经典降维算法
  13. android 开发框架 andbase,Android快速开发框架andbase
  14. Android学习网站资源
  15. 在线教育大数据营销平台实战(搭建篇)
  16. git branch -D 大写的D 删除分支
  17. 寻找最称手的思维导图软件(思维导图大比拼)
  18. cba比赛比分预测_今晚五场CBA比赛预测
  19. 巧说table的几种构造方式
  20. ubuntu libiconv库 arm交叉编译

热门文章

  1. 深信服SCSA认证过程记录
  2. 服务器装系统蓝屏怎么办,重装系统蓝屏怎么办
  3. 在 ASP.NET MVC 中充分利用 WebGrid
  4. QQ for linux(ubuntu) 下载安装教程
  5. 深入浅出设计模式---7、策略模式
  6. 基于摄像头循迹的电子设计竞赛论文
  7. Windows 8 开发者预览版下载及简体中文语言包下载
  8. java虚拟机工作原理_java虚拟机原理及工作原理都是什么?java虚拟机如何运行?...
  9. 《数据结构 严蔚敏C》期末高频考题整理(含详解)
  10. 6款字体转换工具网站,一键生成想要字体!