公司城市蒙特利尔 地点蒙特拉尔,魁北克,加拿大 行业政府

挑战

像许多政府一样,Montréal拥有许多遗留系统,并“我们有比在这里工作的开发人员年龄大的系统,”这个城市的CTO,Jean-Martin Thibault说。“我们有大型机,所有的窗口,各种风格的Linux,旧和新的Oracle系统,Sun服务器,各种数据库。与所有大公司一样,一些最重要的系统,如预算和人力资源,是开发的在过去的30年里,内部的大型机。“全部有超过1,000个应用程序,其中大部分都在不同的生态系统上运行。2015年,一支新的管理团队决定分解那些筒仓,投资它,以便走向更综合的城市治理。他们需要弄清楚如何现代化建筑。

解决方案

第一步是集装箱化。该团队从一个带有四个或五台服务器的小型码头服务器场开始,具有牧场主,可提供对Docker容器及其日志和jenkins的访问部署。“我们基于我们对新趋势的努力;我们理解没有停机的不变性和部署的好处和这些事情,”解决方案建筑师Marc Khouzam说。他们很快意识到他们也需要编排,并选择Kubernetes。Enterprise Architect Morgan Martinet说:“Kubernetes提供了如何描述任何类型应用程序的架构的概念,并基于这些概念,部署运行基础架构所需的内容。它正在成为一个事实上的标准。”

影响

上市时间大大缩短,从几个月到几个星期。部署从几个月变成了几个小时。“在过去,你必须要求虚拟机,这很容易花费数周的时间,”Thibault说。“现在你甚至不需要要求任何东西。你只要创建你的项目,它就会被部署。”Kubernetes还提高了城市使用计算资源的效率:Martinet说:“以前,我们目前在Kubernetes上运行的200个应用程序组件需要数百台虚拟机,而现在,如果我们讨论一个生产环境,我们可以在8台机器上运行它们,算上Kubernetes的大师。”这一切都是在一个只有5人的小团队中完成的,这个小团队管理着Kubernetes集群。

作为加拿大的第二大市政当局,Montréal拥有大量的遗留系统来保持政府的运行。虽然这些系统的历史不能完全追溯到1642年,但“我们的系统比在这里工作的一些开发者还要古老,”该市的首席技术官让-马丁·蒂博(Jean-Martin Thibault)开玩笑说。

“我们有大型机,所有的Windows,各种风格的Linux,旧和新的Oracle Systems,Sun服务器,各种数据库。一些最重要的系统,如预算和人力资源,在内部的主机上开发了过去30年。“

近年来,这一事实成了一大痛点。总共有超过1000个应用程序,运行在几乎同样多的不同生态系统上。2015年,一个新的城市管理团队决定打破这些竖井,并投资于IT,以实现更综合的治理。“组织是竖井,因此体系结构也是竖井,”Thibault说。“一旦我们整合到一个IT团队中,我们就决定重新构建整个企业架构。”

使体系结构现代化的第一步是集装箱化。“我们基于我们对新趋势的努力;我们理解没有停机的不变性和部署的好处和这些事情,”解决方案建筑师Marc Khouzam说。该团队从一个拥有四五台服务器的小型Docker农场开始,Rancher提供对Docker容器及其日志的访问,Jenkins用于部署。

但是这种Docker场设置有一些限制,包括缺乏自修复和基于流量的动态伸缩,以及优化服务器资源和扩展到同一个容器的多个实例所需的努力。团队很快意识到他们也需要编排。“Kubernetes来救场了,”Thibault说,“它带来了所有这些功能,让它更容易管理,给用户带来了更多好处。”

该团队已经评估了多个编排解决方案,但Kubernetes脱颖而出,因为它解决了所有的痛点。(他们也受到雅虎的启发。日本的使用情况,团队成员感到靠近他们的愿景。)“Kubernetes提供了如何描述任何应用程序的架构的概念,并基于这些概念,部署所需的内容运行基础架构,“Enterprise Architect Morgan Martinet说。“它正在成为一个事实上的标准。它还承诺跨越云提供商的便携性。Kubernetes的选择现在为我们提供了许多选项,例如在内部或任何IAAS提供者中运行群集,甚至使用Kubernetes-As-Service任何主要的云提供商。“

决定的另一个重要因素是供应商中立。“作为政府实体,我们必须在我们选择的产品和提供商选择中是中立的,”Thibault说。“来自任何公司的云本机计算基金会的独立性提供了这一点。”

Kubernetes实现开始使用内部Ansible Playbook的小群集部署,这很快被Kismatic分布所取代。鉴于他们在操作Kubernetes平台时看到的复杂性,他们决定提供基于掌舵的自动化CI / CD解决方案的开发组。“Kubernetes上的集成CI / CD解决方案标准化了各种开发团队的设计和部署解决方案的方式,但允许他们保持独立,”Khouzam说。

在重新架构过程中,团队还添加了用于监控和警报的Prometheus,用于日志记录的Fluentd,以及用于可视化的Grafana。Martinet说:“我们提高了正在部署的项目的可见度。”Khouzam补充道:“最大的好处是我们可以追踪任何东西,甚至是那些不在Kubernetes集群内运行的东西。这是我们统一监控努力的方式。”

云原生解决方案都对速度和行政开销产生了积极影响。通过标准化,代码生成,自动部署进入Kubernetes,以及通过普罗米修斯的标准化监控,市场上的时间急剧改善,从很多几个月到几个星期。部署从一个月到几个月到几个小时。“在过去,你必须要求虚拟机,而那么单独的时间可能需要数周才能妥善规定,”Thibault说。此外,对于专用系统,专家们经常被带入他们自己的食谱,这可能需要数周和几个月。

现在,Khouzam说,“我们几乎可以部署任何经过Dockerized的应用程序,而不需要任何人的帮助。让一个项目在Kubernetes中运行完全取决于你需要多长时间来编写实际的软件。它不再依赖于部署。部署如此之快,以至于可以忽略不计。”

Kubernetes还提高了该市如何使用其计算资源的效率:“之前,我们目前在Kubernetes中运行的200个应用程序将需要数百个虚拟机,现在,如果我们谈论一个生产的生产环境,那么我们能够在8台机器上运行它们,计算Kubernetes的主人,“马提内特说。这一切都与一个只有五个人的小团队完成,操作Kubernetes集群。添加Martinet:“无论你衡量的事情都是戏剧性的改进。”

所以车队前进的策略是尽可能多地瞄准库伯内特,这并不奇怪。Thibault说:“如果Kubernetes内部无法运行某些东西,我们将等待它。”这意味着他们还没有将任何城市的Windows系统移植到Kubernetes上,尽管这是他们想做的事情。Martinet说:“我们在可能的情况下与市场合作,向我们的供应商施加压力,让他们支持Kubernetes,因为这是一个更容易管理的解决方案。”

Thibault看到了不久的将来,其中60%的城市的工作负载在Kubernetes平台上运行 - 基本上他们可以在那里工作的任何和所有用例。“这比我们过去做事的方式更有效,”他说。“没有回头看。”