有两个行业趋势指向许多人选择DevOps工具的一项空白。运维团队需要的不仅是基础设施即代码的方法,而是一个完整的模型驱动的运维思想。
在ThoughtWorks洞见黄博文的一篇文章中,作者指出:
现代软件开发对基础设施的管理提出了更苛刻的要求:产品要适应瞬息万变的市场,要求基础设施有更快的响应速度。持续交付和DevOps的推行要求产品团队对部署和运维要有更高的自主性。技术的快速进步和演化,也使得基础设施的配置不得不频繁变化。在这种快速变化的过程中,要求基础设施既要灵活,也要安全、可靠。
而传统的基础设施运维管理具有以下几个问题:
Canonical通过开发开源DevOps工具Juju解决这些问题,从而创建多个世界领先的产品。
让我们考虑以下两个趋势以及它们对DevOps的影响。
转换到微服务需要将复杂的大型应用程序分解成许多较小的服务单元。在“分而治之”的架构风格中,每个单元都更容易部署、扩展、更新以及独立移除。
然而,微服务体系结构可能会将复杂性推到运维端,而不是消除复杂性。
采用基础设施即代码工具可以减轻部分负担,但不是全部。突然间,你需要考虑网络延迟、消息格式和连接。每个新服务都需要连接到其他服务。
如果没有适当的工具,升级和迁移就会变得非常耗时,并且容易出错。
对许多应用程序来说,基于容器的部署平台(如Kubernetes)令人愉快。
但是,容器并非适合所有用例。数据库和其他中间件经常受到I/O条件的约束。当这些应用程序作为容器运行时,会导致性能损失。
大多数基础设施即代码工具都适合在单一平台上托管应用程序。但现实更为复杂。它们很少允许你跨平台部署应用程序。当容器和虚拟机搭配使用时,情况就更加复杂了。
系统工程师和运营团队希望提供最佳的性能,但他们也希望为编写应用程序的产品工程团队提供敏捷性。
最终,复杂性会影响业务。对工具进行整合的管理决策可能意味着将数据库转移到了Kubernetes集群中。
Canonical开发Juju来解决这些问题。它的方法与其他DevOps工具的不同之处在于:
Juju是一种简单、安全的DevOps工具,用于管理当今复杂的应用程序,而不管你在何处运行软件。计算、存储、网络、服务发现和健康监测都是免费的,适用于Kubernetes、云计算和笔记本电脑。
Juju允许你的软件基础设施始终保持最佳配置。当部署发生变化时,每个应用程序的配置操作都由charms动态调整。Charms是与你的应用程序一起运行的软件包。它们对业务规则进行编码,以适应环境变化。
使用模型驱动的思想意味着提高抽象级别。Juju的用户很快就会习惯这样一种灵活的、声明式的语法。这种语法与底层无关。
Juju与基础设施提供者交互,但是操作代码总是保持不变。我们专注于为你的产品基础设施创建一个软件模型,这可以提高生产率并降低复杂性。
通过在较低的抽象级别上自动化基础设施,DevOps让这个行业获得喘息空间。但这种喘息空间正在耗尽。
用一个可同时应对多种后端的工具有几个好处:生产率不仅提高,而复杂性保持不变。
有两个例子,大家可以进一步阅读:
英文原文:
领取专属 10元无门槛券
私享最新 技术干货