初识云原生

更新时间:
2023-03-24
下载文档

初识云原生

本节主要介绍云原生的定义、核心要素,以及任务关键型云原生的定义和其面临的挑战。

云原生的定义

云原生(Cloud Native)泛指用于构建云原生应用的技术体系,以及面向该技术体系构建和运行应用程序的方法论。云原生技术使得组织能够在最大化利用云计算技术优势的同时,构建和运行可伸缩的应用,使其能够运行在公有云、私有云、混合云环境中。

云原生的核心要素

容器

容器(Container)技术是一种轻量级的虚拟化技术,为软件开发、部署、运行提供轻量级的隔离环境。容器技术的应用使得开发、测试、部署环境高度一致,应用软件能够将其相关依赖和软件配置统一打包成为容器镜像,多个不同版本的应用软件即使同时部署运行也不会出现包依赖冲突、“动态链接库地狱” 这样的棘手问题。因此,容器技术实现了软件研发团队和软件用户(生产运维)间的解耦,研发人员可以将更多的精力投入到研发迭代过程中而无须过多地关注软件部署与运行,而软件用户也能够基于明确的软件版本(容器镜像)进行问题反馈,大大缩短问题的排查时间。

微服务

微服务(Microservices)是将复杂软件分解成多个松耦合分布式微型服务的软件设计方法。微服务可独立运行、部署和升级,通过微服务框架的模型化 API 对外提供 SOA 服务。虽然微服务架构的引入给软件设计者提出了更多的挑战,但最终结果往往是更加清晰合理的软件架构,各个微服务高度内聚、各司其职、边界清晰,不同服务的软件研发人员可以并行地开展工作,通过事先设计好的模型化 API 接口就可以模拟调试,通过 API 测试、持续集成提高软件整体交付速度。

服务网格

软件微服务化后首先需要解决微服务之间的通信问题。服务网格(Service Mesh)的出现就是为了解决微服务之间的请求调度和安全认证等问题,同时也实现了网络内业务流量可视化。服务网格的本质是服务定位与业务代理。所有微服务间的业务请求都需要先到达服务网格,再经由服务网格转发到目标微服务实例上。因此,服务网格能够为整个集群带来灵活的业务调度,甚至以中间人的身份在业务请求流程中统一插入一些标准化业务,如身份认证、TLS 加密、业务日志等。当然,灵活的反面是复杂度,中间人的引入无疑也会降低网络请求的实时性。

容器编排管理

容器编排管理程序能够通过声明式 API,将容器化的微服务按照指定的规则在一个或者多个计算资源节点运行起来,同时支持负载均衡、故障恢复等容错能力。谷歌开源项目 Kubernetes 已经在互联网领域得到了广泛的关注和应用。Kubernetes 包含了众多的组件,不仅能够灵活地配置管理计算集群中容器应用的部署和更新,还能够通过虚拟网络实现业务流量调度、跨节点甚至跨区域网络的容器调度,功能十分强大。然而因为涉及的组件和概念繁多,Kubernetes 本身难于完全掌握,总体的运行开销较大,强大的虚拟网络在实时计算环境中无法发挥其作用,并不适合在资源受限的嵌入式领域中直接使用。

云原生为企业和组织带来的最核心价值,是通过这样的技术体系和自动化工具颠覆了传统的瀑布流模式,打通开发、测试和运维之间的交付流程,让三者能够基于稳定一致的软件基础顺畅地进行沟通、协作与整合。通过自动化的持续集成,实现软件的快速迭代和交付,在保障软件安全性的同时,将原有的大 V 字形研发过程变换成为许许多多能够并行执行的小 V 字形过程,减少软件开发顺序依赖,从而提高开发团队的开发效率,缩短交付时间,让产品尽快上市。

文档内容是否对您有所帮助?
有帮助
没帮助