参与Zalando最近4年SRE战略发展的第一线工程主管,Zalando前工程经理Andrew Howden从柏林飞来台湾,担任今年台湾开发者大会MWC 2023的主题讲者,对台湾开发者分享了,他一路见证到这个千人开发者平台工程的发展过程。
当企业的应用系统超过3千套,背后的微服务更超过4千只,开发团队规模超过了2千人,如何做到一天能够发布上百次?这正是欧洲科技电商Zalando花了15年才做到的成就。
Zalando成立才约15年, 却已经是欧洲最大的电商,20多国的官网一年总流量超过了50亿人次,今年单季的网路订单达到了5,800万张,年营收更是超过了台币5千亿元,是台湾电商龙头年营收的5倍。
但是,Zalando不只是一家电商,更是一家彻彻底底的科技公司,技术团队规模超过2千人,超过半数是开发人力,分散在全欧5个据点,组成了200个跨部门敏捷开发小组,负责3千套应用系统,还有一套由4千只微服务组成的基础架构。
2008年,Zalando只是一家小型网路商城,用PHP套装电商软体,搭配MySQL资料库打造而成的网站(就跟台湾许多电商十多年前的发展一样)。2010年时,改用Java搭配PostgreSQL资料库,自行开发出了大型单体式电商平台。2014年全面拥抱公云,改用Docker和微服务架构重新打造平台,2016年积极导入K8s,更摇身一变成了欧洲零售圈的技术供应商,有能力对合作伙伴和供应商输出技术。
这两年,Zalando进一步聚焦开发团队生产力的提升,打造出了一个在软体业界大获好评的内部开发者平台Sunrise,来提升开发团队的战力。
5千亿营收欧洲电商巨头Zalando,如何将SRE技术力,变成营运竞争力?如何打造内部开发者平台,让技术团队更有生产力?
参与Zalando最近4年SRE战略发展的第一线工程主管,亲自从柏林飞来台湾,担任今年台湾开发者大会MWC 2023的主题讲者,首次对台湾开发者分享了,他一路见证千人开发者平台工程的发展过程。
这位讲者是Zalando前工程经理Andrew Howden,他曾是SRE团队工程主管之一,今年8月刚决定成为SRE专业顾问而离开,在Zalando技术总监的推荐下,我们特别邀他来台分享。
台湾开发者活动MWC(Modern Web Conference)今年重回实体形式,三天超过60场演讲,规模比过去更大。将海外开发经验带到台湾是MWC发起的初衷,今年更聚焦引介跨国企业经验,邀JP Morgan和Zalando来台分享。
Andrew Howden是Zalando嵌入SRE团队的负责人,负责提高交易体验的可靠性。他也是网路购物周的技术维运准备小组成员,协助同事建立技术风险管理和维运准备度的流程。
当顾客在购物车新增了一项商品(这是商品开始与顾客交易有关的起点),从仓库依照订单出货,交给物流业者(这是平台持有商品的终点),这个过程的顾客感受,Zalando称为交易体验,包括了顾客可以在平台上看到商品进入购物车,到显示出货的过程。这段交易体验流程,涉及了4种业务部门、10个团队、超过100名开发人员。Zalando嵌入SRE团队就是为了解决交易体验流程的特殊难题而设立。
2019年,Zalando小规模尝试SRE经过2年,决定将SRE发展成全公司营运战略,成立大型SRE专责部门。
Andrew Howden就是在这一年进入Zalando担任SRE工程师,2021年他就成为主要工程师之一,参与设计维运准备度工作流程计划,要发展一套自助式评量来提高千套系统的可靠性,这涉及不同系统背后技术架构、业务领域、事件处理的知识。
早创时期:靠套装PHP软体快速建立商城,2人通管全站
想了解Zalando的技术演变,得将时间拉回到2008年,Google刚发表Android系统,而苹果iPhone爆红,新推出了App Store。Zalando两名创办人Robert Gentz和David Schneider就在那一年秋天,创立了这家快时尚电商,想在网路卖鞋子。没想到,公司成立不到几天,就遇到了金融危机。
Zalando手上资金不多,得想办法樽节支出,两名创办人在柏林租了一间分租公寓,作为办公室兼仓库。因为刚起步,顾客不多,他们尽情尝试不同的业务实验,后来发现,免运和100天退货权是顾客最喜欢的两大亮点,这也成了Zalando早期扩展电商市场的优势。Zalando这两项运送保证,后来更成了顾客对其他电商平台的期望标准。
当时,为了快速打造出电商交易的平台,也因为容易找到熟悉PHP的开发工程师,所以,第一代Zalando电商平台就用了PHP开发的电商软体Magento,这套软体就像是古早时期的WordPress,可以自行组合第三方的功能模组。
Zalando在早创阶段的策略是「快速行动,凡事可变」(Move fast, Break things),Zalando没有维运团队,更不用说设立平台团队,只靠1、2名员工,来管理整个网站。
过了两年,2010年,这时出现了第一款iPad,Netflix也推出了12,000部影片,手机开始出现了社交媒体,Zalando业绩进入了快速成长期,跨出德国,开始进入其他国家,先后拓展到荷兰、法国等国。当时Zalando全职员工达到20人,也出现了许多高忠诚度的顾客。
2010年用Java自己重新开发整套电商平台
可是,创立时所选择的PHP电商套装软体,开始发生问题,无法进一步扩大规模,开发团队就算尽力修改了底层程式码和架构,还是没有办法解决问题。最后,只好整个架构砍掉重练,Zalando重新开发了整套电商平台,从PHP搭配MySQL资料库的组合,换成了以Java语言搭配PostgreSQL资料库的大型单体式应用。
Zalando从旧版电商软体,转换新版平台,在当时「只有」停机了90分钟,「这个当年可接受的时间,若发生在现在,会是一场闹上媒体的大灾难。」Andrew Howden打趣的说。人们对技术的期待和标准,会随著时空背景而改变,这就是其中一个典型例子。
不过,当时的团队规模不大,但也开始遇到敏捷的难题,如何更安全的执行发布?为了维持一定程度的可控,他们订定了一份部署检查清单,每次发布都要照单确认,虽然拖慢了更新程式码的发布速度,但可以让发布过程更可靠,来维持顾客的信任。
2014年,Zalando的规模持续扩大,也在这一年全面改为响应式(RWD)网站的设计。这一年是容器技术Docker诞生的一年。
年营收4年成长4倍,3大关键策略背后的技术挑战
从2010年到2014年,Zalando的营收成长了四倍,达到22亿欧元(约台币750亿元)。
Andrew Howden指出,Zalando业绩能够积极成长的关键,来自3大策略。第一是「规模化」策略,采取任何必要手段来扩充软体系统,甚至不惜彻底砍掉旧版,重新打造新版。第二项策略是「在地化」,Zalando服务范围扩大到多国市场,从瑞典、丹麦、芬兰、挪威、比利时、西班牙、波兰到奥地利。针对各国的语言、流通货币、法遵要求和维运需求上的差异,进行在地化调整。
另外一个关键策略是「差异化」,Zalando也开始转变成百货商场模式,引进伙伴制度,让第三方供应商在Zalando平台上销售各自的产品。
「这3项决策对技术带来最大的考验是,原本只为内部使用开发的软体,现在得提供给第三方,还要具备规模化能力,并且符合各国在地化的需求。」Andrew Howden强调。
接下来的3年,Zalando靠著几项技术对策,快速落地到各国,一方面导入企业级ERP,另一方面开始发展各国在地化的官网,也打造一个有能力处理大规模订单和交易的集中式平台。
但是,这三大策略让Zalando所开发的系统越来越多、也越复杂。例如在2010年时,只有7个部署单位,到了2012年,部署团队超过100个,发布管理和协调成了一大考验。
为了简化复杂度,Zalando要求,每一只软体都限定只能用Java、Tomcat、PostgreSQL这三个主要技术来开发。
第一个平台团队的诞生
不只如此,Zalando也开始打造第一个「平台」团队,来管理系统工程、资料库工程、平台软体工程,也提供各种安全咨询。
例如,他们建立了一款deployctl工具来管理发布流程,也采用了开源网管监控工具zmon(类似Nagios),可以定期追踪所有软体和系统是否正常运作。
有了这些组织、工具和技术限定的配套作法,让Zalando在当时可以做到每周发布。每一次发布都由一个品质确保(Quality Assurance)团队进行测试,来确保正确性,另外还有一个小团队提供随时待命(on-call)的支援。
不过,随著开发团队的人数越来越多,每一次发布需要协调的工作也越来越多。因为系统越来越庞大而且相关维运资讯散落四处,工程师们越来越难有效掌握所从事工作的相关讯息。
为了控管工程师们的发布,这个平台团队祭出越来越严格的措施,没想到却反过来减缓了发布的速度。Andrew Howden表示:「尽管平台团队立意良善,却意外地限制了企业创新和成为市场领先者的能力,平台团队开始向可靠性靠拢。」
时间聚焦到2014年,Kubernetes诞生后,快速成为主流,隔年推出了1.0正式版,也催生了CNCF组织的成立,这个组织接手了许多云原生相关技术专案,如gRPC、etcd、RunC、Envoy、Jaeger等技术。而2014年也是Zalando首次公开发行(IPO)的一年。
因应IPO后新愿景,为全欧多国营运上云拥抱云原生
IPO带给Zalando更多资金,赋予更大的能力,但也意味著更大的发展压力,Andrew Howden表示 ,Zalando必须更快成长,更快扩张,就必须创新。
Zalando的新愿景是打造一个可以用时尚串连起庞大人群的「时尚大平台」,能让第三方伙伴和店家在这个平台上,销售各种时尚产品。
可是,Zalando过去几年的技术决策,逐渐发展成了一个相对可靠,可是难以变动的技术架构,这种「稳固」架构无法跟上IPO后的新愿景。
为了支援未来全欧多国营运的布局,在2014年底时,Zalando决定全力拥抱公有云,也导入了Docker容器技术,开始改用微服务架构,来取代老旧的单体式架构。
上市后隔年,也就是2015年,Zalando更开始发展电商平台化战略,要将自己变成电商生态圈的技术平台商,开始对合作伙伴和生态圈伙伴输出自己的技术服务。
未完,继续阅读