当前位置: 首页 > 科技观察

DevOps的9个秘密

时间:2023-03-15 00:42:20 科技观察

数字化转型之初,需要写代码来构建,开发者要负责。他们精心设计了逻辑,然后让它在服务器上运行。随着团队的成长和人员的分化,这种情况发生了变化,一些团队成员维护代码(Dev),而其他团队成员维护机器(Ops)。今天,由于云计算和微服务的兴起,采用的软件将由数十个甚至数千个组件组成,这些组件运行在不同的计算机上。每台机器在技术上都是独立的,但它们都必须协同工作。确保通过自动化脚本最好地执行它们。DevOps团队的主要任务是为应用程序提供所有这些高级流程。他们可能无法处理软件架构的深层问题,但他们可以让部分顺利运行。不过,DevOps专业人员的角色相对较新,其职责尚未明确定义或分配,其技能仍在不断发展。DevOps专业人员是跨角色、执行编程和运营的混合体,但许多团队发现保持服务器平稳运行就足够了。配置它们需要仔细规划细节,因为编程团队会更改代码并更改其运行方式。随着越来越多的组织寻求DevOps专业人员来支持他们的数字化转型,拥有清晰的认识非常重要。以下是关于DevOps新兴领域的一些隐藏真相和常见误解。1.DevOps不是编码员许多经理认为DevOps专业人员不是编码员,他们是对的。但是DevOps专业人员的工作职责发生了变化,许多处理字节和数据结构的杂乱工作被分配给了不同的程序员。从战术上讲,将程序员从保持一切运行的责任中解放出来是有意义的,因为他们可能沉迷于现代堆栈。但是DevOps专业人员仍然需要编写一些代码。他们仍然需要抽象地思考底层数据结构。只是让一切保持运行就需要无休止的命令行调用,这些调用通常可以收集起来并简化为shell脚本。虽然一些编程纯粹主义者可能不会将此类高级工作归类为编程,即使它包括函数调用、参数和变量,但现实是DevOps人员拥有与程序员相同类型的技能。2.管理程序员是主要工作即使DevOps专业人员不编写代码,他们最终还是要管理程序员,这通常是一项繁重的工作。每个开发人员都会创造一些新颖而美丽的东西,他们编写的代码是一门艺术。每个人都希望立即将他们的容器投入生产。他们通常这样想,代码运行流畅吗?一切都会崩溃吗?确保编码人员不会把事情搞砸是DevOps专业人员的工作。3.DevOps正在慢慢接管当软件应用程序相对简单时,程序员拥有所有控制权。现在应用程序往往被分成几十个甚至上百个微服务,DevOps专业人员负责它们如何工作,仍然有架构师和程序员决定如何将服务连接在一起,但DevOps专业人员负责它们如何连接在一起,这是一个越来越重要的难题。4.DevOps不管理成本当云计算供应商以每小时几美分的价格为云服务的使用定价时,他们很聪明。但这些成本会随着运行的云计算实例的数量和时间的推移而增加。一个月有30天,有720小时,因此一台每小时仅需1美元的机器一年的成本为8,760美元。此时,用户可能会觉得自己购买和运行服务器可能更便宜。在收到一些昂贵的账单后,一些团队可能会配备DevOps审计员,他们的唯一职责是在混乱的机器中找到省钱的方法。他们检查了业务生产细节并开始说“不”。他们会精打细算每一分钱,因为他们知道这样可以节省预算。5.只有几种方法可以提高性能管理云计算的工作变得更加困难,因为DevOps专业人员通常只有几种工具和方法可供使用。一旦程序员提交代码并构建容器,DevOps专业人员的工作就是让它们运行。如果它们看起来很慢,请尝试添加更多虚拟CPU或RAM。如果速度还慢,他们可以在机房增加机器来分散负载。6.完成拆除工作最深层次的问题之一是计算机总是在记录错误。例如,一些容器每隔几个小时就会崩溃。可能是数据库连接失败,也可能是参数配置错误。答案可能在日志文件中,但从未找到。Kubernetes可以启动另一个实例,然后回答查询并完成它的工作。这是一个故障安全架构的示例,即使其内部杂乱无章。只要用户和客户完成工作,通常每个人都更容易获得不同的视角并忽略所有虚拟拆除工作。7.数据库统治一切人们可能会对所有与AJAX或CSS混淆的本机代码感到恼火,但最终,所有数据都在数据库中找到了归宿。经典数据库仍然是代码的核心。这是唯一的真实来源。如果团队能够保持运行并回答问题,这几乎就是所有工作。用户可以容忍未对齐的DIV或奇怪的新布局,但不能容忍数据库损坏。行业专家已经审查了使用最新最好的Node.js包的团队的代码,不断更新他们的技术栈以保持领先地位。但是数据库已经超过10年了。没有人想改变它。8.对代码如何运作知之甚少今天仪器的性能可能令人震惊。人们可以通过各种软件操作感受到数据的激增,就像水手感受风浪一样。随着房间负载的波动,人们知道工作负载何时正常运行以及何时不堪重负。如果负责电子商务Web应用程序,DevOps专业人员将是第一个知道折扣何时生效的人,因为他们的应用程序负载会爆炸式增长。这些数字总结了组件的平均应变和响应时间,但无法说明原因。而理解的程序员可以知道组件内部发生了什么,他们可以隔离错误并找到解决方案。一些业务人员可能希望拥有无所不能、无所不知并自下而上理解整个堆栈的技术人员。但对于许多公司来说,这是太多的工作和太多的代码行。最好为DevOps专业人员和程序员找到一种简单的协作方式。9.一切都有点神秘计算机可能完全是逻辑机器,其中代码以可预测的、确定的方式发展。每个错误的发生都是有原因的。工人可以使用调试器、查看日志文件并仔细检查代码,但谁有时间呢?正如90%的技术问题可以通过重启设备来解决一样,DevOps专业人员也需要这样做。当然,在使用诸如“容器”和“实例”之类的词以及大量工具来跟踪正在发生的事情之后,最终通常会更快更容易地继续前进。