【51CTO.com快译】DevOps团队在急于利用云原生应用开发和Kubernetes等工具之后,现在需要考虑更多。在许多情况下,DevOps采用Jenkins等早期的持续集成/持续部署(CI/CD)管道工具,现在试图将它们运用于之前不适合的云原生场景。
云原生将开发者拉到基础设施相关操作上,目前的CD工具无法帮助恢复开发者在改用微服务架构之前曾拥有的应用级上下文,为部署后应用软件的开发工作流程和可观察性增添了复杂性。DevOps 团队在应用软件策略管理方面也面临新挑战,尤其在严格监管的行业,因为它们在调整流程,以便在云原生环境建立信任和安全。与此同时,DevOps需要重新评估自动化方法和消除人为错误的策略,因为云和Kubernetes部署重新面临非常乏味的手动工作。
以下是DevOps需仔细考虑战略(宜早不宜迟)的三个方面,为云原生2.0未来做好准备,从而使云原生环境能够更有效地得到运用。
1. 具有更高互操作性和可组合性的 CI/CD
考虑到现有的选择范围不断扩大,在云原生2.0环境下,选择和实施CI/CD工具变得更令人关注,但这也是一个战略性挑战。一些工具在开发管道早期提供了优势,另一些在末期提供了优势。从CI到CD到发布自动化(RA),DevOps团队需要检查潜在的工具以及如何将它们拼凑在一起,以组建一条优雅和谐的管道。遗憾的是,正如许多DevOps 团队所熟知,这说起来容易做起来难。一些端到端解决方案还会带来锁定现象及其他不良方面,一些同类中优秀的零散解决方案可能无法很好地兼容。
我希望和预测,在不久的将来,会出现更高的互操作性。作为云原生2.0的一部分,以至于 CI、CD、RA 甚至面向治理和合规的解决方案都完全即插即用。到时,DevOps就能为特定需求选择最合适的解决方案,然后它会发挥作用。
眼下,在我们等待这个即插即用愿景到来之际,可组合性是DevOps应在将来物色的解决方案应具有的一个至关重要的方面。管道组件轻松交互的能力简化了无数使用场景以及关键的安全和合规问题。跨云原生管道实施策略驱动的限制需要带来广泛可组合性的DevOps工具链。幸好,许多CI/CD系统在这方面做得很好:让扩展和插件可以使跨管道的可组合性成为现实。
2. 利用应用策略管理
必须针对整个应用开发和部署生命周期制定策略,以确保遵循重要的安全和治理规则。不能跳过任何可能引入漏洞的步骤。对于在云原生环境工作的DevOps团队来说,实施这些策略因Kubernetes 及其替代方案的高度复杂性而变得愈加困难。
作为一种策略,DevOps应利用这种工具和框架:1)使开发者免受Kubernetes复杂性的影响,2)保护他们免受风险。比如说,如果您将构建映像部署到Docker存储库(比如 Docker Hub),它包含用于检测和报告漏洞及其他安全故障的工具。内部源代码扫描可以识别合并请求中的漏洞。工具还应该支持跨团队的协作和关键知识的共享。从结构上来讲,将 DevSecOps 嵌入到开发团队中、处理安全问题(作为常规流程的一部分)是明智的。
鉴于相邻的DevSecOps和工具能够对付生成Kubernetes对象和维护环境之类的挑战,开发者可以专注于代码和解决业务问题。这就是他们想要做的,这也是他们的目的。还应该使用拥有强大应用框架的工具来定义和实施DevSecOps控制的策略,这些策略会自动禁止危险活动和错误。有了合适的应用策略管理框架,如果开发者误尝试部署受污染的映像,他们就无法这么做。此类框架可以实施安全策略和资源限制,启用或禁用安全扫描,管理CVE 被标记还是被忽略,以及控制团队对整个云原生环境中的Kubernetes和服务的访问。
3. 兼顾自动化和审计
应用开发中的人为错误会降低生产力。通常更大的担忧是加大安全和合规风险。自动化和审计存在有趣的关系:自动化减少人为错误,而审计让人可以解决自动化造成的错误。
有点出人意料的是,云原生环境促使人们回到非常手动的流程,从而使新的自动化对于开发者生产力变得更重要。比如说,原始Kubernetes及其Helm图表和YAML文件需要大量的脚本和手动部署工作。(从本人使用Kubernetes的情况来看,我认为如果每次我在编写 YAML文件出错时都往罐子里投入一美元,我会塞满好几只罐子。)抽取掉开发者不关心的Kubernetes的具体细节的自动化很受欢迎。
自动化最适合带来预期结果的可重复任务,比如扫描安全问题、检查代码使用安全且经过验证的库等。有效的自动化不是一劳永逸的自动化——它需要监督和维护。比如说,自动化系统可能会标记实际上无害的CVE,需要人来判断以完善系统。完全有可能使不可信的不良流程实行自动化,因此最终只会带来更多问题。正确的策略是,先开发值得信赖的手动系统,然后根据需要实现自动化。
通过利用可组合的CI/CD解决方案和谨慎的策略,使安全简化的应用开发实现自动化,DevOps可以最大限度地减少云原生环境的挑战,同时让开发者可以提高创造力和生产力。
原文标题:Cloud Native 2.0: 3 DevOps Strategies to Consider Now,作者:Henrik Rosendahl
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】