延吉湖北乐清贵港襄阳宜春
投稿投诉
宜春榆林
滕州锦州
襄阳晋中
泰州云南
贵港许昌
娄底河南
乐清寿光
阜阳汉中
湖北漳州
海口陕西
延吉东营
河源海南

对阿里重磅发布的云原生架构白皮书的初步解读

4月20日 小米粒投稿
  今天准备整理和分享下阿里云发布的云原生架构白皮书。在今年7月份,由阿里云20位云原生技术专家共同编撰的《云原生架构白皮书》正式对外发布。据官方介绍,本书涵盖了云原生架构的产生缘由、阿里云对于云原生架构的定义、目前行业领先的云原生技术、阿里巴巴的云原生架构设计、云原生架构的实践案例、云原生架构未来发展趋势等内容。
  下载地址:
  https:developer。aliyun。comtopiccnarchitecturepaper
  阿里云以自身实践与服务百万付费用户的丰富实践经验为基础。从云原生架构定义出发,构建基于实际业务场景的完整云原生架构体系。为企业CTOCIO提供战略参考,为广大研发工程师提供业务洞察,助力云上客户建立最具业务价值的云原生架构。
  整个白皮书分了7个部分的内容,准备一次对每个部分内容做个说明。为什么需要云原生架构对于企业的CIO而言,原来企业内部IT建设以烟筒模式比较多,每个部门甚至每个应用都相对独立,如何管理与分配资源成了难题。大家都基于最底层IDC设施独自向上构建,都需要单独分配硬件资源,这就造成资源被大量占用且难以被共享。
  但是上云之后,由于云厂商提供了统一的IaaS能力和云服务,大幅提升了企业IaaS层的复用程度,CIO或者IT主管自然而然想到IaaS以上层的系统也需要被统一,使资源、产品可被不断复用,从而能够进一步降低企业运营成本。
  所有这些问题都指向一个共同点,那就是云的时代需要新的技术架构,来帮助企业应用能够更好地利用云计算优势,充分释放云计算的技术红利,让业务更敏捷、成本更低的同时又可伸缩性更灵活,而这些正好就是云原生架构专注解决的技术点。
  具体内容解读:
  对于云计算技术发展这么多年,可以看到类似阿里,华为,腾讯等各大公有云服务厂商推出的IaaS云资源池,提供弹性计算和弹性存储能力已经被大部分企业所接受。即很多企业已经从自建IDC数据中心,转变为直接使用公有云提供的弹性计算和存储服务能力。
  而当前企业面临数字化转型,面临更加激烈竞争的市场环境,对企业本身的业务敏捷响应能力要求也更加急迫。那么在这种背景下自然带来新的问题,就是企业的IT系统如何能够更加快速敏捷的响应业务需求,能够实现高效率的从设计开发到云端环境的自动化交付能力,能够在保证最低成本投入情况下实现IT应用已有的高可用性和弹性扩展能力。
  当你在单纯的使用IaaS资源池的时候,你开发的IT系统的技术平台,架构,开发过程方法等云服务商都不需要关心,但是到了敏捷高效的云端交付阶段,那么实际对企业自动的IT应用架构,开发过程方法等都会提出更高的要求和需求。
  当然,企业在整个应用交付过程中,也存在明确的需求如下:敏捷性的需求:如何更加高效,快捷的进行应用集成交付技术人员需求:企业IT团队人员应该更加关注业务功能实现而非技术底层可运维需求:IT系统应该可运维,同时方便后续敏捷变更迭代成本需求:在最低成本投入的情况下保证高可用性和高安全性
  而以上就是需要云原生架构的关键原因,至于云原生架构里面提到的微服务,DevOps,容器云,持续集成和交付等都是为了上述目标达成而努力。
  再次重申我原来的一个观点,即云原生架构的推出,核心目标就是方便企业能够更加高效敏捷的使用云平台各类服务能力,同时实现企业IT应用快速向云端持续交付。云原生架构定义
  对于CloudNative翻译为云原生,是MattStine提出的一个概念,它是一个思想的集合,包括DevOps、持续交付(ContinuousDelivery)、微服务(MicroServices)、敏捷基础设施(AgileInfrastructure)、康威定律(ConwaysLaw)等,以及根据商业能力对公司进行重组。CloudNative既包含技术(微服务,敏捷基础设施),也包含管理(DevOps,持续交付,康威定律,重组等)。
  因此云原生是一系列Cloud技术、企业管理方法的集合。在一般用法中,云原生是一种构建和运行应用程序的方法,它利用了云计算交付模型的优势。云原生是关于如何创建和部署应用程序,和位置无关。这意味着应用程序位于云中,而不是传统数据中心。
  在白皮书里面,阿里从技术角度给出了云原生架构的一个定义如下:
  从技术的角度,云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化的剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等),使业务不再有非功能性业务中断困扰的同时,具备轻量、敏捷、高度自动化的特点。
  简单来说,云原生架构解决的一个核心问题就是IT系统和应用的开发只需要关注业务功能需求实现,而对于其它的IT基础设施,技术平台,消息缓存等各类技术服务等和业务无关的东西都不需要关心,而应该由云平台来提供。其次,云平台提供一种方便应用开发和集成的工具和平台,来实现持续集成和交付。
  从上图可以看到增加了PaaS层内容,对于狭义的PaaS平台更多的是实现中间件应用资源池,实现应用自动化部署和资源动态扩展能力,即我们常说的APaaS内容,但是到了云原生的PaaS需要进一步实现。数据库资源池能力,即数据库即服务各类技术服务能力,类似消息,缓存,通知,日志等持续集成能力,即我们说的DevOps过程支撑能力
  各类和业务无关的技术服务都应该由云平台来提供,即业务代码的开发人员技能栈中,不再需要掌握文件及其分布式处理技术,不再需要掌握各种复杂的网络技,通过这种简化让业务开发变得更敏捷、更快速。
  软件一旦开发完成,需要在公司内外部各类环境中部署和交付,以将软件价值交给最终客户。基于云原生的自动化软件交付相比较当前的人工软件交付是一个巨大的进步。以微服务为例,应用微服务化以后,往往被部署到成千上万个节点上,如果系统不具备高度的自动化能力,任何一次新业务的上线,都会带来极大的工作量挑战,严重时还会导致业务变更超过上线窗口而不可用。
  云原生架构原则
  书里面转了谈了云原生架构的原则,在这里我们可以简单总结下。
  即云原生架构的原则就是应该方便企业IT应用持续,高效敏捷,高可用,低成本的向云端环境交付。要实现这个特点,我们可以看到。持续交付:涉及到微服务化,DevOps和容器云能力高可用性:既涉及到应用本书的高可用性设计,也涉及云平台的高可靠和安全低成本:云平台具备弹性扩展能力,按需使用
  主要架构模式
  服务化架构是云时代构建云原生应用的标准架构模式,要求以应用模块为颗粒度划分一个软件,以接口契约(例如IDL)定义彼此业务关系,以标准协议(HTTP、gRPC等)确保彼此的互联互通,结合DDD(领域模型驱动)、TDD(测试驱动开发)、容器化部署提升每个接口的代码质量和迭代速度。服务化架构的典型模式是微服务和小服务(MiniService)模式。
  其次就是ServiceMesh服务网格,Mesh化架构是把中间件框架(比如RPC、缓存、异步消息等)从业务进程中分离,让中间件SDK与业务代码进一步解耦,从而使得中间件升级对业务进程没有影响,甚至迁移到另外一个平台的中间件也对业务透明。
  也就是我们常说的通过Mesh化实现在彻底去中心化的方式下完成微服务治理工作。
  ServerLess无服务器化则是云原生的一个终极期望目标,虽然短期难以实现。但是在无服务器化下,IT应用和软件的开发才能够彻底不关心数据库和应用中间件,不关心技术平台和开发框架,而只需要关心具体核心业务功能的代码实现,关心服务究竟如何组合和组装。
  反模式单体应用硬拆微服务
  在反模式部分这点需要特别拿出来强调,即我们在IT应用建设或传统应用微服务化改造过程中经常犯错的地方,就是不考虑业务逻辑复杂性和底层数据的耦合性,硬拆分为粒度太细的太多微服务,导致后续的集成和管理工作量剧增。
  在书里面提到三个典型例子如下:小规模软件的服务拆分:软件规模不大,团队人数也少,但是为了微服务而微服务,强行把耦合度高、代码量少的模块进行服务化拆分,一次性的发布需要拆分为多个模块分开发布和维护;
  数据依赖:服务虽然拆分为多个,但是这些服务的数据是紧密耦合的,于是让这些服务共享数据库,导致数据的变化往往被删除到多个服务中,造成服务间数据依赖;
  性能降低:当耦合性很强的模块被拆分为多个微服务后,原来的本地调用变成了分布式调用,从而让响应时间变大了上千倍,导致整个服务链路性能急剧下降。
  在我们进行系统微服务化的时候务必不要犯类似的错误。云原生主要技术
  对于云原生的主要技术,实际上在我前面多篇文章里面都有谈到。简单来说就是容器和容器编排技术,微服务,DevOps,ServiceMesh服务网格,Serverless几个关键点。
  下面还是基于书里面的顺序脉络,多以上几个关键技术点展开说明下:
  容器技术
  容器作为标准化软件单元,它将应用及其所有依赖项打包,使应用不再受环境限制,在不同计算环境间快速、可靠地运行。
  如上图,容器技术大家都比较清楚了,简单来说和传统虚拟机技术最大区别就是共享操作系统内核,但是又能够通过类似沙箱机制实现资源和进程隔离。由于共享操作系统内核,因此整体整体更加轻量,性能更好,而且资源损耗也最少。
  容器编排
  一谈到容器,一定会谈到Kubernetes,对于Kubernetes已经成为容器编排的事实标准,被广泛用于自动部署,扩展和管理容器化应用。Kubernetes提供了分布式应用管理的核心能力,其中就包括了动态资源调度,应用自动化部署和托管,集群心跳监测和自动修复,服务发现和负载均衡,集群弹性伸缩等。
  也就是我们常说的PaaS平台中的应用托管和资源动态调度,实际上都需要通过Kubernetes来实现,因此Kubernetes可以理解为容器阶段的核心PaaS应用组件。Kubernetes的控制平面包含四个主要的组件:APIServer、Controller、Scheduler以及etcd,具体如下图所示:
  微服务
  微服务模式将后端单体应用拆分为松耦合的多个子应用,每个子应用负责一组子功能。这些子应用称为微服务,多个微服务共同形成了一个物理独立但逻辑完整的分布式微服务体系。这些微服务相对独立,通过解耦研发、测试与部署流程,提高整体迭代效率。
  此外,微服务模式通过分布式架构将应用水平扩展和冗余部署,从根本上解决了单体应用在拓展性和稳定性上存在的先天架构缺陷。但也要注意到微服务模型也面临着分布式系统的典型挑战:如何高效调用远程方法、如何实现可靠的系统容量预估、如何建立负载均衡体系、如何面向松耦合系统进行集成测试、如何面向大规模复杂关联应用的部署与运维。
  书里面提到了微服务架构的发展演进模式,在这里总结如下:第一代:只实现了单体应用的微服务化拆分第二代:增加了服务注册和发现中心,实现集成的API接口治理能力第三代:ServiceMesh服务网格第四代:Serverless无服务器化架构
  如上图,实际上从服务网格发展到无服务器化重要有两点。其一是容器层下沉为FaaS服务统一提供能力,其二就是原来微服务进一步拆分为微逻辑或代码片段,不再有开发技术框架概念。
  主要微服务技术
  ApacheDubbo作为源自阿里巴巴的一款开源高性能RPC框架,特性包括基于透明接口的RPC、智能负载均衡、自动服务注册和发现、可扩展性高、运行时流量路由与可视化的服务治理。经过数年发展已是国内使用最广泛的微服务框架并构建了强大的生态体系。
  为了巩固Dubbo生态的整体竞争力,2018年阿里巴巴陆续开源了SpringCloudAlibaba(分布式应用框架)、Nacos(注册中心配置中心)、Sentinel(流控防护)、Seata(分布式事务)、Chaosblade(故障注入),以便让用户享受阿里巴巴十年沉淀的微服务体系,获得简单易用、高性能、高可用等核心能力。Dubbo在v3中发展ServiceMesh,目前Dubbo协议已经被Envoy支持,数据层选址、负载均衡和服务治理方面的工作还在继续,控制层目前在继续丰富IstioPilotdiscovery中。
  Serverless无服务器化
  Serverless是一种构建和管理基于微服务架构的完整流程,允许你在服务部署级别而不是服务器部署级别来管理你的应用部署。它与传统架构的不同之处在于,完全由第三方管理,由事件触发,存在于无状态(Stateless)、暂存(可能只存在于一次调用的过程中)计算容器内。
  我在前面一篇文章里面谈到过,在Servverless架构下可以看到没有复杂的开发框架,也没有重的中间件容器,只有一个个新粒度的微服务API,微功能的实现,这些实现也不存在传统的打包和部署动作。也就是说整个软件的开发过程实现完全的面向服务化,你可以使用第三方已有的服务,你开发完成的微功能也是服务,你呈现给用户的是多个服务的串联和组装。
  在这种场景下没有任何的中间件资源需要你去关心和维护,类似传统模式下我们可能需要关心和运维我们的数据库,关心和运维我们的Tomcat容器服务器,我们有复杂的编译构建,打包部署动作,而这些在无服务器架构模式下都没有了。体现出现的是函数或事件,而函数本身也是服务。
  在本书里面,阿里也给出了一个对比表格如下:
  可以看到Servverless架构粒度更加细,更加轻量高效,弹性效率也更高,而且按量计费的模式也更加灵活。对于书里面也给出了Servverless架构的一些适用场景,如下:小程序WebMobileAPI后端服务大规模批处理任务基于事件驱动架构的在线应用和离线数据处理
  所以可以看到当前Servverless架构和应用还是具有很大的局限性,对于企业传统IT应用的开发并不适合采用Servverless架构进行。
  ServiceMesh服务网格
  ServiceMesh是分布式应用在微服务软件架构之上发展起来的新技术,旨在将那些微服务间的连接、安全、流量控制和可观测等通用功能下沉为平台基础设施,实现应用与平台基础设施的解耦。这个解耦意味着开发者无需关注微服务相关治理问题而聚焦于业务逻辑本身,提升应用开发效率并加速业务探索和创新。
  换句话说,因为大量非功能性从业务进程剥离到另外进程中,ServiceMesh以无侵入的方式实现了应用轻量化,下图展示了ServiceMesh的典型架构。
  对于ServiceMesh服务网格,可以很方便的和K8s和容器技术进行集成,在镜像制作阶段自动下发边车代理。因此服务网格我始终任务是在云原生架构和解决方案下,解决微服务治理问题的关键技术,必将得到更加广泛的应用。
  DevOps持续集成和交付
  对于DevOps我在前面很多文章都谈到过,要特别注意的就是DevOps不仅仅是一系列开源的技术和工具的融合,更加重要的是一种持续集成的思维和敏捷的文化。
  文化、自动化、度量和共享四个方面相辅相成,独立而又相互联系,所以要落实DevOps时,要统一考虑。通过CAMS也认识到,CICD仅仅是实现DevOps中很小的一部分。DevOps不仅仅是一组工具,更重要是代表了一种文化,一种心智。
  对于DevOps详细内容可以参考我前面文章:
  阿里云原生架构设计方法
  在该书里面,阿里还给出了一个云原生的41架构设计模型ACNA。
  ACNA是一个41的架构设计流程,4代表架构设计的关键视角,包括企业战略视角、业务发展视角、组织能力视角和云原生技术架构视角;1表示云原生架构的架构持续演进闭环。4个架构视角和一个闭环的关系如下图。
  ACNA除了是一个架构设计方法,也包含了对云原生架构的评估体系、成熟度衡量体系、行业应用最佳实践、技术和产品体系、架构原则、实施指导等。
  ACNA将云原生化分割成服务化能力(Service)、弹性能力(Elasticity)、无服务器化程度(Serverless)、可观测行(Observability)、韧性能力(Resilience)、自动化水平(Automation)六个不同维度(SESORA),每个评估维度设立ASNA1至ASNA4四个不同等级并依次计作0至3分,同时设立零级、基础级、发展级、成熟级四个不同成熟等级。
  云原生架构成熟度模型的提出,对企业云原生化现状、能力和发展路径不清晰等问题,给出评估与优化方向,帮助企业走上数字化转型最短路径。
  对于这个成熟度模型,我们再做下初步的分析如下:
  对于自动化能力,在二级就需要具备基于容器的CICD能力,到了三级和四级只是更加的自动化和智能化。可以看到DevOps是整原生的一个基础。
  对于可观测性而言,在二级就需要在资源池和日志监控的基础上具备完整的APM应用性能监控能力,而到了三级更加强调在一个大规模,分布式的软硬件环境下的链路监控能力和性能度量分析,问题诊断能力,以实现持续的性能优化。
  对于无服务化程度这个维度很有意义,即我们希望的就是一些底层资源和基础设施都应该服务化,其中最难的就是我们常说的数据库资源的服务化,即表格里面说的有状态存储的服务化和云化,到了三级阶段这点就必须实现了。
  弹性计算和扩展,二级还可以是半自动或半闭环,但是到了三级希望就是全部自动化和闭环,而这个跟数据库本身的服务化关系紧密,如果数据库没有服务化就很难完全做到全自动扩展。
  对于服务化能力在二级你只需要具备基础的微服务治理能力即可,但是到了三级必须实现全面的服务化并建立服务治理管控体系,到了四级即更加强调基于ServiceMesh服务网格的思路来构建分布式,去中心化的微服务治理管控体系。
  注:对于阿里云原生产品介绍,云原生案例,云原生趋势分析三个部分的内容,准备后续再单独开一篇文章来进行说明。
