开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:微服务和 Serverless 架构-云原生架构核心技术总结】
课程地址:https://edu.aliyun.com/course/3112075/lesson/190233
微服务和 Serverless 架构-云原生架构核心技术总结
内容介绍:
一.微服务架构——更小更敏捷的业务单元
二.容器技术——更高效更安全的打包部署方式
三.Serverless平台——更智能更便利的运行平台
四.云原生时代推荐的企业级应用架构
一.微服务架构——更小更敏捷的业务单元
微服务架构下的核心技术特点大体上可以归纳为三点:
1. 去中心化的微服务架构,将大型应用和为其配套的大型研发团队拆成较小的业务单元模块和一次能用两张披萨饼喂饱的小型研发团队,同时尽量将研发、运维和运维集中在一个团队内,团队选择更加适合自身业务特点的开发语言存储技术进行单独的开发、测试、部署和升级。
2. 通过微服务拆分并发扩展和数据扩展以及弹性扩容功能来应对高并发场景下的流量洪峰,同时构造微服务异地多活架构,提高服务集群可用性。
3.在微服务架构中,除了架构微服务核心组件和框架,应用托管和微服务治理能力同样是其能够高效稳定提供服务的重要基础支撑。
二.容器技术——更高效更安全的打包部署方式
容器技术的主要特点有以下几点:
1.相对于计算资源消耗巨大的虚拟机方式,基于Linux的容器资源消耗会比虚拟机低很多,更有利于提高资源使用效率。
2.在部署应用时,常常会存在应用需要特殊资源、特殊执行环境或相关第三方应用的情况,这种情况下,将应用所有的依赖统一打包成容器镜像文件的形式,并直接用容器镜像文件进行部署,不存在手动部署或脚本部署所带来的不确定性风险,同时容器也能更有效的屏蔽系统的差异,并降低部署中可能会发生错误或环境不兼容的情况。
3.容器的规模不宜过大,一般只保留一个主进程,同时虽然容器之间可能在同一个运行环境中运行,但是容器的运行环境是高度独立的,可以避免不同应用容器之间的互相干扰,提供虚拟机级别的隔离体验。
三.Serverless 平台——更智能更便利的运行平台
1. 基于Serverless理念设计的产品会直接向用户提供所需的运行资源,而不是将底层资源暴露给用。例如SAE产品提供微服务的运行环境的用户,而不是给用户提供计算机群,由用户部署运行环境,这样可以使开发者免于维护底层资源,降低用户使用资源的建设成本和维护成本,也使得底层平台和物理硬件可以做到更加紧密的结合,为底层运行环境做有针对性的优化和改进提供便利。
2. 从用户的角度出发,提供以用户对资源的使用量进行计费的商业模式,而不是以底层资源占用数、占用时长等因素计费,简化用户购买和使用资源的门槛,做到费用随着使用,随用随开、随停、随关,便于用户可以更加精准的控制使用资源的成本。
3. 数据的计算和存储分离,计算放在可弹性伸缩的可释放资源上,降低资源的占用和消耗,提高资源的利用率,而数据的存储放在持久资源中,不随计算资源一同释放,保证数据的安全性和稳定性。
四.云原生时代推荐的企业级应用架构
最后,从基础设施演化历史的角度,对三大核心技术的发展历程进行汇总。
随着IT 基础设施架构的不断升级,应用部署方式、软件架构、运行调度平台这三个子系统也在进行着各自的架构演进。在早期的传统机房自建IDC时代,应用一般都直接部署在物理服务器上,而软件架构采用传统的单体式架构,程序的运行调度、应用托管平台一般使用开源技术自建或购买商业级中间件产品。
而到了云计算时代,应用的部署方式从自建物理机部署进化到了租用虚拟机部署,软件架构也从单体架构进化到了初级服务化架构,而运行调度平台也逐渐的迁移到了云上,开始使用云计算厂商提供的专业调度平台,之后又经过了将近十年左右的发展,在云原生时代,应用的部署方式有了进一步的发展,从虚拟机方式逐步改以容器方式进行,而软件架构则从初级服务化架构升级为微服务架构。同时,应用运行调度平台从基于底层资源构建的专业平台逐步进化到了平台和底层资源结合更为紧密的Serverless平台。
可以说,容器技术、微服务架构和Serverless平台共同构成了云原生时代最重要的三大技术特点,而使用容器技术打包的微服务应用并部署在Serverless平台上,也成为了云原生时代最为推崇的企业级应用架构。