如果你对DevOps或平台工程是什么感到困惑,你不是唯一一个。关于这个话题,在网上有很多讨论,问问不同的人,你可能会得到不同的答案。
部分困惑来自于DevOps经常被当作一个通用术语。连维基百科都搞不清DevOps真正指的是什么。
…学术界和实践者尚未为“DevOps”制定一个通用的定义。~维基百科
但我要告诉你,这两者之间确实有区别。我们先来定义一下它们,然后再看看它们之间有什么联系……
我们知道Kubernetes可能会比较复杂,这就是我们创建了Cyclops的原因。通过一个可自定义的UI,你可以简化Kubernetes的复杂性,并部署和管理你的应用,来满足你的需求。
我们正在将Cyclops作为一个开源项目来开发。如果你想要试一试,这里有一个快速入门指南,可以在我们的_仓库 找到。如果你喜欢这个项目,考虑给它点个⭐来支持一下。
GitHub上的Cyclops星
DevOps 并不是一个工作岗位,它其实是一种理念。其中的 Dev 代表软件开发,如构建应用程序和功能,而 Ops 代表运维工作,通常包括在服务器和基础设施上部署、运行和维护软件。简而言之,DevOps 中的 Dev 代表软件开发,而 Ops 则代表运维工作,即在服务器和基础设施上部署、运行和维护软件。
想想这种情况:你有一个开发团队负责开发和发布应用程序和功能,还有一个运营团队负责在你的基础架构上运行和维护这些软件。
当一个bug进入生产环境时,谁该为此负责?开发团队常指责运营团队部署有问题,而运营团队则指责开发人员写的代码不稳定。
而且这些团队有不同的目标要达成。开发人员希望尽可能快地推出代码,而运维团队则更看重稳定性和可靠性。这种“各自为政”的文化导致了紧张局势和低效。
这是在 DevOps 成为主流之前(在某些情况下仍然如此)的现实。DevOps 作为一种理念,提倡一种协作的文化,在这种文化下,开发人员和运营团队在整个软件开发生命周期中紧密合作。不再是将软件“甩锅”,两个团队共同负责构建、部署和维护软件。
我知道我说过DevOps实际上并不是一个职位,但事实上,它已经变成了一个职位。虽然最初这个词可能意味着重新组织机构,让开发和运营团队更紧密地合作,但在如今的世界里,它现在更像是一个类似运维的职位(Ops)。
DevOps人员主要负责实施自动化和CI/CD流程等,管理和优化基础设施,并监控应用的指标和性能。这个角色的职责可能有所不同,但重点是帮助团队构建、测试、部署和监控他们的服务(这就是DevOps理念的精髓所在)。
在这个职位上,你将与开发、运营和基础设施团队协同,自动化和简化我们的流程,构建和维护部署、监控和运维工具,并排查和解决开发和生产环境中的问题。
~ 这是一份DevOps工程师的职位描述
平台工程像一个内部产品团队,但它主要是为公司内部的开发人员和团队服务,而不是面向外部客户。
平台工程师的工作是设计并搭建工具集、基础设施和工作流程,让开发人员更轻松地进行软件的构建、测试、部署和管理。目标是打造一个统一的平台,通常称为内部开发者平台(IDP),提供一站式自助服务,无需依赖运营或基础设施等其他团队。
你将构建平台工具,并利用创新的云技术带给他们快乐——最终用户,即公司内部的开发者。你是一位建造者,热衷于通过自动化、云技术和提高生产力的工具来极大地增强我们的工程能力,从而改善开发人员的体验。
~ 平台工程师的职位描述。
平台工程并不是DevOps的替代品。DevOps的目标是提高软件质量、迭代速度以及交付效率,这通常通过采用新的工具和工作流程实现。在这方面,平台工程是体现DevOps原则的一种手段。
两者之间的这条线通常是在内部开发者平台(IDP)上划出的。虽然DevOps工程师确实为开发人员构建工具(如bash脚本),并尽量做到自动化,但目标并不是围绕某个特定的产品。
平台工程确实是以产品为核心——即开发者平台,它尽可能减少障碍,让开发者更加自主和快速。
平台工程算是一个相对较新的概念,一个著名的例子是Backstage。但是,构建内部产品(IDP)对于组织来说非常昂贵。在这里,DevOps 的职位更为常见。在小公司里,你看不到太多平台工程师的职位。
在 Cyclops,我们正打造一个框架,以支持开发者平台,从而降低构建内部开发者平台(IDP)的成本和时间。我们希望让各种规模的公司都能享受到 IDP 的所有好处。
如果你喜欢这篇文章或发现它很有帮助,加入我们的 Discord 服务器,我们会及时告诉你最新的内容、新动态以及我们团队的消息,随时更新。
_⭐GitHub 上的 Star 大眼怪 ⭐
PS:对了,我不是在说维基百科坏话,我爱你 🧡 嘿,Juraj