投诉 评论 转载

五四青年视频出炉,在央视镜头下,众星真实颜值高低一瞧便知五四青年视频出炉哈喽小伙伴们,说到央视镜头的厉害大家都是有所耳闻的吧?众所周知,央视向来都是最喜欢用真实的镜头却呈现明星的状态好坏,央视也从来不需要去考虑明星的颜值形象问……同学聚会,中途他偷偷把单买了,临走时老板却说请买一下单踏入职场后,几乎每个人整天奔波于工作和家庭,慢慢忘记了自己那段肆意妄为的青春。同学聚会已经成为许多人工作多年后最喜欢的聚会,因为可以和以前读书的朋友们在一起,聊聊过往,无所谓功……爆笑故事应聘时所遇到的搞笑趣事文火火(本账号特约撰稿人)小赵是一个爱书法又写不好的人,跟老师学了两天半,自己以为水平很高了,便不学了。他想找个工作,于是走了几家公司,可都没应聘上,不但没应聘上,还让老……真香!新电商模式让营业额涨三成河南省服装行业协会人士奔赴一线调研服装企业复工复产情况受访者供图河南商报首席记者李兴佳3月16日至23日,河南省服装行业协会调研走访109家服装企业,得出调研报告:……大湾区中秋晚会发力,华晨宇激昂献唱,花花女儿共团圆今年的中秋节与以往有些许的不同,为什么这么说呢?因为今年不只是有央视中秋晚会,大湾区也举办了盛大的中秋晚会,并且与此同时还实时进行了首届粤港澳大湾区购物节群星接力公益直播环节。……若干年后,独生子女与二胎家庭子女,会有很大的区别2015年我国全面开放了二胎政策,由此引发了社会的极大反响。毕竟计划生育政策实行了多年,一夕之间改变让很多家庭猝不及防。况且,目前社会压力较大,很多家庭养育一个孩子的成本就比较……歌手赵传1961年出生台湾,祖籍广西崇左市天等县,代表作小小哈喽,大家好我是红莲说到台湾娱乐圈,有很多人祖籍是中国内地,比较有名的明星,就是林青霞,林青霞祖籍山东省莱阳市,还有我们熟悉的二郎神焦恩俊,他的祖籍是山东省青岛市。还有很……攀登者人生就是一场攀登,时间是阶梯,目的是更好的自己看完《攀登者》,心里有些欢喜,这部聚集了吴京、胡歌、井柏然、章子怡、张译等明星的片子,并没有让人失望。当吴京饰演的方五洲登上珠穆朗玛峰顶部的时候,章子怡饰演的徐缨已经闭上了眼睛……黄圣依带80岁婆婆直播引争议,全程喊叫卖货,婆婆一脸疲惫无人如今的直播是越来越火了,以前一听到直播卖货大家想到的就是网红。可是如今,连明星艺人也挤进了直播卖货的行业中。原因无可厚非,一场带货直播可以挣到他们拍一部戏的钱,谁不想直播……李沁说恋爱中不安的本质是在意《机智的恋爱》由爱奇艺出品的当代青年恋爱社交图鉴真人秀,节目呈现了当代青年多元社交模式。节目通过对素人嘉宾的交往过程和明星艺人的观察引导,带观众识别交友中的真情和假意。在……23个网贷平台被查封,欠的钱不用还了?只需3分钟,XXX钱就到账;手续简单,到账快;利息每天只要几毛钱;相信很多人都听到或者看到过这样的广告,很多人看到这就会误以为贷款很简单,而这些网贷平台也正是……对阿里重磅发布的云原生架构白皮书的初步解读今天准备整理和分享下阿里云发布的云原生架构白皮书。在今年7月份,由阿里云20位云原生技术专家共同编撰的《云原生架构白皮书》正式对外发布。据官方介绍,本书涵盖了云原生架构的产生缘……
朝阳群众又立功!李云迪被举报嫖娼被抓,黄海波柯震东皆在此失手根据真实案件改编的电视剧,要账男的人生绝路黎姿大奶奶,中国首位女明星,主动为丈夫纳妾,三人和谐相处3365岁老帅哥执掌女排帅印,郎平是他的小迷妹,曾带领男排走向巅肖申克的救赎告诉我们不能享受孤独的人,不配拥有自由郭德纲的相声究竟是精华还是糟粕?与姜昆苗阜这些主流相比如何?69岁张纪中再次当爸,现任妻子小他31岁,曾带人怒砸前妻家金泰梨,成不了金泰熙,可能是全度妍见过辣目洋子跳舞吗?肉肉的身材灵活的四肢,和郭麒麟共舞CP味性别对立会不会越讨论越对立?心居顾昕最后入狱了是怎么回事顾昕坐牢跟冯茜茜有关吗号手就位大结局欧阳俊牺牲,林安邦提干,夏拙黄文有缘无份一次家庭运动会学生作文2012年龙年企业年会横幅标语男人最大的成功莫过于婚姻的成功俞敏洪:中国富有的教师6个经期减肥方法瘦出好身材LV母公司和中国大妈看上了中国丝绸第一股妈妈过生日作文五篇为啥富人对亲戚吝啬却对朋友大方?聪明人,都懂在弱关系上不计较荣枯鉴立领刺绣皮草外套搭配皮裤优雅知性又性感(图)罗伯特帕丁森ES杂志封面大片,搞怪画风诠释实力派个性大班健康教案

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利