什么是云编排?

编排能不能被视为交付和配置管理方案的替代品是值得商榷的,在云原生应用程序的前提下尤为明显。我们可以从各个角度来看这个问题:与数据中心解决方案进行比较,区分基础设施(云端和云外)与容器(主要关注云)的编排,以及在不同场景下的最佳实践。

基础设施或容器?

在讨论编排时,第一个不可避免地问题就是:基础设施编排或容器编排?

这是我们面对的两难选择,取决于我们希望实现的抽象程度以及如果组织堆栈。如果我们决定在基础设施层进行管理,我们将使用虚拟机和裸机服务器。换言之,即多租户或单租户服务器。假设我们以IaaS的方式使用云,那么我们就会得到一些资源,例如网络资源、存储、负载平衡器、数据库、DNS等等,我们可以根据自己的喜好建设基础设施。

如果我们已经决定在CaaS(有时被视为PaaS)层进行管理,将对容器的生命周期进行管理,或者对工作负载进行管理。对于那些不熟悉容器的人来说,这不是一种查看工作负载的新方式,最受欢迎的是Docker,Rkt和LXC。容器非常适合定义一个不可变的体系架构,也可以用于微服务定义,更不用说它们是轻量级的,易于移植的,并且可以打包使用。

这两者都各有优缺点,下面继续讨论两者的编排方面。

基础设施

编排基础设施的方法有好几种,下面介绍的是最受公司欢迎的两种。

交付和配置管理:一种方式是使用旧式的PXe/Kickstart组合文件,尽管它正慢慢被自动化解决方案取代,但有些公司仍然坚持使用它,或者像Cobbler这样的替代品。另一方面,我们使用诸如Foreman等工具。Foreman支持跨不同操作系统的BIOS和UEFI,并且与Puppet和Chef等配置管理工具集成。Foreman在数据中心交付方面表现出色,并为我们提供了易于管理的基础设施,可随时使用或配置管理。

一旦完成交付,我们就会进入配置管理,其中包括生命周期的管理。包含Ansible、Chef、Puppet、Salt,甚至是老式可靠的CFengine。后两个是我的最爱,同时Ansible也给了我很多帮助,因为简单无主的工作方式。

编排和可选的配置管理:现在,编排意味着概念上的不同,现在常用的工具是Terraform。它允许在数据中心或云端进行编排,与AWS,Oracle Cloud,Azure甚至AliCloud等不同的云进行集成。除了云提供商之外,还可以将Terraform与第三方(如PagerDuty)集成并处理所有类型的资源。从经验来看,这种整合是顺利且简单的,但有时还不够成熟。

并非所有提供商都能提供高度的灵活性。最初在Oracle Cloud中使用Terraform时,OCI的自动缩放还不够成熟。因此,该提供商不允许Terraform创建自动缩放组,但是有时候这些工作非常重要,以至于曾需要同时使用Terraform和AWS工作。另一个是看提供商的功能,不管是云还是其他。不容忽视的是,有时我们的工具不能很好地融合在一起设计出合适的架构。

Terraform的另外一个优点是它可以编排任何基础设施,包括虚拟机、裸机以及网络资源和存储资源。同样,它将取决于云和Terraform提供商以及所使用的插件。

Terraform新一代工具的作用不仅在于编排,还在于作为代码(IaaC)方面的基础设施。这个行业到处都是IaaC,Terraform也不例外。我们被允许将资源定义存储在任何VCS系统,Git,SVN或任何其他文件中,而且这非常庞大:它允许我们拥有版本化的基础设施,团队可以进行交互,并且每个人都可以加速且管理分支机构并定义不同的版本,分离基础设施和环境的版本,如生产、分期、UAT等等。

一旦完成了Terraform的初始步骤,配置就可以用诸如Cloud-Init之类的任意引导完成。另一种比较流行的选择是Ansible:它适用于小型简单初始任务。如果开始从事云计算,Cloud-Init比较符合需求。之后可以使用其他配置管理工具接管。

容器编排

容器不再是新事物,他们已经存在了几年(或几十年,取决于我们如何看待它),它们足够稳定和有用,我们可以选择它们作为平台。

虽然数据中心的容器很有趣,但云端的容器更好,尤其是由于现在大多数云提供给我们容器编排,以及大量的解决方案,以防我们无法获得足够的容量。例如ECS, Amazon Container Service,ACS, Azure Container Services; CoreOS Fleet; Docker Swarm,GCE, Google Container Engine,Kubernetes等。

