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

本文主要是介绍【案例学习】传统应用程序上云的经典案例,欧洲两家领军企业的落地实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

基本背景

法国兴业银行(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集成功能,现在还在探索其他一些高级功能,如用于分离生产和非生产环境的基于节点的隔离功能。

这篇关于【案例学习】传统应用程序上云的经典案例,欧洲两家领军企业的落地实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/191411

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用