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

挑战

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

解决方案

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

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

影响

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

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

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

现在他们正在为中型企业采用 Kubernetes 等云原生技术引领潮流。“像 Ticketmaster 和 Google 这样的大公司做得很好,初创公司也做得很好,因为它们更快,”Danielsson 说。“我们正处于介于两者之间的一大批公司中,拥有大量的遗留系统、大量的架构、大量的文化,这些都不容易适应云技术。我们只有 1500 名员工,但我们有数百个面向客户的应用程序。所以我们正在做的事情对于与我们规模相当或甚至更小的许多公司都具有相关性。”

其中许多遗留挑战源于简单地跟随当时的技术趋势。“我们过去做的是完整的 DevOps,”他说。在 20 世纪 90 年代和 2000 年代,“这意味着你把硬件放在地下室里。然后 10 年前,当时的潮流是外包应用程序运营,外包一切,并精简 IT 部门,以摆脱所有这些硬件事物的干扰。这不是我们的专业领域。我们不想成为基础设施提供商。现在这带来了反作用。”

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

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

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

随着 Azure Sovereign Cloud for Germany(由德国 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 说,在未来一年半内,公司将努力将其遗留桌面产品之一(一个用于研究法律法规和税法的 Web 应用程序,最初使用 Java Enterprise 构建)迁移到云原生技术上。“我们现在正在进行微服务拆分,以便我们可以独立部署不同的部分,”他说。为主流客户提供免费内容的主要网站也正在向云原生迁移。

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

“文化是不能强加于人的,”他说。“你必须亲身实践它。你必须布道。你必须一次又一次地展示优势:这是你可以这样做的方式,这是你从中得到的东西。” 为此,他的团队安排了为期一天的研讨会,邀请外部专家讲解从 API 到 Devops 再到云的一切。

对于每个尖叫着逃跑的人,还有许多人会被吸引进来。“让他们先迈出第一步,并让他们真正对这些东西感兴趣,”Danielsson 说。“通常它会流行起来。我们现在有一些你从未想过会这样做的人在喊‘Docker Docker Docker’。很高兴看到他们意识到他们的 Python 库之外还有一个世界。看到他们真正使用 Kubernetes 真是太棒了。”

Reinhardt 最后说,“战略的执行需要文化、结构和技术的协同。只有当这三个维度协同一致时,你才能成功地实现向微服务和云原生架构的转型。只有这样,云才能在产品创新方面带来更快的速度,并在运营成本方面带来更低的收益。”— Holger Reinhardt,Haufe Group 首席技术官 (CTO)