该文件最初发布在Medium网站上,原作者获准在InfoQ中文站翻译和共享。
是啊,我玩了标题党。对不起,这样做也是有原因的。请关注AppOps,这是DevOps中被低估的新趋势。
在IT世界里,随时学习新的流行语是常有的事。大多数流行语都像流星一样。在完全理解要学的内容之前消失在天空中。(伯纳德肖,学生)还有一些概念可以成为未来几年的趋势,比如DevOps和Frontend。
由于新的术语层出不穷,我们必须集中精力研究其中真正有意义的东西。我不相信流行语或潮流。我相信概念。即使技术和趋势相继过时,概念仍然是绿色的。
所以我将在这篇文章内讨论AppOps这个概念。读完这篇文章后,开始听别人谈论新的AppOps趋势,你就会知道该如何与他们讨论和争论。(约翰f肯尼迪)。
NoOps趋势
顾名思义,NoOps趋势旨在消除开发和运营维护之间的所有摩擦,这是直接消除运营维护。
这似乎是一个相当激进的解决办法,但我们不需要从字面上理解它。正确的解释——也是可行的解释——是在部署和交付阶段尽可能消除人为因素。
这种方法当然是由云支持的,云可以帮助各种事物自动工作。如果想进一步了解NoOps,请参考几年前写的一篇文章。
顺便说一句,要继续读这篇文章,只需要知道以下内容。
NoOps是减少部署管道的人为因素,并向开发团队引入认识。
因此,NoOps和DevOps不会发生冲突。相反,情况允许时巧妙地使用DevOps。
专注于应用
无论是编写小应用程序,还是创建非常大的项目,要继续进行,都需要适当的DevOps设置。(大卫亚设)。
我无法想象2021年会有人通过FTP上传文件来更新应用程序——。如果你正在这样做,请快点停止。(大卫亚设)。
每个人都需要DevOps和基础设施,但我们真的需要花费时间和金钱吗?
当然,我们必须这样做,因为好处太明显了!但是如果我们从投资者的角度来看这个问题,我们就会发现这不是团队的最终目标。
如果技术是将事物从概念转移到实践的推动因素,DevOps是提高事物效率的方法。但是我们不能忘记我们的应用程序要做的“事情”。
这就是苹果公司的目的。重点是应用程序级别,包括源代码和基础结构。
为什么是AppOps?
AppOps最突出的方案之一是基于Kubernetes的应用程序。打开群集后,您会发现许多pod/service/deployment设置大致相同。
实际上,每个PHP应用程序都有相同的配置,只有参数不同。Java,Net或其他应用程序也是如此。问题是,Kubernetes无法知道主机应用程序的内容,因此必须将所有详细信息告知应用程序。
即使使用相同的技术,也必须从头开始处理所有新的应用程序。为什么会这样?
我只需要解释一次PHP应用程序的配置方式。而且,世界上所有PHP应用程序基本相同,因此不应浪费时间定义PHP应用程序的部署方式。希望某人(供应商)能够为社区提供正确的配置,以便重复使用。假设存在可重复使用的配置。只需简单地开发应用程序。重复的工作不再费力,也不需要重新发明轮子。(大卫亚设,Northern Exposure)除此之外,你还可以专注于真正重要的事情。不必担心任何细节。
前面提到的Kubernetes的内容可以扩展到虚拟机、云服务等。这就是苹果公司的有趣之处。
AppOps是如何工作的?
可以想象,Kubernetes没有水晶球插件可以预测群集正在部署的内容。Kubernetes是将自己确立为抽象基础设施标准的集装箱编制器,不能强迫自己做更多的事情。所以我们基本上有两个选择。
准备可重复使用的配方或工件(如YAML组成集),以先前的方式工作。专注于应用程序,使用不需要担心基础架构的解决方案实现到云中。让我们具体看一下两种方法的细节。
陈旧的方法
旧方法是最简单但最不流行的解决方法,但没有必要重新发明轮子。
如果使用的是Kubernetes,则可以使用Helm或ArgoCD等工具自动设置应用程序,并创建可重复使用的应用程序定义。
如果使用虚拟机,一个好的解决办法是准备一个Ansible脚本。
您可能还对浏览Terraform感兴趣,terra form是以代码管理基础架构的简单基于云的解决方案。
除了上述解决方案外,还需要创建第一个解决方案的原型并部署这一部分。所以我更喜欢以下方式!
云方法
云时代使用现成的服务是加速实现事物的巨大推动力。
因此,我们首先要评估易于使用的解决方案。在Kubernetes
领域有一些云工具,它们可以让你在应用程序级别部署,无需操心背后的事物。第一个工具是Shipa,这是一个非常有趣的新兴解决方案,用来在没有任何 DevOps 流程的情况下部署应用程序。这个解决方案确实可以让我们只专注于应用程序开发而忘掉服务器。
第二个选项是Devtron,它提供了一个交付工作流实现,可以简化 Kubernetes 管理并让部署过程非常顺滑。这款工具与一些预定义的配方相结合,可以让我们忘掉基础设施。
我相信很快就会有越来越多的解决方案以 AppOps 的方式实现 DevOps 的目标,就像技术世界每次都会看到的那样,工具永远不会成为问题。
结语
应用程序开发和交付领域在过去几年中取得了令人难以置信的创新和发展。
Kubernetes 是加快开发速度和减少开发与运维之间摩擦的革命性工具中的一员。我们可以在网络上找到大量资源,并且云也提供了巨大的推动力。
虽然这些解决方案都推动了全球的数字化转型,但我们并没有就此止步。我们现在希望不要再为管理这些工具和复杂性付出那么多精力,这样才能更多地关注应用程序的开发,并为最终用户带来更多价值。
AppOps 是实现这一目标的一种方法。有了那些从更高视角管理基础设施的工具后,我们就能隐藏复杂性,专注于那些对业务真正重要的事情。并且这样做是可行的,我们已经有许多工具可以很好地实现这一目标。
本文由 InfoQ 翻译自 Daniele Fontani 的文章: