CI/CD 和新一代软件交付:Harness 访谈
持续集成和持续交付 (CI/CD) 在现代软件开发领域非常流行。但实际上,这个流水线流程是什么呢?它是一种方法或一系列原则,开发团队通过这些方法和原则更频繁、更可靠地实施和交付代码。
持续集成体现了一种编码理念和一系列实践,推动团队将小的、频繁的代码更改实施到版本控制存储库中,而持续交付则在 CI 结束的地方接手,并自动化应用程序的交付
许多平台,如 Jenkins 和 CircleCI,旨在帮助公司和团队简化其软件堆栈的开发和集成,但在简化和自动化交付过程方面,并没有太多现有的解决方案。而对于确实存在的解决方案,它们往往在功能和特性方面不足,或者在最初配置时过于复杂。
这就是 Harness 出现的地方。Harness 推出了业界首个持续交付即服务平台。利用机器学习,它简化并自动化了整个 CD 过程。Harness 的营销副总裁 Steve Burton 最近抽出时间与我分享了更多细节。
Petros Koutoupis: 请向我们的读者介绍一下您自己。
Steve Burton: 虽然官方职位是营销副总裁,但我同时也是 Harness 的 DevOps 布道师。这意味着我什么都做一点。虽然我的职业生涯主要在产品管理和营销方面,但我从大学毕业时获得了计算机科学学士学位,最初的职业生涯是 Java 开发(大约 2004 年在 Sapient),从事大型企业 J2EE 实施。在加入 Harness 之前,我在 AppDynamics、Moogsoft 和 Glassdoor 从事技术相关的工作。当不沉浸在技术中时,我喜欢花时间观看 F1 比赛和在网上研究汽车。
PK: 什么是 Harness?
SB: 我们提供持续交付即服务。它是 CI/CD 等式中的 CD 部分,帮助客户自动化其软件部署和交付给生产环境中的最终用户的方式。
我们基本上允许客户快速行动而不破坏任何东西,以便他们可以在不承担停机或失败风险的情况下提高开发人员的速度。
PK: Harness 解决了什么问题或哪些问题?
SB: 开发人员承受着巨大的压力,需要快速且零错误地将应用程序交付到生产环境。这是一个持续的痛点,我作为一名前 Java 开发人员也曾亲身经历过。我们的创始人也亲身经历了这一挑战,这就是他们创立 Harness 的原因。
如果您与我们的 CEO Jyoti Bansal 交谈,他会告诉您他在运营 AppDynamics 期间与大型企业客户会面的经历,他们都会告诉他,“我们有 700 名 DevOps 工程师,但他们所有的时间都花在编写脚本和监督部署上。没有解决方案可以帮助我们像 Facebook 或 Google 那样进行持续交付。” Jyoti 拉拢 Rishi Singh 作为他的联合创始人来帮忙。Rishi 也曾在苹果公司看到这是一个巨大的问题,他在那里领导 CD 和 DevOps 工作。他们意识到,如果连苹果公司都存在这个问题,那么几乎所有其他公司也会如此。
客户需要 12-18 个月才能用多名工程师构建的东西,使用 Harness 平台只需几个小时即可完成。这关系到赋能 DevOps 和开发人员,以便他们能够自助服务他们的 CD 需求。
PK: CI/CD 似乎是当今的趋势,它通常与座右铭“快速失败,经常失败”联系在一起。Harness 如何实现这样的环境?反过来,它如何从经验中学习,以期鼓励更好的实践?
SB: 我们实际上有一个标语,“快速行动,不要破坏任何东西。” 这是对 Facebook 关于快速行动和破坏一切的旧座右铭的调侃,他们后来已经放弃了这个座右铭,因为今天的开发人员没有犯错的余地。这就是为什么我们看到数百家供应商争先恐后地解决 CI/CD 问题。CI——或将代码转化为工件——在很大程度上已经通过 Jenkins、Bamboo、CircleCI 和 Travis CI 等工具得到解决。但在 Harness 出现之前,CD——将工件交付到生产环境——在很大程度上仍未解决。
一旦您构建和测试了代码,您就必须每天多次将其交付给生产环境中的最终用户,如果出现错误,您需要有一个失败和回滚策略。这就是 Harness 的用武之地。我们降低了失败的风险并管理了 CD 的复杂性,这比大多数人认为的涉及更多活动部件。CD 不仅仅是关于配置基础设施和配置管理。要求还包括安全和密钥管理、部署验证和健康检查、回滚以及分析和报告。并非所有关于 CD 的事情都是显而易见的,我们帮助简化和协调所有这些。
PK: DevOps 如何融入其中?
SB: CD 是什么(快速且频繁地部署),而 DevOps 是如何(文化、心态、协作)。DevOps 和 CD 都旨在尽可能快地从想法到盈利。由于软件开发对业务产生巨大影响,公司希望给予、赋能和运营他们的开发人员。但与此同时,他们需要控制、审计并确保一切都正确完成。这包括合规性、安全性和报告,它们与开发的“酷”部分一样是难题的一部分。在 Harness,我们将这些部分整合并自动化。
PK: 将您的产品集成到现有基础设施中有多简单?
SB: 非常容易。Harness 将在几分钟内与您的云堆栈和工具集成。我们主要提供 SaaS,但我们也提供本地部署软件,因此客户可以在任一模型上部署。使我们与众不同的是,我们为 DevOps 生态系统 中的所有技术构建了 40 多个可重用的连接器和模板,因此团队可以在几分钟内将现有工具连接在一起并构建 CD 管道。
这涉及软件交付的三个主要方面。首先是实际部署,我们通过将您的持续集成 (CI) 和存储库工具(如 Jenkins、Bamboo、JFrog 和 CircleCI)连接在一起来自动化部署。然后,我们使这些工具与云和编排平台(如 Kubernetes、Docker、AWS、GCP 和 Azure)同步工作。最后,您必须利用 AppDynamics、New Relic、Splunk 和 Elastic 等工具来验证您的部署。
PK: 那么管理和分析呢?用户可以获得哪些信息?
SB: Harness 提供对软件部署、验证和回滚的深入分析和洞察。每个步骤和操作都会在每个服务、应用程序和环境中进行审计。客户可以完全了解部署期间发生的事情,并实时了解更改的内容和位置。因此,如果出现故障,开发人员可以立即知道,而无需请求生产日志。
Harness 还使用机器学习来基准测试、比较和验证部署,以便客户了解每次软件发布的准确业务影响。我们甚至可以准确地告诉客户,他们的最终用户体验和收入在部署过程中发生了怎样的变化。
例如,“部署是否增加了或减少了收入?响应时间是变好还是变差了?” 这些是企业需要提出的问题,但大多数企业不知道如何回答或他们是否应该提出这些问题。不幸的是,当今大多数公司将成功简单地理解为“如果应用程序保持运行,我们就没事了。” 但对于我们和我们的客户而言,这还不够好——完美、不间断的客户体验至关重要。
PK: 使用 Harness 还有哪些其他价值?
SB: 在整个组织(而不仅仅是一两个开发团队)范围内实现 CD 的简单性和规模。
我们的许多客户在遇到我们之前,已经花费了数月或数年的时间试图手工制作自己的 CD 平台或设置像 Spinnaker 这样的开源解决方案,但都未成功。我们的大多数客户在 2-3 小时内使用 Harness 完成开发团队和应用程序的入职。这大大缩短了我们客户的价值实现时间和上市时间。以即服务的方式提供 CD,并提供客户需要的 95% 的功能(模板、集成、特性)非常强大。简单的安全功能(如 LDAP/SAML 集成和基于角色的访问控制 (RBAC))也使 Harness 的部署变得简单。安全性和治理通常被许多供应商忽视。
欲了解更多信息,请访问 http://www.harness.io。