Kubernetes将来会有很好的发展,主要有以下三个原因:

它是由谷歌设计的,使用环境巨大,并且能够蓬勃发展;

它是云原生计算基金会(CNCF)的一个选择,这意味着它有更大的机会来生存。CNCF对云原生应用程序非常重要,受到许多公司(如Oracle)的支持;

该架构简单易学,可以快速部署,并且容易扩展。

Kubernetes是一个非常有前途的工具,并且已经取得了成果。如果您正在考虑大规模的容器编排,开始深入研究诸如Minikube之类的技术,并慢慢推进诸如Rancher等易于使用的工具,这将大大有助于为未来铺平道路。

结论

正如已经表明的那样,有许多解决方案取决于正在管理的基础设施类型,还包括基础设施的位置、规模以及目前如何分配。

技术可以共同使用。在Oracle云安装了OKE(Oracle Kubernetes Engine)之前,在云端实现Kubernetes的方式是通过一个实例化必要基础设施的Terraform插件,然后在其之上部署Kubernetes集群,以便我们继续配置、管理和安装应用程序(例如ElasticSearch)。

现在行业正在迈向云计算,这意味着所有将作为XaaS(一切即服务)提供。这反过来意味着构建分布式架构,可靠、高性能、可扩展且成本更低,而且对于一些公司来说,这是一个巨大的竞争优势。

尽管如此,还是有很多技术可供选择。通常,选择符合行业标准的技术是一个明智的决定。这意味着它已被公司用于当前的开发,并将在未来数年内得到维护。

原文发布于微信公众号 - SDNLAB(SDNLAB)

原文发表时间:2018-05-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

3 条评论
登录 后参与评论

相关文章

来自专栏黑白安全

苹果将修复 iPhone 漏洞,美警方愤怒:没法破解了

据国外媒体报道,苹果计划对iPhone进行安全更新,在手机锁定一小时后禁用手机充电和数据端口。这种做法让警方以及其他政府工作人员无法通过此前方法解锁iPhone...

653
来自专栏云计算D1net

盈世:邮件系统在互联网安全中的应用

主持人: 云安全一直是所有人最关注的一个环节。这方面,拥有终端用户6亿,中国用户实际使用最广泛的电子邮件系统提供商盈世有着深厚的理解。接下来,盈世信息科技(北京...

3073
来自专栏SDNLAB

创建新一代数据中心的最佳方式是什么?

编者按:围绕“创建新一代数据中心的最佳方式是什么? ”VMware和Cisco展开辩论,所谓“王婆卖瓜自卖自夸”,一个力推自己子公司产品中的网络虚拟化技术,另一...

2405
来自专栏ThoughtWorks

线上分享 | 优质课程「DevOps从入门到精通」第三期:虚拟化技术与虚拟机的构建与管理

在前两期线上课程中,我们已与大家一起从头认识『DevOps』文化的起源以及如何编写漂亮的持续交付流水线,本期课程,让我们一起来聊聊虚拟化技术与虚拟机的构建与管理...

1022
来自专栏PHP技术

优秀程序员的10个习惯

在这个世界上,有数百万的人热衷于软件开发。 他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Cod...

2896
来自专栏最新技术

KYC和区块链

KYC是一个投向区块链的挑战(请看这里,这里,这里)。前面提出“KYC是一个头疼的问题,而区块链也很流行”。然而,关于“区块链是否是一个好想法”的洞察和问题的细...

7079
来自专栏IT技术精选文摘

数据中心基础与服务探讨

主要分享三个内容: 数据中心简介 —— 了解 IDC 的架构; 运维服务与人员配置探讨; 案例讨论,外包服务怎样才能更好的做到双赢? 数据中心基础架构 ? 谈到...

3586
来自专栏云计算D1net

私有云搭建:基于OpenStack 但不止于OpenStack

在过去的3月份,开源厂商Redhat公司披露了它的第四个季度的财报,显示其中16%左右的收益来自于私有OpenStack。Red Hat的CEO Jim Whi...

3296
来自专栏镁客网

「镁客晚报」iPhone 7提前发布,微软坑用户根本停不下来

1292
来自专栏IT派

比特币黑客攻击手段大揭秘

最近一段时间,比特币彻底火了。无论是新闻媒体、行业龙头还是资本市场都对其反映敏锐,可以看出比特币正站在风口浪尖,受到各方高度关注。然而,当涉及到安全方面时,比特...

663

扫码关注云+社区