公司 Haufe 集团 地点 德国弗莱堡 行业 媒体和软件

挑战

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

解决方案

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

该策略的核心部分是通过 Docker 在整个软件部署生命周期中采用基础设施即代码的强有力指令。该公司现在准备在 KubernetesMicrosoft AzureAmazon Web Services 上进行编排的情况下,使用两个服务投入生产。该团队还在努力将他们核心 Java 企业桌面产品之一分解成微服务,以便在云中实现更好的可演化性和动态扩展。

影响

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

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

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

现在,他们正在为中型企业采用 Kubernetes 等云原生技术开创先河。“像 Ticketmaster 和 Google 这样的大公司做对了,初创公司也做对了,因为它们更快,”Danielsson 说。“我们处在这家大型公司中间,有很多遗留问题,很多结构,很多文化,这些文化并不容易适应云技术。我们只有 1,500 人,但我们有数百个面向客户的应用程序。因此,我们正在做一些对我们规模或更小的许多公司都有意义的事情。”

其中许多遗留挑战源于仅仅遵循当时的科技趋势。“我们过去做的是完整的 DevOps,”他说。在 20 世纪 90 年代和 2000 年代,“这意味着你在地下室有硬件。然后,10 年前,当时的炒作是将应用程序运营外包,将所有东西外包,并将你的 IT 部门缩减到消除所有这些硬件事情带来的干扰。这不是我们的专长。我们不想成为基础设施提供商。现在,这种做法的反弹来了。”

当 Haufe 集团开发更多新产品时,他们开始感受到这种痛苦,从面向税务专家的互联网门户网站到人事培训软件,这些产品对提高速度、可靠性和可扩展性提出了需求。“现在,我们在工作流程中出现了断层,从撰写概念到开发,再到交付生产,最后再交付给你的主机提供商,”他说。“然后,当事情出错时,我们不知道出了什么问题。我们绝对希望夺回控制权,我们希望更快地行动。我们真的希望能够适应工作负载。”

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

两年前,Holger Reinhardt 加入 Haufe 集团担任 CTO,并迅速将传统的主机提供商模式转向云优先和 API 优先策略。该策略的核心部分是通过 Docker 在整个软件部署生命周期中采用基础设施即代码的强有力指令。一些实验比其他实验走得更远;德国关于敏感数据的规定成为将一些工作负载迁移到 Azure 和 Amazon Web Services 的障碍。“由于我们的历史,德国在处理诸如个人身份识别数据之类的事情方面非常严格,”Danielsson 说。

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

与此同时,Danielsson 构建了一个 API 管理系统,旨在支持 CI/CD 场景,而这些场景在现成的 API 管理产品中缺失。它基于 Mashape's Kong 网关,开源为 wicked.haufe.io。他将 wicked.haufe.io 用于他的产品团队。

除此之外,Danielsson 说他的理念是“不要总想着重新发明轮子。选择现有的东西,99% 的情况下就足够了。如果你认为你真的需要一些自定义或额外的功能,请再三思量。我认为,这个云原生框架最棒的一点是,所有东西都联系在一起。”

目前,Haufe 集团正在进行两个使用 Kubernetes 投产的项目。一个是用于研究立法和税法的新的移动应用程序。“我们需要一种方法,将功能从遗留核心提取出来,并在其之上放置一个带有 API 网关的应用程序,有很多活动部件,这都需要容器,”Danielsson 说。因此,该团队将构建管道从“部署到一些可以部署任何东西的旧的大型机器”迁移到 Kubernetes 集群,在那里将会有自动 CI/CD“使用功能分支以及过去一些繁琐的事情”。

这是一个概念验证工作,验证的结果就摆在眼前。“每个人都对我们在短短一周内取得的成就印象深刻,”Danielsson 说。“我们进行了这些集成,只是为了确保我们掌握了 Kubernetes 的工作原理。如果你能够对某件事产生乐观和兴奋,就成功了一半。如果开发人员和项目经理知道这可行,那么你就几乎完成了。”Reinhardt 补充说:“你需要创造一些非常明显的、快速的成功,才能克服现状。”

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

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

同样重要的是,Danielsson 说,还有额外的灵活性:“当我们尝试迁移或重构真正关键的应用程序时,通常很难验证我们想要采用的路径是否能够奏效。为了验证这一点,我们需要复制环境并进行真正测试,这非常昂贵,对于传统的主机提供商来说是不可行的。云原生使我们能够以经济高效的方式进行有风险的更改并对其进行验证。”

随着两个成功的测试项目的成功消息在整个公司传播开来,人们对 Kubernetes 的兴趣与日俱增。“我们希望能够支持我们的开发人员运行 Kubernetes 集群,但我们还没有做到这一点,因此,我们允许他们这样做,前提是他们知道他们需要自己负责,”Danielsson 说。“因此,我们也在关注一些事情,例如 [托管 Kubernetes 平台] CoreOS TectonicAzure Container ServiceECS 等。这些类型的服务将对想要利用云原生但没有 IT 部门或相关结构的中型公司更相关。”

Danielsson 表示,在接下来的 18 个月里,公司将致力于将其中一项传统桌面产品迁移到云原生技术。这原本是一个用 Java Enterprise 构建的网页应用程序,用于研究立法和税法。他说:“我们目前正在进行微服务拆分,以便能够独立部署不同的部分。”主要网站向客户提供免费内容,也正在迁移到云原生。“

但是,Danielsson 认为,伴随着这些目标,需要不断解决更大的文化挑战。向新技术的迁移,更不用说向 DevOps 的转变,意味着员工需要进行很多改变。他说:“过去,角色比较固定。你会有开发人员,项目负责人,测试人员。现在,你开始接触到一些非常重要的东西,比如测试自动化。测试人员不再只是进行点击测试,他们必须编写自动化测试。如果你真的想全面实施 CI/CD,所有这些小部分都必须协同工作,这样你才能获得进行签入的信心,并知道这个签入将进入生产环境,因为如果我搞砸了,就会有测试失败。这是一件非常强大的事情,因为无论你做什么,无论何时将代码合并到主分支,都会立即生效。到那时,要么人们会接受,要么他们会惊恐地逃走。”Danielsson 理解,有些人可能需要更长的时间才能适应新方法。

“文化不是你可以强加给人们的东西,”他说。“你必须自己去体验它。你必须去宣传它。你必须一次又一次地展示它的优势:这就是你可以做到的,这就是你从中学到的。”为此,他的团队为员工安排了一整天的时间进行研讨会,邀请外部专家讲解从 API 到 Devops 到云的各个方面。

对于每一个惊恐地逃走的人,都有许多其他人被吸引进来。“让他们尝试一下,让他们真正对这些东西感兴趣,”Danielsson 说。“通常情况下,它会流行起来。我们现在有些人,你以前根本无法想象,他们会高喊‘Docker Docker Docker’。看到他们意识到 Python 库之外的世界,真是太酷了。看到他们真正使用 Kubernetes,真是太棒了。”

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