(一)法国兴业银行:有状态的传统应用程序也可以容器化
基本背景
法国兴业银行(Société Générale)是一家拥有153年历史的法国跨国银行,这家银行坚信技术和创新是丰富客户体验和推动经济发展的关键因素。几年前,该银行启动了一个项目,该项目定义了它们的下一代应用程序平台,就是在2020年前将其应用程序的80%上传至云端运行。法国兴业银行选择了Docker企业版(Docker EE)作为其应用程序的基础平台,并在15个月前开始与之合作。今年在DockerCon欧洲大会上,DevOps架构师Stephan Dechoux 和中间件专家Thomas Boussardon分享了他们将Docker企业版(Docker EE)集成到法国兴业银行IT系统的经历。
技术概况
法国兴业银行拥有多种应用程序组合,其中包括许多不同类型的应用程序,如传统的单一应用程序(monolithic apps),SOA,分布式应用程序和REST API。该银行也是一个在全球范围内拥有团队和数据中心的全球性组织。它的主要目标是提供新的应用程序平台,以加快产品上市时间并降低成本,同时加速创新。最初,法国兴业银行考虑了现成的PaaS解决方案,但是它意识到这些解决方案更适合于新建的应用程序,而它需要的则是一个可以马上支持已经存在的数千个应用的解决方案。
另一方面,该平台还需要支持法国兴业银行未来的项目。例如,虽然他们有一个相当大的私有云,但他们希望确保该解决方案可以扩展到公共云,并支持新兴技术和未来的使用案例,如机器学习和区块链技术。
法国兴业银行得出的结论是,Docker EE将同时支持它们现有的应用程序以及新建的应用程序,同时让它们能够整合首选系统并利用现有的基础设施。
项目详解——成功的分步计划
第一步:与现有技术栈集成
它们首先定义了现有的技术和应用程序堆栈,并优先考虑将Docker EE与其核心CI / CD管道工具(包括Jenkins,Github和Nexus)集成。
第二步:有状态的容器
如上图所示,法国兴业银行开始将有状态的应用程序迁移到平台。为了支持这些有状态的(主要是传统的)应用程序,Docker EE使用新的卷(volume)插件集成到现有的NetApp存储中。法国兴业银行大约在9个月前开始了在Docker EE中运行第一套应用程序。
第三步:集中管控
随着这些应用程序在Docker EE中运行,Thomas和Stephan添加了日志记录和监控解决方案,不仅可以查看容器内部的运行情况,还可以将信息集中在一个仪表板上。
成果
今天,在它们开始这个项目15个月之后,它们进入了第三阶段。在Docker EE平台上有10个应用程序正在运行,另有50个应用程序正在开发中。大约有400名开发人员在这个平台上工作,并且在整个组织内产生了极大的热情,不同的团队都想在这个平台上工作。
小结:不会过时的技术平台
现在,现有的传统应用程序更容易更新和维护了,法国兴业银行正在寻找更多的微服务,并扩展平台以支持新的云原生应用程序和新兴技术。在接下来的几个月中,法国兴业银行将在多个云层(私有云和公共云)之间一同运行,就像Stephan说的那样,将所有的一切都运行在“一个巨大的集群”中。
对于Stephan和Thomas来说,Docker EE在法国兴业银行的成功来自于优先考虑到平台的整合点以及关键应用程序的初始选择。从小处着手,银行可以凭借自己的成功,在平台建成之后积聚更多的动力。通过分步计划,他们能够随着时间的推移增加更多的功能,同时在平台上培养更多的团队。今天,Docker EE无疑是整个组织的首选平台。
(二)丹麦金融保险公司Alm Brand - 为传统应用程序寻求操作的稳定性
基本背景
Alm Brand成立于1792年,它是一家总部位于哥本哈根的丹麦保险和金融公司,也是历年都出席DockerCon欧洲大会的公司之一。IT架构师Sune Keller和系统专家Loke Johannessen将骑着他们的自行车前往2017年DockerCon 欧洲大会,现场演示如何帮助传统的WebLogic应用程序迁移到Docker企业版(Docker EE)。
技术思考
在参加完2015年的DockerCon(当时被称为Docker Datacenter)欧洲大会之后,Alm Brand开始与Docker EE合作。他们成功的在Docker EE环境中部署第一套新应用程序后,Alm Brand继而想要用它来解决他们现有的WebLogic应用程序,这个让他的团队感到头疼的应用程序。该团队在一个大型集群中运行WebLogic应用程序,所有这些应用程序都运行在同一个Java虚拟机上。当一个应用程序崩溃时,它通常会导致整个Java虚拟机的崩溃或中止整个群集,这使得大家很难确定哪个应用程序是导致崩溃的根源。这种设置也非常脆弱,而且速度很慢,因为他们只能一次只能将一个应用部署到集群中。
凭借他们使用Docker EE部署首批应用程序所积累的经验,Sune和Loke设定了迁移传统WebLogic应用程序的宏伟目标。他们开始在工作时间内从现有的集群切换到Docker EE,无需更改代码,并将对用户产生的影响降到最低。
方案
目前,Alm Brand已经将39个WebLogic应用程序迁移到他们的Docker EE环境中,并与近50个新开发的应用程序一起使用。他们能够通过在传统集群和新Docker集群之间对应用程序进行负载平衡,以最小的干扰进行迁移,从而在不影响用户使用的情况下,逐步将流量从一个集群转移到另一个集群。Sune和Loke在演讲中演示了这个过程,值得大家一试!
迁移的好处是?
对于运营团队而言,这种迁移的积极影响非常大,原因如下:
- 改良配置管理:对于Alm Brand来说更具挑战性的问题之一就是处理不同应用程序8年的配置堆积问题。通过仔细测试和拆分依赖关系,他们将26个不同的自定义虚拟机精简至12个。
- 更轻松的维护和故障排除:由于应用程序彼此隔离的特性,Alm Brand出现服务中断的经历要少得多。应用程序问题也就更容易识别和解决了。
- 新开发和传统的应用程序拥有统一标准的运行模式:在同一个Docker EE平台上运行这两种类型的应用程序,可以在整个组合环境中集中记录日志和度量指标。Alm Brand能够使用同一组进程和仪表板来管理所有的应用程序。
小结:下一步计划
Sune and Loke还有大约10个WebLogic应用程序需要迁移,然后他们将开始着眼于他们的Windows应用程序组合。他们已经在开始利用Docker EE的基本访问控制和LDAP集成功能,现在还在探索其他一些高级功能,如用于分离生产和非生产环境的基于节点的隔离功能。