33

什么是云原生? - 前沿技术 - 恒生研究院

 4 years ago
source link: http://rdc.hundsun.com/portal/article/975.html?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

什么是云原生?

今天,我们的软件正在变得越发复杂,而软件的用户却期望得到更快的需求响应,更稳定的运行状态。

功能复杂度——交付周期——运行可靠性如同一个不可能三角困扰着我们每一位软件从业者。如何突破这个桎梏,云原生或许给我们带来了答案。

那什么是云原生呢?

云原生从诞生之日起就被赋予了各种定义

  • PaaS服务商Heroku提出著名的云原生12要素——以SaaS形态应用的视角阐述了云原生方法论企业云服务领域的Pivotal认为:云原生=微服务+容器+持续交付+DevOps
  • 后起之秀CNCF则将云原生定义为一个开源生态,提供构建松耦合容错性高的系统,且易于观测并   自动运维等一系列技术。
  • 如果回归价值的本源,我们会发现这些定义都围绕着3个要素目标:加速创新,降低成本,提高效率。
f_f889b9062489aa8fd16aa18c12333349.png

相比于传统应用,云原生应用意味着统一:

  • 统一的技术标准:通常以微服务架构进行服务开发,服务之间使用标准的API契约进行通信。松耦合的架构方式会减轻因需求变更导致的系统迭代成本,并加快交付速度。
    1. 微服务倡导基于API接口通信,避免在服务间共享数据库,文件等有状态的实体。单个服务能独立的更新,扩展,重启而不影响其他服务。
    2. 微服务使得单个服务的开发团队更小,也更加独立。亚马逊内部采取2个披萨原则——即团队规模维持在刚好两个披萨能够吃饱,来限定团队规模。团队沟通成本可以维持在较低水平, 同时每个人都承担富有挑战性的工作。
    3. 松耦合+独立小型的团队使得持续更新和敏捷管理协作成为可能,因此微服务成为了云原生应  用的最佳开发实践之一。
  • 统一的交付方式:标准容器化的打包方式实现了真正的应用可移植性,不依赖于特定的基础架构(虚拟机,混合云等)。
    1. 容器技术起源于linux的进程隔离虚拟化技术,将一组进程单独限定在同一个资源目录下,并可以限定其资源使用的配额。
    2. Docker的出现将应用的整个运行时环境都打包成一个镜像文件,并基于容器本身的隔离特性,实现了应用在特定容器中可以轻松的在不同环境间移植,同时确保宿主机的安全。
    3. 在资源有限的场景,容器基于进程粒度的资源使用方式,也会降低系统的资源开销。
    4. 基于容器的应用将有助于构建统一的开发,交付和集成环境,是云原生应用的最佳交付载体。
  • 统一的运维部署:基于容器的编排平台,可以充分利用不可变基础设施的特性。这使得在传统运维模式中的复杂部署策略(如灰度,蓝绿)变得轻而易举。
    1. 容器编排平台提供的自动化运维特性和声明式资源管理方式简化了持续构建中工具链之间的协作和调度。
    2. 容器编排带来的弹性伸缩能力和容错调度能力也让智能化运维成为可能。
    3. 技术驱动下的敏捷协作,和编排平台带来的运维能力共同构建了云原生应用的最佳运维实践——DevOps
f_321ed2266c25a60149583911eb23b51b.png

云原生应用又意味着分离:

  • 存储与计算分离:存储与计算混合模型往往导致应用节点复杂且难以扩展和维护,云原生中利用存储抽象层实现了更加灵活的计算实例与存储实例绑定调度。
  • 业务组件与通用组件分离:平台化运行将使应用本身只需保留业务相关的组件,其余的通用组件、监控运维功能则都由平台来提供。
  • 关注度分离:平台提供的开箱即用能力,使应用开发者可以专注于编写为客户创造价值的业务代码。
f_2727a9bb6ef5f6c05899604280784cb8.png

云原生应用VS传统应用:

f_8d2d6fb271076bd10989998789b11403.png

相比于传统应用,云原生应用将让企业和开发人员更加专注于业务价值的创造,而非日常的琐碎易错任务——这一改变将引导生产力与创新的变革。

到2022年有75%的全球化企业将在生产中使用容器化的应用(当前不足30%)、还有50%的应用软件将运行在容器化PaaS平台(目前少于20%)——Gartner

f_da7dacd26542676a9d668b55095ceb14.png

面对未来趋势,传统软件必须从架构、流程和文化层面进行重构,来逐步实现云原生应用的转型。我们需要:

更快:通过敏捷协作与自动构建,将修改的代码快速交付生产。

打造效能平台,在统一的技术栈和流水线支持下,实现全流程自动构建,自动发布。缩短从需求到生产的代码交付时间。

更轻:基于平台开发一个应用,而非独立开发一个系统

利用统一的开发运维平台,并将通用组件不断下沉至平台,业务应用开发则专注于特定领域,最终实现平台化开发与交付。

更开放:采用开源技术,拥抱开源社区

开源社区不仅仅提供技术组件,还制定了云原生相关的技术交互标准。诸如OpenTracing, CloudEvents等云原生标准接口定义了未来在云原生语义下,各个异构框架如何进行统一的交互。我们应当在技术选型时,主动接入这些标准,并将相关实现积极回馈于开源社区。

f_fd934ea7b3717172a0fa5ea1fd2a5de6.png

云原生赋予创新的核心价值:快速高效的将想法转换为产品的能力——埃森哲

回顾过去20年,恒生作为金融IT方案解决供应商,一直致力于为客户创造核心价值。加速创新,降低成本,提升效率也是我们一贯的宗旨。

只是新的时代已经来临,考卷上的题目虽然相同,但答案却已然改变。我们客户第一的价值不会变,但我们开发,交付,运维产品的方法却必须改变,这或许就是云原生给我们带来的最大价值。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK