开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:云原生概要介绍-云原生技术关键内涵】
课程地址:https://edu.aliyun.com/course/3112075/lesson/19003
云原生概要介绍-云原生技术关键内涵
内容介绍:
一、云原生的理解
二、云原生技术改变了开发模式
三、云原生的内涵
一、云原生的理解
我们把云原生拆解成云+原生两个部分来理解云原生。
提到云,很多人想到的是阿里云的公有云,其实这个云可以是阿里云的公有云,也可以是企业的私有云或者混合云,不能简单地理解云原生就是把应用部署到公有云或者私有云上。企业的应用需要跑在哪种云上需要结合企业自身的需求,找到合适的方案再做决策,不同于传统的是,站在工程维度来看,从研发的开始阶段就要基于云上运行的系统进行规划和设计而不是按照传统的思路先进行设计开发,最后再去做上云的迁移部署。如果是后者的的话,必然会导致迁移的水土不服。那么,什么是设计面向云的系统呢?这就要理解原生的内涵。原生就是土生土长的意思,也就是应用出生就要带的基因。我们可以这样理解,原生是基于微服务架构原理而开发的应用,以容器的方式打包、发布和部署。在运行时,通过容器与运行于云基础设施上的平台进行调度,应用开发采用持续交付和 DevOps 进行实践。这就是我们云+原生的概念。这就是对云原生观念的理解,它包含了微服务的原理、容器技术的打包、云基础设施,同时也包括了持续交付、DevOps 这些理念。
二、云原生技术改变了开发模式
传统的应用是一个单体的开发架构,它让开发者需要关注从基础设施到上层应用的所有细节,包括需要了解底层的资源是如何进行弹性的调度,需要学习各种类型的中间件和数据库等产品,面对企业在不同 IT 建设时期使用到的不同的开发语言的、不同的数据资源以及中间件的产品,很难形成一套统一的技术标准,系统功能的开发更难形成敏捷的迭代,各个系统底层的数据无法有效的打通,无法形成完整的数据体系。数据之间缺乏关联性,企业上层的应用没有标准的接口,导致系统的开放性差,系统交付十分复杂。如果我们通过云原生的方式来打通一个整体的云基础设施,在这个基础之上通过开源的业界标准来统一整个底层的技术栈形成统一的技术开发标准。再通过容器技术打包并且底层基础设备进行调度管理以获得对云资源最大限度的弹性伸缩调用。这样一来开发者仅需关注应用的业务逻辑,借助 DevOps 实现对企业业务发展的持续交付和敏捷开发的支撑。这样,一个构建在统一云基础设施上的各个子系统更容易实现数据的统一管理,形成完成的数据体系,建立完整的数据规范。从而可以向上层应用提供统一的、标准的数据开放服务。这样,应用者开发就会变得更加轻松、简单和高效。云原生的价值就被我们挖掘出来了。
云原生对与云原生平台的开发者而言,会变得越来越复杂,开发的难度会越来越大。而对于云原生平台的使用者而言,应用的开发会变得越来越简单。这样,让使用云原生平台的开发者可以更多地关注如何更好地去支撑企业自身的变化,研究如何通过快速敏捷的迭代来响应业务的变化。这就是云原生的一个典型的开发模式。
三、云原生的关键内涵
云原生的整个体系是包含敏捷的基础设施、松耦合的的应用架构以及创新的管理理念,其中,敏捷的基础设施主要是通过容器技术及容器编排技术来实现的。
容器本身是一个标准的软件单元,它将应用的代码及应用对环境的依赖关系打包起来,使容器资源调度、微服务更加容易,并具备强大的可移植性,它可以在公有云、私有云之间进行快速的迁移,并且通过一个代码多地部署的模式实现容器用的可扩张性。在云原生的上层构建,采用松耦合的微服务架构,它提倡将单体应用划分为一组多个小服务,每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制来进行沟通和通信。这便于系统的升级和敏捷的开发并且可以支持不同用户的发布,这些都是微服务架构带来的好处。
DevOps 是一个创新管理的理念,高效的组织团队实现开发运营的一体化。这个理念明确了如何在各个团队和组织之间通过自动化的工具来完成相互协作和沟通,来完成软件全生命周期的管理,从而以更快的迭代速度去交付更加稳定的软件。综上,这些就是云原生的关键内涵。