公司 Haufe Group 地点 德国弗莱堡 行业 媒体与软件

挑战

Haufe Group 成立于 1930 年,最初是一家传统出版商,现已发展成为一家媒体和软件公司,其 95% 的销售额来自数字产品。多年来,该公司从拥有“地下室硬件”发展到外包其基础设施运营和 IT。最近,新产品的开发,从税务专家互联网门户到人员培训软件,对提高速度、可靠性和可扩展性提出了要求。“我们需要能够更快地行动,”解决方案架构师 Martin Danielsson 说。“适应工作负载是我们真正希望能够做到的事情。”

解决方案

Haufe Group 在 Microsoft Azure 在欧洲上市后开始了其云原生之旅;该公司需要为其桌面应用程序提供云部署,并支持带宽密集型下载服务。“之后,就是不同的项目尝试不同的事情,”Danielsson 说。两年前,Holger Reinhardt 加入 Haufe Group 担任首席技术官,并迅速将传统的基于主机提供商的方法转向了云和 API 优先战略。

该战略的核心部分是明确要求通过 Docker 在整个软件部署生命周期中采用基础设施即代码。该公司现在正准备使用 KubernetesMicrosoft AzureAmazon Web Services 上编排两个服务并投入生产。该团队还在努力将其核心 Java Enterprise 桌面产品之一拆分为微服务,以实现更好的可演进性和云中的动态扩展。

影响

Danielsson 表示,通过适应工作负载,团队“将能够在夜间将容量缩减到大约一半,从而节省 30% 的硬件成本。”此外,更短的发布时间产生了重大影响。“以前,我们必须提前至少一周宣布何时进行发布,因为有一长串必须做的事情,”他说。“通过采用云原生,我们拥有了基础设施,能够自动化所有这些事情。现在我们可以在半小时而不是几天内完成新版本发布。”

80 多年前,Haufe Group 成立为一家传统的出版公司,印刷纸质书籍和评论。

然而,到了 1990 年代,公司领导者认识到未来是数字化的,值得称赞的是,他们成功地将 Haufe Group 转型为一家媒体和软件公司,现在其 95% 的销售额来自数字产品。“在德国做这项业务的公司中,我们是早期采用者之一,”Haufe Group 解决方案架构师 Martin Danielsson 说。

现在,他们正在引领中型企业拥抱 Kubernetes 等云原生技术。“像 Ticketmaster 和 Google 这样的大公司做得很好,而初创公司也做得很好,因为它们更快,”Danielsson 说。“我们处于中间大量拥有很多遗留系统、很多结构、很多文化的公司的阵营中,这些公司不容易适应云技术。我们只有 1500 人,但我们有数百个面向客户的应用程序。所以我们正在做的事情将与我们规模或甚至更小的许多公司相关。”

许多遗留挑战仅仅源于追随时代的技术趋势。“我们曾经完全采用 DevOps,”他说。在 1990 年代和 2000 年代,“这意味着你在地下室有自己的硬件。然后 10 年前,当时的炒作是外包应用程序运营,外包所有东西,并精简你的 IT 部门,以消除所有这些硬件事情的干扰。那不是我们的专业领域。我们不想成为基础设施提供商。现在,这种情况正在反噬。”

Haufe Group 在开发更多新产品时开始感到痛苦,从税务专家互联网门户到人员培训软件,这些产品对提高速度、可靠性和可扩展性提出了要求。“现在,我们的工作流程中断了,我们从编写概念到开发,将其移交给生产,然后再移交给您的主机提供商,”他说。“然后当事情出错时,我们不知道哪里出了问题。我们绝对想夺回控制权,我们想更快地行动。适应工作负载是我们真正希望能够做到的事情。”

这些需求促使他们探索云原生技术。他们首次涉足云端是在 Microsoft Azure 在欧洲可用后,为内置下载服务的桌面产品进行部署。对于这些带宽密集型服务,托管费用过高,因此公司转向了云端。“之后,就是不同的项目尝试不同的事情,”Danielsson 说。

两年前,Holger Reinhardt 加入 Haufe Group 担任首席技术官,并迅速将传统的基于主机提供商的方法转向了云和 API 优先战略。该战略的核心部分是明确要求通过 Docker 在整个软件部署生命周期中采用基础设施即代码。一些实验比其他实验走得更远;德国关于敏感数据的法规证明是阻碍将某些工作负载转移到 Azure 和 Amazon Web Services 的障碍。“由于我们的历史原因,德国在个人身份数据等方面的规定非常严格,”Danielsson 说。

随着适用于德国的 Azure Sovereign Cloud(由德国 T-Systems 提供商运营的 Azure 克隆)的到来,这些实验获得了新的生命。随着符合德国隐私法规的 Azure.de 的推出,团队开始认真考虑将生产负载部署到 Docker 中的云端。“过去两年我们一直在使用容器,我们确实掌握了它们的工作原理,”Danielsson 说。“但它始终用于开发和测试,从未用于生产,因为我们不完全了解它将如何工作。对我来说,Kubernetes 绝对是解决这个问题的技术。”

