什么是云原生?
近几年,云原生成为了软件行业的驱动力。
这是一种构建大型复杂系统的新方式,也是一种充分利用现代软件开发实践、技术和云基础架构的方法,这个方法改变了设计、实施、部署、系统运作的方式。
云原生系统被设计为拥抱快速变化的业务,应对大规模和弹性架构。
云原生基金会提供的官方定义:
云原生技术能够让团队在现代、动态环境(如公共、私有和混合云)中构建和运行可伸缩的应用程序,容器、服务网格、微服务、不可变基础设施和声明性api实现了这个方法。
这些技术使松散耦合的系统具备弹性伸缩能力、可管理性和可观测性。结合健壮的自动化技术,使得工程师可以最小的工作量进行频繁且可预测的迭代。
用户的需求越来越多,应用程序也变得越来越复杂。用户期望需求可以得到快速响应、增加创新性功能和零停机时间。
云原生关注速度和敏捷性,可以让业务系统从“开发出业务功能”演变为“加速业务速度和增长”的战略转型武器。
这是一些实施了这些技术的公司。考虑一下他们已经实现的速度、敏捷性和可伸缩性。
公司 | 生产实践 |
---|---|
Netflix | 在生产中提供600多种服务。每天部署一百次。 |
Uber | 在生产中有1,000多种服务。每周部署数千次。 |
微信 | 拥有3,000多种生产服务。每天部署1,000次 |
如您所见,Netflix,Uber和微信公开了由数百个独立微服务组成的系统。这种架构风格使他们能够快速响应市场状况。他们可以做到实时更新复杂应用程序中的部分区域,并根据需要分别缩放这些区域。
云原生的速度和敏捷性来自多种因素。
首先是云基础设施,图中显示的另外五个基础支柱也为云原生系统提供了支撑。
云原生基础设施
云原生系统充分利用了云服务模型。
云原生系统旨在在动态、虚拟化云环境中蓬勃发展,广泛使用平台即服务(PaaS)计算设施和托管服务。
他们将基础设施视为一次性的:只需几分钟即可配置,并通过自动化按需调整大小、缩放、移动或销毁。
人们习惯以“宠物与牲畜”来阐述Devops理念。
- 宠物服务模型
在宠物服务模型中,服务实例被认作是宠物,每个宠物都有一个独特的名字,例如宙斯,战神,哈德斯,波塞冬和雅典娜。他们“独特,并得到刻意的关注,当他们生病时,你会让他们恢复健康”。你可以通过增大它们的体型来扩大规模,当有宠物生病时,每个人都会关注到。
宠物服务器的示例包括大型机,单独的服务器,负载平衡器和防火墙,数据库系统等。
- 牲畜服务模型
牲畜模型将每个服务实例配置为虚拟机或容器。它们是相同的,并分配了系统标识符,例如Service-01,Service-02等。您可以通过创建更多"扩展实例"来进行扩展。当一个牲畜不可用时,不会有人关注到。
牲畜模型的例子包括Web服务器阵列,no-sql集群,消息队列集群,搜索集群,缓存反向代理集群,大数据集群等。
牲畜模型信奉不可变基础设施: 服务实例不会被修复也不会被修改,如果一个服务器挂了或需要更新,则通过自动化手动将其销毁并提供新的服务实例。
云原生系统采用牲畜服务模型。随着基础设施伸缩而持续运行,与它们所运行的计算机无关。
Ref
- https://joachim8675309.medium.com/devops-concepts-pets-vs-cattle-2380b5aab313
- https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition
这是一个翻译专栏,后面会意译云原生另外的[五个基础支柱], 请持续关注。
本文来自博客园,作者:{有态度的马甲},转载请注明原文链接:https://www.cnblogs.com/JulianHuang/p/14375725.html
欢迎关注我的原创技术、职场公众号, 加好友谈天说地,一起进化