云原生(Cloud Native)

在传统IT开发环境里,产品开发上线周期长、研发效能不高,云原生架构充分利用了云计算的分布式、可扩展和灵活的特性,更高效地应用和管理异构硬件和环境下的各类云计算资源。通过方法论工具集、最佳实践和产品技术,开发人员可专注于应用开发过程本身。

从字面意思上来看,云原生可以为云和原生两个部分组成

说到云,不得不提到本地,毕竟我们传统的应用都是跑在本地的服务器上的,而如今,云的应用不断广泛,很多流行的应用也都逐渐上云了,不管是公有云、私有云,还是混合云。开发和应用所需的资源已经云化,不在是固定在一台物理机上的形态。

而原生,也就是原本的样子,即我们在开始设计应用之初就得考虑该应用以后是得运行在云环境的,所以需要考虑云资源的应用,充分利用云资源的优点,比如分布式和以及持续交付等优势。

云原生利用的主要技术框架见下图:

  1. 微服务

我们把微服务的本质看做是把一块大蛋糕分成若干块低耦合的小蛋糕,比如一块小蛋糕专门负责接收外部的数据,一块小蛋糕专门负责响应前台的操作,小蛋糕可以进一步拆分,比如负责接收外部数据的小蛋糕可以继续分成多块负责接收不同类型数据的小蛋糕,这样每个小蛋糕坏了,其它小蛋糕还能正常对外提供服务。 

  1. DevOps

DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

DevOps的目标是开发和运维不再是分开的两个团队,而是互相融合的一个团队。

  1. 持续交付

持续交付是一种软件开发实践,通过持续交付,系统可以自动为将代码更改发布到生产环境做好准备。现代应用程序开发的支柱,持续交付通过在构建阶段后将所有代码变更部署到测试环境和/或生产环境中,实现对持续集成的扩展。在正确实施时,持续交付是一个连续交付功能并且确保高质量交付的过程。

  1. 容器技术

容器化使开发人员可以更快,更安全地创建和部署应用程序。容器化通过捆绑应用程序代码以及运行它所需的相关配置文件,库和依赖项。该软件或“容器”的单个软件包是从主机操作系统中抽象出来的,因此,它是独立的,并且可以移植,可在任何平台或云上运行而不会出现问题。

所以你也可以简单地把云原生理解为:云原生 = 微服务 + DevOps + 持续交付 + 容器化

云原生三大核心价值助力开发者降本增效

1.降低运营复杂度

云原生架构使软件应用和服务器实现了解耦,让服务器不再是开发者的焦点。在开发者进行应用上线前,无须再提前规划服务器的数量和规格。而在运维过程中,开发者也无须再持续监控和维护具体服务器的状态(这是运维集群的扩缩容策略要去解决的),只需要关心应用的整体状态。

2.降低运营成本

运营人员不需要过于关注服务器,运营的复杂度下降,应用运营所需要投入的时间和人力也将大大降低。在最好的情况下,可以做到少数几个应用管理员即可管理一个处理海量请求的应用系统。

3、缩短产品的上市时间

在云原生架构下,软件应用的开发效率更高,应用开发的迭代周期更短。因而,开发者的关注点可以更多地放在软件应用的体验和改进以及其他能带来更高业务价值的地方。

总而言之,云原生容器平台解决方案,兼顾了用户对于性能、成本和安全的综合需求。因此开发者不需要过多关注服务端的运维,不需要关心不熟悉的领域,只需要专注于业务的开发、专注于产品的实现。

未来,芯片、开发平台、应用软件乃至计算机等将诞生于云上,可将网络、服务器、操作系统等基础架构层高度抽象化,降低计算成本、提升迭代效率,大幅降低云计算使用门槛、拓展技术应用边界。