做者:Janakiram MSV编程
翻译:Bach(才云)安全
校对:bot(才云)、星空下的文仔(才云)服务器
目前,正在影响现代基础设施的两个趋势分别是容器和 DevOps。DevOps 生态系统正不断发展,提供着持续集成、持续测试、持续部署和持续监控的功能,从而提升了软件开发的速度。另外一方面,容器正与 DevOps 实践相结合,以实现大规模的快速部署。网络
容器有助于提升开发人员的生产效率,编排工具则是为组织优化其 DevOps 和运营投资提供了帮助。容器编排的优点包括:架构
高效的资源管理。分布式
无缝扩展的服务。ide
高可用性。微服务
低成本的大规模运营。工具
大多数编排工具使用声明性模型(declarative model),能够减小摩擦以实现更自主的管理。测试
操做模式(Operations-style)像 IaaS,但管理模式相似 PaaS。
操做人员会选择 IaaS 进行控制和自动化,但开发人员一般更喜欢 PaaS,由于它更具备灵活性、规模和生产力,而**容器编排工具则是具备一箭双鵰的优点:自动化和规模化。**
K8sMeetup
为何须要大规模容器编排?
容器解决了开发人员的生产力问题,使 DevOps 工做流变得异常流畅。开发人员能够建立容器镜像,运行容器并在该容器中开发代码,再将其部署在本地数据中心或公共云环境中。这种开发人员的工做流很是流畅,但没法自动应用于生产环境。
生产环境一般与开发人员电脑上的本地环境大不相同。不管是运行大规模的传统三层架构(three-tier)应用程序,仍是基于微服务的应用程序,管理大量的容器和节点集群都不是一件容易的事。业务流程是实现规模化的必需组件,想要造成规模咱们就必需要实现自动化。
云计算的分布式性质给咱们带来了对虚拟机基础设施感知方式的转变。你们可能听过“牛与宠物”的概念,它将容器比做一个牲畜单位而不是喜欢的宠物,以此重塑了人们对容器和基础设施本质的见解。下面咱们分别看看“牛”和“宠物”的管理方法:
牛:容器及其基础设施都是不可变的,咱们通常在部署容器或服务器后就不再会对其进行修改。若是须要任何的更新、修复或修改某些内容,咱们可使用有适当更改的通用镜像去构建新的容器或服务器,而后替换旧的容器和服务器。这种方法就至关于在牛场管理牛。
不可变基础设施是可编程的,咱们能够实现自动化。基础设施即代码(IaC)是现代基础设施的关键属性之一,应用程序能够在其中以编程方式配置,并利用基础设施来运行自身。
容器编排、不可变基础设施和基于 IaC 的自动化,这三者的结合提供了灵活性和可扩展性。
K8sMeetup
容器编排平台特色
将上述概念付诸于实践后,咱们能够对大规模容器的伸缩性和资源可用性概念进行拓展和完善。典型的容器编排平台特征包括:
资源管理。
服务发现。
健康检查。
容器编排鼓励使用微服务架构模式。在该模式中,应用程序由较小的独立服务组成,每一个服务都是为某一项任务而设计的。每一个微服务都会打包成一个容器,它们在逻辑上属于同一个应用程序的多个微服务,并由 Kubernetes 进行编排。
目前的容器编排市场由 Kubernetes 主导,它已得到了企业、平台供应商、云提供商和基础设施公司的承认。Kubernetes 的兴起促成了基于容器编排和管理平台的新细分市场诞生。从存储、网络、监控,再到安全,如今涌现出了许多构建容器本机产品和服务的新型公司和初创公司,将来云原平生台和该生态系统将愈发繁荣。