【稿件】互联网企业的并购不仅是组织结构的融合,更是产品架构和产品团队的融合。特别是涉及不同的企业文化、技术能力甚至是不同的国家法律法规上的融合,存在更多看不到的隐形成本。
屯昌ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
近日,由主办的第十六期以“Tech Neo”为主题的技术沙龙在北京举行,此次活动邀请了来自Thought Works 高级咨询师顾宇老师。他分享了一个东南亚互联网企业并购中的DevOps 促进并购的实施案例,即通过在 AWS上使用 Ansible和CloudFormation作为基础设施即代码的工具实现产品架构的迁移。
本文介绍如何通过 DevOps的基础设施即代码实践,把架构以及开发/运维实践和规则固化为配置和代码。让所有的团队和成员能够依照同样的规则进行开发和运维;通过自动化的手段加速团队、产品和架构的融合过程,提升整个组织的技术水平。减少组织间的沟通摩擦。
案例梗概:某企业收购了分布在泰国、马来西亚、印度尼西亚、新家坡等地的几家东南亚拥有相同业务的互联网公司。但如何在多国家、多语言文化的情况下,进行分布式IT敏捷产品团队的合并、步调一致的工作和实现统一的管理成为难题。
剖析组织现状
既要保留各个国家的业务团队,又要集中管理IT团队,首当其冲的是剖析组织现状。那么,做架构迁移要先了解哪些组织现状呢? ″
康威定律原话:Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations。
这句话中“constrained”的意思是强制。也就是说,当系统架构与组织架构不匹配时,系统结构会被强制转化成与组织架构一致。要做到组织架构和基础设施架构保持一致,就需要根据未来的组织结构设计系统架构,减少系统架构演进中的适应性浪费。
如下图,是合并前架构的情况:
如图中所示,每个国家的公司运营着自己的网站。其中每一公司都有一部分是用WordPress运营的。虽然都是 WordPress,但应用架构和使用方式上存在着诸多的差异。我们首先是要识别出这种差异。而这种差异不仅仅是技术上的,还有组织上的。 并购并不仅仅是把团队合并到一起就能解决问题,而是要把多国、多语言、多站点,变成多国、多语言、单站点。通过一个站点来支撑多个地区的业务,这里选择马来西亚作为这个站点进行举例。
那么,组织架构就会办成如下图所示:
当组织架构变成多国、多语言、单站点,那么所对应的就是一个IT团队。如图可以看到把Dev、Ops分开来表示,这样的组织结构和DevOps有什么关系呢?这就需要了解下DevOps的两种组织形式:
为新组织设立目标 做团队合并之前,要为新组织设立目标,如下:
用DevOps加速团队之间合并的进程
虽然IT团队来自不同的国家,分布在不同的地理位置,他们的文化背景不同,说着不同的英语方言,但是大家的技术栈是相同的。
一方面,我们通过 Zoom 构建起了每天的在线视频会议,及时同步各个团队之间的状况。另一方面,我们遵守着同样的开发规则。 其中,测试驱动开发(TDD)在这样的分布式团队中十分重要。虽然对编程语言和技术框架的理解不同,但是自动化测试为开发人员构建出了统一的理解。这样就使得每个团队,每个成员去设计、实现自动化测试。
一方面,用测试作为对需求的理解,减少和降低了不一致性,此外,通过测试驱动开发可以保证代码品质,进而提升程序员的编码水平。此外,自动化测试在这里就相当于一种代码质量的标准, 组织被合并之后,架构也要随之改变,这时就要着手做架构迁移。可以用基础设施即代码把自动化作为一种制度去提升整体运行效果。
系统架构的迁移实践系统架构迁移要在了解当前组织架构现状的前提下,制定架构的目标、设计迁移策略。这三方面落实后,才能为新组织设计新架构。
架构要尽量设计要设定***要求,这里不要将就现有人员的能力/精力,但是要规划成本,成本规划里不光要考虑迁移成本,还要考虑迁移后的维护成本。这样,有了***的要求和标准,可以引导大家为共同的结论和方向一起努力,既可以提升个人及团队的技术能力,也是提升DevOps合作的过程,因为好的架构一定是和多方利益相关者在不断沟通下形成的。通过不断的开发团队沟通,解决开发痛点,来主动提升 Ops 团队的合作意识。所以,DevOps不仅是自动化,更是在磨合和共识团队合作的价值观和工作方式。
当前的组织与系统架构存在的问题
当组织和产品进行合并之后,不同的地区多系统的运维就变成了单一系统的运维。因此,很多运维人员不再被需要,在现在的案例中,仅剩四名运维工程师,剩下的运维工程师相继离职,运维工作由技术负责人兼任。 这里遇到的问题是,如此少量的运维人员,如何要去维护大量技术栈/语言/业务各异的站点。因为产品简单了,但架构复杂了,运维的环节和结点更多了。
此外,为了避免账户单点,平均每个系统至少要有三个AWS账户:开发环境、测试环境及生产环境。这样一来,三个人维护二十多个账户是一种浪费,还需要做账户合并。 这三个运维人员人还需要应对风格各异的其它遗留系统,因为每一个国家的系统都分别由不同的架构师主导,对于仅三人的运维团队来说也是非常大的挑战。 尽管收购的企业核心业务相似,但每个国家的现状、市场条件、用户群都不一样,所以仍然需要一部分本地定制化业务。 总之,在系统架构方面存在的主要问题如下:
综合当前新组织的现状与旧架构的问题,制定架构迁移目标如下:
实现能力和组织结构的迁移,基础设施即代码首先作为一个制度可保证以上几点。基础设施即代码一旦作为制度,在执行的过程中,要做到的***一点就是能力的提升,即把基础设施变成一种产品。 如何把基础设施变成一种产品?首先是把基础设施架构经验在不同团队中复用,让不同国家、程序员、运维人员获得更安全,更稳定,更灵活的架构。其次是实现高度自动化,可以快速建设和定制。再次是要做到关注点分离,根据场景把变更缩小在一定的范围里。***,要把开发和各环境做到抽象一致性,便于不同团队能够在不同环境中做到无缝切换。
架构迁移有两大原则:一是最少的变更,实现做到只做一个简单的变更,就完成迁移;二是最小的影响,就是减少架构变更造成的不良影响。 架构迁移的整个策略如下:
此架构策略除需要手动切换域名之外,其余全部实现自动化,主要涉及技术如下:
对组织进行重建,确定新组织对应架构的目标和策略之后,紧接着就是根据使用场景,设计基础设施即代码的架构,实现整个架构自动的搭建和还原。然后,根据使用场景设计安全策略,避免人为操作,减少人为故障。 顾宇老师认为,基础设施即代码和基础设施是类和对象的关系。通过定制化的模板结合不同的场景产生不同的基础设施实例。一方面统一了架构语言,另一方面减少了不经审计的认为操作。此外, 可以采用面向对象原则进行逻辑分层,隔离不同场景的关注点。例如:持续交付关注Docker 镜像的部署和变更,应用维护关注日志的查询和操作。
在该案例中,利用基础设施即代码技术有几个关键要点,总结如下:
由于篇幅原因,还有众多相关细节如、没有一一纳入文章中,想要了解更过内容的开发者,可查看 视频与PPT 【讲师简介】
顾宇,Thought Works 高级咨询师。专注于 DevOps、持续交付,微服务以及全功能产品团队的设计、实践、落地以及经验推广。并持续在多个专业平台和媒体发表相关文章,受多个行业大会邀请发表相关演讲。
在加入 ThoughtWorks 之前,曾经参与中国移动 10086 呼叫中心以及中国联通省级 BOSS 系统的研发、实施和割接。任项目经理,维护经理,开发工程师等职务,拥有丰富的大型 IT 系统小型机生产环境实战经验。
【原创稿件,合作站点转载请注明原文作者和出处为.com】
网站题目:跨国互联网公司并购中用基础设施即代码进行架构迁移
链接分享:http://www.csdahua.cn/qtweb/news4/303754.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网