文章目录
前言
我们从一个简单的定义开始:
云原生体系结构和技术是一种方法,用于设计、构造和操作在云中构建并充分利用云计算模型的工作负载。
云原生计算基金会提供了官方定义:
云原生技术使组织能够在新式动态环境(如公有云、私有云和混合云)中构建和运行可缩放的应用程序。 容器、服务网格、微服务、不可变基础结构和声明性 API 便是此方法的范例。
这些技术实现了可复原、可管理且可观察的松散耦合系统。 它们与强大的自动化相结合,使工程师能够在尽量减少工作量的情况下,以可预测的方式频繁地进行具有重大影响力的更改。
云原生是关于速度和敏捷性的。 业务系统正在从实现业务功能演变为加快业务速度和增长的战略转型武器。 必须立即将新想法推向市场。
同时,业务系统也变得越来越复杂,用户要求也越来越高。 他们希望实现快速响应、创新工作和零故障时间。 他们再也无法接受性能问题、反复出现的错误以及不能快速移动。 你的用户将访问你的竞争对手。 云原生系统旨在支持快速更改、大规模操作和复原能力
下面是一些实现了云原生技术的公司。 请考虑其实现的速度、敏捷性和可伸缩性。
Company | 体验 |
---|---|
Netflix | 在生产环境中有 600 多种服务。 每天部署 100 次。 |
Uber | 在生产环境中有 1,000 多种服务。 每周部署数千次。 |
微信 | 在生产环境中有 3,000 多种服务。 每天部署 1,000 次。 |
如你所见,Netflix、Uber、微信公开了由许多独立服务组成的云原生系统。 这种体系结构样式使它们能够快速响应市场条件。 它们即时更新实时、复杂应用程序的小区域,而无需完全重新部署。 它们根据需要单独缩放服务。
云原生的支柱
云原生的速度和敏捷性源自许多因素。 最重要的是云基础结构。 不过还有其他内容:图 1-3 中显示的五个其他基础支柱也为云原生系统提供基础。
图 1-3。 云原生基础支柱
让我们花一些时间来更好地了解每个支柱的重要性。
云
云原生系统充分利用了云服务模型。
这些系统设计为可在动态的虚拟化云环境中蓬勃发展,广泛使用平台即服务 (PaaS) 计算基础结构和托管服务。 它们将底层基础结构视为可处置:可在几分钟内进行预配,并根据需要重设大小、缩放或销毁(通过自动化)。
请考虑被广泛接受的 DevOps 概念:宠物 (Pets) 与牲畜 (Cattle)。 在传统数据中心内,服务器被视为“宠物”:一台物理计算机,被赋予有意义的名称,并受到照料。 你通过将更多资源添加到相同计算机(纵向扩展)来进行缩放。 如果服务器出现问题,你会进行修复,使它恢复正常运行状况。 如果服务器不可用,则每个人都会注意到。
“牲畜”服务模型有所不同。 你会将每个实例预配为虚拟机或容器。 它们是相同的,并分配有系统标识符(如服务-01、服务-02 等等)。 你通过创建更多实例(横向扩展)来进行缩放。 当一个实例不可用时,无人会注意到。
牲畜模型采用不可变基础结构。 服务器不