在澳大利亚悉尼举行的 OpenStack 峰会上,澳大利亚联邦银行的 Quinton Anderson 简要介绍了公司基本的 OpenStack 部署情况,以及如何帮助管理数据和弄清楚客户真正想要什么。
澳大利亚联邦银行是一家大银行,按市值计算排在全球前列。Anderson 的团队在四五年前开始研究数据管理和机器学习的成熟方法。他们发现,成熟的系统需要经历三个发展阶段。他说:“从试验的基本过程开始,这是第一个阶段。需要在正确的地方得到数据,然后开始做一些试验。”
Anderson说,试验过程很有趣,它帮助团队学习了很多关于数据管理的知识,再把这些知识从实验室带到生产环境,这是走向成熟的下一个阶段。这一阶段考虑的是如何实现用一种可靠的、可操作的,以及生产的方式来定制与客户的交互方式和系统执行方式。” 比如,Anderson 的团队花了大量的时间去思考如何处理数据标签以及构建数据分析模型。
第三个阶段,就是决定如何影响客户体验及业务运作方式。“我们称之为第三级成熟决策。”Anderson说。
以上是澳大利亚联邦银行决策系统的逻辑表述。它有两个主要用例,一个用于闭环的自动化决策,一个是为人们采集信息。自动化系统将分析流程和数据管理流程集成到产品系统中,从而影响前端显示的内容、什么时候显示,以及公司如何与客户互动。第二个用例是让内部员工知道企业和客户的业务和实时动态,以帮助员工做出明智决策。
该团队从一些相当大的 Hadoop 集群入手,采用一些相当传统的数据仓库技术。Hadoop 集群最初基于澳大利亚联邦银行数据中心的物理服务器。
Anderson 说:“这在一开始就是有效的,但正如你所想象的那样,它带有一系列固有的约束条件。”
Anderson 表示,显然,升级和改变初始设置对公司或开发人员来说都会消耗时间或其他成本。“我们开始尝试云计算,这让试验过程变得更快,更便宜,而且更具确定性。”
澳大利亚联邦银行决定采用的技术堆栈是相当典型的。Anderson 说:“ 我们在底部已经有了 OpenStack,并为此运行 Ironic 。我们使用 Ironic 的原因,是因为需要大数据处理能力,且主要服务要靠近磁盘。而且,随着微服务的采用,我们发现虚拟机的抽象在很多方面都让人感到不舒服。”
该团队运行 Ubuntu,使用用于容器的 Docker 和用于容器网络的 Calico 。他们还运行用于秘密管理的 Vault,以及用于资源编排的 Mesos 和 Marathon 以及平台即服务 API。Anderson说:“在这之上,我们运行大数据应用程序,最后是终端应用程序。这是一个相当典型的堆栈,它是云端的一个容器集群。”
Anderson认为,他们实施的独特之处在于能够专注于堆栈中所有层次的持续交付。他们还专注于版本管理,以及各个层面的不变性。他说:“ 对于我们来说,操作系统的升级,或者改变底层主机上操作系统内的文件夹权限,都不是通过 SSH 连接一个盒子的问题,而是更新环境的声明表单——发出请求并允许工具代表你做出改变。”
对操作系统、容器和容器集群、监控、编排器、警报和系统中的所有内容来说都是如此。“我们使用相同的基本互动模式。”安德森说。
工作流为每个特定模块(可以是控制层中的容器、应用程序或环境中执行的任何内容)分离出一个模块存储库(拥有源代码、测试、管道、池等)。我们将这些模块的存储库从环境存储库中分离出来。”Anderson说,“环境存储库包含环境的声明表单。我们试图确保这些东西是被有效版本管理的。”
Master 上有一个部署环境的声明表单,它表示指定环境中在运行什么。 Anderson可以从这个点分叉存储库,进行升级、主机引入、部署新集群或应用程序等更改,然后针对部署分支发出池请求。他说:“池工具将生成一个变更计划,并将其附加到池中。你可以把这个工作流看作与 HashiCorp 的 Terraform 非常相似,在那里它会产生一个变更计划,但是我们已经把这个工作深度集成到了 GitHub 中,因此也在版本控制里。”
几个“机器人”对任何要求的变更进行审查,以确保有足够的环境容量、没有太冒险的变更,以及这些变更正在部署到正确的环境。Anderson说,它们还可以检查是否存在不应该进入的初级开发者。也有手动的池检查,即一个真正的人会看提议的变更。他说:“当池请求合并时,工具就会关闭,并将变更应用到环境中。你可以将部署分支上的内容视为有效状态,即所期望的状态,主内容是实际状态或者是以前的状态。工具将会关闭,并通过API调用Nova或 Marathon、HashiCorp Vault 等来将这些更改应用到环境中。一旦更改完成,它将把新的声明表单重新合并到Master上。“
如果在部署中出现任何故障,回到这一点相当容易。Anderson说:“ 你已经有了期望的状态和实际的状态。你有一个临时的期望状态收敛( 在你的日志里)。当然,随着你做越来越小的变更,这个问题就越来越少了。“
团队所做的就是以 OpenStack 为基础组合大量的开源项目,以产生澳大利亚联邦银行的业务成果。Anderson 说:“我们强烈地相信,通过编纂的版本管理给了我们一个绝对的最佳案例,我们必须随着时间的推移以可持续的方式改变所有这些不同层次,从而改变服务和系统。它使我们能够重新创建环境。它允许以可扩展的方式构建自动化。它使我们能够重新创建环境,并进行自动化测试,这是可以进行安全变更的基础。“
Anderson 的方法始于以 OpenStack 为基础,以便即使只是对其基础架构进行不可变的编码访问。他说:“ OpenStack Ironic 是开始的第一个地方,一切从那里建立起来的。”
然而,随着时间的推移,Anderson 的团队将采用与其公有云环境相同的方法来匹配整体混合云策略。他说:“在分析领域,R是数据科学家使用的主要工具。我们正在使用 Hadoop,越来越多地使用 Spark。从有状态的工作负载角度来看,我们仍然有相当数量的 HD 事务,而且越来越多的 Cassandra。我们从小处着手,但增加了 TensorFlow 的数量。”
该团队现在主要在有状态领域使用 Mesos,而且越来越多地在无状态领域使用 Kubernetes 。Calico 通过跨不同云提供商的各种现有网络环境,以简单、集成的方式提供容器网络。团队使用 Docker 容器和Ubuntu 主机。Anderson 说:“这不仅为我们的有状态和分析工作负载提供了一个很好的环境,也越来越为我们提供了一个很好的环境来承载不同类型的工作负载和纯粹的微服务。它从数据科学仪表板、Python用户界面、Python仪表板等开始,越来越多地进入我们更多的面向 Web 的工作负载和微服务。”
Anderson 称 OpenStack 是建立澳大利亚联邦银行内部系统的重要基础。他说:“从构建OpenStack 和一些基本的容器环境开始,这是一个非常有趣的过程。这是一个通过使用强大的方法来首先获取基础设施,再完成组合其余开源技术的过程。”
活动推荐:
1月6日,CNCF Meetup——K8S GeekGathering 2018北京站重磅回归。由K8S技术社区、EasyStack联合主办,CNCF、Oracle、滴滴、瓜子二手车联袂为大家打造的Kubernetes,2018容器热点私享会席位火爆预定中!
活动时间:2018年1月6日 13:30 ~17:30
活动地点: 北京海淀区中关村创业大街10号楼DotGeek coffee三层
长按下图报名
投稿邮箱:openstackcn@sina.cn
转载自原文链接, 如需删除请联系管理员。
原文链接:【开源云案例】澳大利亚联邦银行的OpenStack实践,转载请注明来源!