自从2015年推出以来,Kubernetes(K8s)在GitHub上发布了多个版本,并获得各行业组织和专业社区的广泛青睐。尽管对于软件开发人员、DevOps和数据科学工程师来说,Kubernetes获得成功的原因显而易见,但对于组织管理者来说却不是那么显著。
为什么将应用程序和相关流程迁移到Kubernetes成为一种主流?为了找到答案,人们需要了解Kubernetes的关键概念和带来的好处。组织管理者需要了解如何通过将工作负载迁移到Kubernetes获得竞争优势。
英国《金融时报》运营和可靠性技术总监Sarah Wells说,“我们采用Kubernetes有两个原因:首先,与评估的备选方案相比,我们更喜欢Kubernetes,并且它符合我们的所有要求;其次,我们知道Kubernetes将成为一个新兴的标准。”
什么是Kubernetes?
Kubernetes是由谷歌公司创建的一种用于协调容器化应用程序的云原生系统,如今成为主流的开源平台。其广泛应用得到了云原生计算基金会(CNCF)的大力支持。
Kubernetes是最受欢迎的集群管理软件解决方案之一,可以实现流畅的自动化应用程序部署、可操作性和可扩展性。Kubernetes为用户的生产运行环境提供了高度可管理的基于容器的大规模应用程序。
简而言之,如果用户的应用程序可以实现容器化(例如在Docker的帮助下),则它们应该由Kubernetes运行和管理。在Kubernetes的支持下,用户可以显著提高内部部署或云托管基础架构的利用率,因为所有计算资源都可以在多个应用程序驱动的流程之间动态而合理地共享。
Kubernetes现在的最新版本是1.19.3。但是,GitHub和Google Groups上的社区已经开始讨论1.20.0版本的更新信息。由于Kubernetes是开源的,因此在版本更新、错误修复和其他改进方面,它获得了来自全球各地的专业社区的及时而快速的支持。基于Kubernetes的一些供应商以其专有的SaaS、IaaS和PaaS产品进入市场。
开发人员如何看待Kubernetes
Kubernetes适合于优化微服务架构,并将应用程序打包到容器中,这是大多数应用程序软件开发人员和DevOps所乐见的。在Stack Overflow公司开发人员调查中,展现了全球65000名开发者对软件工具、框架和技术的偏好。调查表明,71.1%的专业受访者认为Kubernetes是目前和未来发展的优选平台。
组织如何看待Kubernetes
截至2020年,许多组织的决策者仍然对在其应用程序开发操作中快速采用Kubernetes持观望态度。幸运的是,越来越多的用户清楚地意识到迁移到Kubernetes背后的好处。根据Statista公司的最新研究,三分之一以上的组织开始利用Kubernetes的巨大潜力。通过这种方式,很多组织开始在应用程序开发、测试和生产运行方面提高工作效率。
Kubernetes的用途是什么?
Kubernetes的核心是关于容器化应用程序的平稳编排。然而,容器本身并不足以在流程和资源密集型生产环境中高效运行。但真正的大规模运行容器可能显著增加应用程序交付时间和产品质量,不能满足客户的上市时间期望,或者产品发布延迟最终导致客户体验不佳。
为基于容器的应用程序的自动化流程优化提供一个整体的可扩展工具已成为当务之急。这就是Kubernetes通过帮助简化跨多个与应用程序相关的流程的工作负载而发挥作用的地方。
Kubernetes用于DevOps和DataOps优化
Kubernetes为DevOps和DataOps的工程师和从业者带来什么好处?迁移到Kubernetes对他们整体效率的提高做出了巨大贡献,这需要更详细的解释。
尽管这两种方法之间存在差异,但DevOps和DataOps都有许多与Kubernetes相关的共同点。在加速应用软件开发、部署和交付时,它们服务于相同的业务目标。简而言之,这两个实践侧重于通过数据驱动的洞察力支持的软件开发工作流优化来改进应用程序的生产。
Kubernetes遵循与强大工具相同的原则,为软件和人员级别的增强提供了坚实的技术基础。这就是说,组织的DevOps团队发现可以利用Kubernetes获得更好的运营效率和产品交付率。与此同时,组织的DataOps工程师可以通过强健的数据编排、及时的更新、持久的数据存储,以及跨平台和部门的流线型数据管道,利用海量数据资产的准确性进行大数据分析。
尽管如此,最好还是用更通用的概念来思考Kubernetes给组织带来的好处。这是因为Kubernetes可以同时对各个团队和部门的工作流程产生积极影响。此外,从长远来看,组织可以利用Kubernetes带来的多个好处。
迁移到Kubernetes的5个好处
组织的DevOps和DataOps团队以及整个业务都可以从迁移到Kubernetes中受益。与提高基于容器的应用程序的自动化部署和管理效率一样,Kubernetes为组织的业务效率增加了很多价值。
迁移到Kubernetes的关键优势可为组织带来竞争优势,这归结为以下几点:
1.成本效益
组织需要充分利用微服务和容器化应用程序转移到Kubernetes的巨大潜力,这种想法在云原生计算基金会(CNCF)主办的年度KubeCon + CloudNativeCon活动中得到了支持。英国《金融时报》运营与可靠性首席技术官Sarah Wells在大会演讲中分享在IT运营中实施Kubernetes的实践知识,可以帮助组织评估和检查Kubernetes在托管、技术支持和迁移成本方面的有效性。
2.一致性
通过一次运行多个容器,Kubernetes为软件开发、DevOps、质量保证(QA)、系统管理员和其他专家提供了一个整体的生产环境。无论在运行Kubernetes集群时可能发生什么变化,软件开发生命周期(SDLC)的整体完整性都会得到保留。它将有助于提高性能,并尽可能地降低风险。
3.便携性
Kubernetes可以在裸机或虚拟机(VM)群集上运行的容器中轻松地在内部部署和基于云的环境中使用。由于应用程序是容器化的,因此它们完全与平台无关,并且可以跨各种框架进行编排。容器编排技术支持当今的大多数编程语言,这是迁移Kubernetes的另一个巨大优势。
4.可扩展性
Kubernetes在处理与应用程序相关的工作负载时,可以应对任何零星或计划中的扩展挑战。由于其弹性和容器集群过程的自动化,因此可以轻松地减轻负担,并在组织的数据中心、私有云和公共云的功能之间重新分配负担,而不会造成任何性能问题或停机。这对于DevOps来说意义重大,因为可扩展的工作负载可确保持续集成(CI)/ 持续交付(CD)管道的巨大改进。
5.安全性
最后但并非最不重要的一点是,组织需要确保容器编排工作负载绝对安全。Kubernetes通过透明的控制机制和合规性协议为组织提供了安全性,例如基于角色的访问控制(RBAC)、轻量级目录访问协议(LDAP)、增强安全性的Linux(SELinux)以及可扩展访问控制标记语言(XACML)。Kubernetes提供增强的安全功能,以保护组织的IT基础设施,并确保跨各种生产环境运行的基于容器的应用程序的正常运行。
总而言之,组织将应用程序和相关流程迁移到Kubernetes需要认真考虑。而与现有基础设施的无缝集成可以寻求专业机构的帮助。