为什么开发人员应该学习 Kubernetes?

Posted CSDN资讯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么开发人员应该学习 Kubernetes?相关的知识,希望对你有一定的参考价值。

作者 | Steve Tidwell

译者 | 弯月     责编 | 晋兆雨

出品 | CSDN(ID:CSDNnews)

近年来,受容器软件开发工作流的推动,Kubernetes 作为部署容器的首选平台,采用率出现了大幅增长。 

自 2016 年以来,云原生计算基金会每年都会进行一项调查,以评估各种工程组织采用容器与云原生技术的情况。根据云原生计算基金会 2020 的调查数据显示,92% 的公司的生产都运行了容器,其中 83% 的公司使用 Kubernetes 作为编排工具。 

同时,还有许多组织采用了开发运维(DevOps)以及站点可靠性工程 (SRE) 最佳实践来提高应用程序的可靠性,并缩短交付新应用程序功能所需的时间。 

采用了这些技术的工程团队看到了合并运维与开发最佳实践的好处。运维团队逐步走向服务和软件,而开发团队也开始了解部署应用程序的平台和环境。 

近年来,大部分软件开发的重点都放在了运维最佳实践的应用上,因此交付周期明显缩短,可靠性也得到了明显的改善。但有时,开发团队并不具备在开发环境之外操作应用程序的运维技术。 

虽然构建和交付容器化的应用程序不需要维护独特的开发环境,但开发人员必须了解容器运行时的工作方式,特别是使用 Kubernetes 之类的编排程序,在生产中尤其如此。开发人员可能不需要掌握整套的运维技能,但他们需要充分了解 Kubernetes 和生产环境,才能成为开发运维团队的一员。

左移

随着开发运维与SRE的普及,软件开发领域出现了很多关于“左移”的讨论。这里的“左移”本质上指的是集中精力在软件开发生命周期的早期阶段检测并预防问题,以提高整体质量。更强大、自动化的持续集成/持续交付管道以及测试实践就是最好的例子。 

左移也适用于运维最佳实践。以前,开发人员在编写完应用程序后,就会将它们交给运维部门部署到生产环境中。后来,情况发生了巨大变化,旧时的方法都逐步被弃用了。 

了解应用程序所处的平台至关重要。成功的工程组织会努力避免开发团队与运维团队的孤立。他们的目标是在软件开发生命周期的早期阶段展开协作,以便参与该过程的所有团队都能很好地理解代码、构建、测试和部署。 

开发人员不需要成为 Kubernetes 专家,但他们必须掌握可能影响到应用程序性能的技能,比如CI/CD、生产部署、监控CPU与内存的使用状况以及集群和 Pod 的运行状况。 

了解有关组织所使用的应用程序平台和工具的一些基础知识,对于提高开发以及运维效率大有裨益。掌握这些技术可以帮助开发人员更快速、更有效地响应事件,在出现问题时,无需升级到另一个团队即可解决问题。

开发人员和运维团队需要知道什么

开发人员和运维工程师需要对彼此的工作有一些了解。 

他们需要了解与其他提供商相比,他们选择的云提供商的各种服务与功能的特点。无论是公共云、私有云还是混合云,这些知识都是通用的。

  • 他们需要意识到应用程序所耗费资源的成本,并了解如何从开发人员的角度降低成本和消除浪费。设置云环境和基础设施非常简单,但这也意味着,我们很容易忘记如果资源管理不善,成本就会迅速飙升。例如,如果自动缩放策略设置不正确,就会对成本造成巨大影响。

  • 他们需要了解应用程序的性能管理,尤其是用于分析和改进应用程序性能的工具和技术。

  • 他们需要了解正确的事件响应技术,以便在事件发生时及时处理,并在适当的时候向上汇报。开发运维的基本原则之一是接受并找到缓解故障的方法,因此在事件出现时高效的处理至关重要。

  • 他们需要在开发和运维之间建立反馈循环,以便所有团队都知道他们的工具或应用程序中的缺陷,以及开发人员如何修正这些问题。共享工具和环境的所有权是最佳鼓励方式。

那么,开发人员应该了解哪些 Kubernetes 的知识呢? 

  • 组织中 CI/CD 系统的工作方式,从概念到生产,从代码签入到构建、测试和部署。

  • Kubernetes 的 pod 及其与容器的关系。

  • 应用程序与 Kubernetes 的交互方式,包括服务、DNS 以及负载均衡。

  • 了解本地测试部署和建模应用程序部署方式的常用工具,例如 minikube、kubectl、helm、kind 和 Kubernetes 仪表板。

  • 在出现问题时监控、记录和调试集群和容器。 

当然,为了运维团队和开发团队可以更好地展开协同,双方所需要学习的知识还很多,上述内容只是一个良好的开头。

原文链接:https://thenewstack.io/why-developers-should-learn-kubernetes/

声明:本文由CSDN翻译,转载请注明来源。 

 开发者必备的知识图谱来啦!60+专家,13个技术领域,CSDN 《IT 人才成长路线图》重磅来袭!直接扫码或微信搜索「CSDN」公众号,后台回复关键词「路线图」,即可获取完整路线图!

 

以上是关于为什么开发人员应该学习 Kubernetes?的主要内容,如果未能解决你的问题,请参考以下文章

学习 Kubernetes 和容器技术体系的最佳方法,是什么。

开发人员Kubernetes的实用介绍

为什么 Web 开发人员需要学习一个 JavaScript 框架?

开发人员如何理解kubernetes

每个开发人员都应该知道的10个Linux命令

2019年开发人员应该学习的8个JavaScript框架