【案例学习】传统应用程序上云的经典案例,欧洲两家领军企业的落地实践

简介: 传统应用程序该不该迁移?有状态的应用程序怎么办?

(一)法国兴业银行:有状态的传统应用程序也可以容器化

基本背景

法国兴业银行(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)集成。

SG1

第二步:有状态的容器

如上图所示,法国兴业银行开始将有状态的应用程序迁移到平台。为了支持这些有状态的(主要是传统的)应用程序,Docker EE使用新的卷(volume)插件集成到现有的NetApp存储中。法国兴业银行大约在9个月前开始了在Docker EE中运行第一套应用程序。
SG2

第三步:集中管控

随着这些应用程序在Docker EE中运行,Thomas和Stephan添加了日志记录和监控解决方案,不仅可以查看容器内部的运行情况,还可以将信息集中在一个仪表板上。
SG3

成果

今天,在它们开始这个项目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虚拟机的崩溃或中止整个群集,这使得大家很难确定哪个应用程序是导致崩溃的根源。这种设置也非常脆弱,而且速度很慢,因为他们只能一次只能将一个应用部署到集群中。
AB1

凭借他们使用Docker EE部署首批应用程序所积累的经验,Sune和Loke设定了迁移传统WebLogic应用程序的宏伟目标。他们开始在工作时间内从现有的集群切换到Docker EE,无需更改代码,并将对用户产生的影响降到最低。

方案

目前,Alm Brand已经将39个WebLogic应用程序迁移到他们的Docker EE环境中,并与近50个新开发的应用程序一起使用。他们能够通过在传统集群和新Docker集群之间对应用程序进行负载平衡,以最小的干扰进行迁移,从而在不影响用户使用的情况下,逐步将流量从一个集群转移到另一个集群。Sune和Loke在演讲中演示了这个过程,值得大家一试!

AB2

迁移的好处是?

对于运营团队而言,这种迁移的积极影响非常大,原因如下:

  • 改良配置管理:对于Alm Brand来说更具挑战性的问题之一就是处理不同应用程序8年的配置堆积问题。通过仔细测试和拆分依赖关系,他们将26个不同的自定义虚拟机精简至12个。
  • 更轻松的维护和故障排除:由于应用程序彼此隔离的特性,Alm Brand出现服务中断的经历要少得多。应用程序问题也就更容易识别和解决了。
  • 新开发和传统的应用程序拥有统一标准的运行模式:在同一个Docker EE平台上运行这两种类型的应用程序,可以在整个组合环境中集中记录日志和度量指标。Alm Brand能够使用同一组进程和仪表板来管理所有的应用程序。

小结:下一步计划

Sune and Loke还有大约10个WebLogic应用程序需要迁移,然后他们将开始着眼于他们的Windows应用程序组合。他们已经在开始利用Docker EE的基本访问控制和LDAP集成功能,现在还在探索其他一些高级功能,如用于分离生产和非生产环境的基于节点的隔离功能。

目录
相关文章
|
Python
matplotlib 按指定的时间间隔生成坐标轴
matplotlib 提供了自定义生成时间轴的库,而当我们需要按照自己定义的时间间隔去生成时间轴时,时间轴并没有正常显示,只是按照一个时间跨度更大的方式显示,本文强制 matplotlib 严格按照要求自定义的时间间隔来坐标轴,并对每一行代码做了详细的说明。
7790 0
matplotlib 按指定的时间间隔生成坐标轴
|
Linux 虚拟化 数据安全/隐私保护
银河麒麟V10 VMWare安装保姆级教程
银河麒麟V10 VMWare安装保姆级教程
23610 5
银河麒麟V10 VMWare安装保姆级教程
|
Web App开发 测试技术 API
网易UI自动化测试探索:Airtest+Poco
网易UI自动化测试探索:Airtest+Poco
1201 0
|
Cloud Native 测试技术 Go
cgo 机制 - 从 c 调用 go
去年刚学 go 语言的时候,写了这篇 cgo 实现机制[1] ,介绍了 cgo 的基本情况。主要介绍的是 `go=>c` 这个调用方式,属于比较浅的层次。随着了解的深入,发现 `c=>go` 的复杂度又高了一级,所以有了这篇文章。
cgo 机制 - 从 c 调用 go
|
机器学习/深度学习 人工智能 自然语言处理
阿里云GPU云服务器最新价格及购买和选择教程
阿里云GPU云服务器是一种适用于深度学习、科学计算、图形可视化、视频处理多种应用场景的具有超强的GPU算力的云服务器产品,目前阿里云官方对GPU云服务器提供了免费试用、首购3折起等众多优惠政策,小编来说说阿里云GPU云服务器最新价格及购买和选择教程。
2355 0
阿里云GPU云服务器最新价格及购买和选择教程
|
算法 安全 Unix
翁恺C语言程序设计网课笔记合集
学习自翁恺C语言程序设计网课。
1046 0
翁恺C语言程序设计网课笔记合集
|
JSON 物联网 Java
|
机器学习/深度学习 自然语言处理 数据库
10K+,深度学习论文、代码最全汇总!一键收藏
10K+,深度学习论文、代码最全汇总!一键收藏
737 0
10K+,深度学习论文、代码最全汇总!一键收藏
|
存储 运维 Kubernetes
阿里云文件存储NAS推出回收站功能,轻松实现数据保护
阿里云文件存储通用型NAS现已经全面支持“回收站”特性。该功能适用于通用性能型和通用容量型规格。当文件系统启用该特性后,“回收站”功能可以保护和恢复误删除、误替换的数据。 文件存储NAS“回收站”和快照、备份不同,具有如下特点: 当NAS开启回收站特性后,该文件系统内文件的每次替换、删除操作,NAS都会将原文件自动保存至回收站中。回收站中的文件支持根据用户设置的策略自动清理,并可以即刻恢复至文件系统原位置。
1823 0
阿里云文件存储NAS推出回收站功能,轻松实现数据保护
|
存储 NoSQL 算法
SpringBoot+Redis 搞定搜索栏热搜、不雅文字过滤功能
首先配置好redis数据源等等基础 代码实现过滤不雅文字功能