与此同时,Danielsson 建立了一个 API 管理系统,旨在支持 CI/CD 场景,而现成的 API 管理产品中缺少这些方面。以 Mashape 的 Kong 网关为基础,它作为开源项目 wicked.haufe.io 发布。他将 wicked.haufe.io 应用到他的产品团队中。

否则,Danielsson 说他的哲学是“不要总是试图重新发明轮子。选择现有的,99% 的时间都足够了。如果你认为你真的需要一些定制或额外的东西,也许再考虑一两次。我发现这个云原生框架最令人惊奇的一点是,所有东西都紧密相连。”

目前,Haufe Group 正在使用 Kubernetes 生产运行两个项目。一个是用于研究立法和税法的新移动应用程序。“我们需要一种方法从遗留核心中取出功能,并在上面放置一个带有 API 网关的应用程序——许多移动部件都要求使用容器,”Danielsson 说。因此,团队将构建管道从“部署到一些旧的、巨大的机器,你可以部署任何东西”转移到 Kubernetes 集群,在那里将有自动 CI/CD,“具有功能分支和所有这些过去有点繁琐的东西。”

这是一项概念验证工作,结果证明是成功的。“每个人都对我们在一周内完成的工作印象深刻,”Danielsson 说。“我们做了这些集成,只是为了确保我们掌握了 Kubernetes 的工作原理。如果你能围绕某件事创造乐观和轰动,那你就成功了一半。如果开发人员和项目经理知道这有效,那么你或多或少就完成了。”Reinhardt 补充说:“你需要创造一些非常显眼、快速的成功,以克服现状。”

对部署速度的影响是显而易见的:“以前,我们必须提前至少一周宣布何时进行发布,因为有一长串必须做的事情,”Danielsson 说。“通过采用云原生,我们拥有了基础设施,能够自动化所有这些事情。现在我们可以在半小时而不是几天内完成新版本发布。”

对成本的潜在影响是另一个额外好处。“托管应用程序相当昂贵,所以我们真的希望能迁移到云端,”Danielsson 说。通过适应工作负载,团队“将能够在夜间将容量缩减到大约一半,从而节省 30% 的硬件成本。”

同样重要的是,Danielsson 说,还有额外的灵活性:“当我们尝试移动或重构真正关键的应用程序时,验证我们想要采取的路径是否会成功通常很棘手。为了验证这一点,我们需要重现环境并真正进行测试,而这在传统主机提供商那里成本过高且根本无法实现。云原生使我们能够以经济高效的方式进行有风险的更改并验证它们。”

随着两个成功的测试项目在公司内部传开,对 Kubernetes 的兴趣也越来越浓厚。“我们希望能够支持我们的开发人员运行 Kubernetes 集群,但我们还没有做到这一点,所以只要他们意识到自己是独立的,我们就允许他们这样做,”Danielsson 说。“这就是为什么我们也在考虑像 [托管 Kubernetes 平台] CoreOS TectonicAzure Container ServiceECS 等这样的东西。这些服务对于希望利用云原生但没有 IT 部门或相关结构的中型公司来说将更加重要。”

Danielsson 表示,在接下来的一年半里,公司将致力于将其一款最初用 Java Enterprise 构建的遗留桌面产品(用于研究立法和税法的网络应用程序)迁移到云原生技术。“我们现在正在进行微服务拆分,以便能够独立部署不同的部分,”他说。主网站(为客户提供免费内容)也正在迁移到云原生。

但 Danielsson 认为,要实现这些目标,需要不断解决更大的文化挑战。向新技术的转变,更不用说转向 DevOps,意味着员工会经历很多变化。“过去的角色是相当固定的,”他说。“你有开发人员、项目负责人、测试人员。现在你进入了这些真正、真正重要的事情,比如测试自动化。测试人员不再进行点击测试,他们必须编写自动化测试。如果你真的想全面推行 CI/CD,所有这些小部分都必须协同工作,这样你才能有信心进行签入,并且知道这个签入将进入生产环境,因为如果我搞砸了,某个测试就会失败。这是一件非常强大的事情,因为无论你做什么,只要你将某些东西合并到主干或主分支,它就会上线。这就是你要么留住人,要么把他们吓跑尖叫的地方。”Danielsson 明白,有些人可能需要更长的时间才能适应新的工作方式。

“文化是你无法强加于人的,”他说。“你必须亲身体验。你必须布道。你必须一遍又一遍地展示优势:这就是你可以做到这一点的方式,这就是你从中得到的。”为此,他的团队为员工安排了为期一天的研讨会,邀请外部专家讲解从 API 到 Devops 再到云的一切内容。

对于每一个吓得尖叫而逃的人,都有更多人被吸引进来。“让他们入门并真正对这些东西感兴趣,”Danielsson 说。“通常它会流行起来。我们现在有你从未想到会有人喊‘Docker Docker Docker’。看到他们意识到Python库之外还有一个世界真是太酷了。看到他们真正使用Kubernetes真是太棒了。”

最终,Reinhardt 说:“战略的执行需要文化、结构和技术的统一。只有当这三个维度统一时,才能成功地转型为微服务和云原生架构。只有这样,云才能在产品创新方面带来更快的速度和更低的运营成本。”