乐高集团打造了一个开发者入口网站,称为Baseplate ,这是2千人数位团队成员,每天上班要打开的网页。
大家都玩过乐高积木,打造出这款全球知名玩具的是乐高集团,他们从2021年就开始大力展开数位转型,为了实现高度敏捷化的商业能力,订出了云端优先和API优先的转型战略。
成立于1932年的乐高集团,目前全球多达2万四千名员工。过去2年,他们的数位团队的规模,增加3倍,现在超过了2千人,占了员工总数的1成,分散在全球四个数位据点,为了推动上云战略,他们发展出了一套数位维运模式,从产品面、架构面和工程面,来推动上云战略。
为什么乐高集团的转型战略是拥抱云端优先,API优先,甚至从2023年开始拥抱AI,开始尝试用生成式AI打造聊天机器人应用。乐高集团开发者体验和云端部门负责人Rasmus Hald之前在哥本哈根一场研讨会中,揭露了他们非做不可的原因。
Rasmus Hald指出,一切都是为了商业敏捷力(Business Agility),乐高集团想要靠数位手段,来实现商业敏捷力。目标是希望能让IT的关键基础设施可以做到,让企业应用或IT,无缝地存取到所有资料、运算资源和网路资源。
乐高集团所采取的数位手段,包括了松耦合的基础架构,也要全靠API来运作。「在生成式AI崛起的时代,更要考虑GAI技术对API使用的影响。」Rasmus Hald补充。
乐高追求的商业敏捷力三大特质:实验力、品质与速度、新奇感
这家积木游戏巨头想要的商业敏捷力,包括了三大特质,实验能力、兼顾品质和速度、新奇。Rasmus Hald解释,想要有能力快速得到回馈来快速实验各种创新,也要有能力兼顾速度和品质,能以一定速度持续提供品质一致的应用成果,最后一项特质是有能创造新奇感,有能力持续创新、不断提供崭新的体验,「不能用10年前的老方法来做事,现在每一年都要推出新的产品,和全新的产品体验。」尤其,越来越多小孩拥有手机,他指出:「如何结合实体的乐高玩具和数位世界,正是他们的新挑战 。」
例如,乐高推出了一款建设者App,在乐高产品纸盒外有一个QRCode,用这个App扫描条码后,可以在手机上看到实体乐高积木组合成品的3D模型,也可以跟其他人一起组合同一组乐高模型的玩具,透过App分享彼此的拼法。「这个App就是乐高集团用来实验不同乐高玩法的平台, 现在已经成了乐高体验核心的一环。」例如,后来发展出故事式的玩法,结合一个故事,来组合纸盒中的乐高玩具 ,例如捕捉不同的动物的故事,或是开不同的车子。这是乐高数位团队其中一项创新成果,将实体体验结合数位的体验。
「 我们的目标是,只有最好才是够好。」Rasmus Hald骄傲的说,这是他对数位团队的期许。但是,想要推动数位转型,不能被传统IT思维绑住,「不能抱怨钱不够、资安太难,就做不到。」
许多企业的数位转型,是以IT部门为基础,来发展电商引擎、数位行销等不同应用,以其对应的AP团队,不同应用团队的底层都是 IT部门。乐高集团原本也是如此,有一个分工明确各司其职的IT部门,旗下有专门的维运,专门的开发团队。但是,Rasmus Hald指出:「这样的组织架构,最后会沦为一昧追求成本降低、风险控管。」
不惜将传统IT部门全面改组,成为一个个小型产品团队
为了推动转型,乐高集团干脆重组了整个IT部门,整体IT人力没有减少,还是同样的一群人,但是不再有一个庞大的IT部门,而是改为一个个的小型产品团队,并且发展一套自己的数位维运模式。乐高的改造主要分三个面向来改组传统IT,包括了产品面、架构面和人力面。
在产品面,改为一个个不同产品的产品团队,每个产品团队得负责这个产品的开发、维运、资安等DevSecOops流程的工作,而在架构面,采取了松耦合的技术架构,更容易弹性组合,重复利用来减少不同团队之间的重工。而在人力面,每个产品团队都要有自己的工程师,自己的开发战力。
乐高采取不一样的IT组织运作模式,让IT绑定商业成果和责任
不只是重组IT部门,乐高集团更采取了一个特别的IT组织运作模式。Rasmus Hald指出,传统IT是集中式的IT,各个业务部门提出需求,给一个IT部门,由这个部门负责规画、开发和维运。在这种集中式IT的模式下,每个AP的责任属于各事业部门而非IT,IT也不一定需要业务领域的专业,对于业绩不见得能感同身受,IT只需要对规模效益负责。
另一种IT组织运作模式是彻底分散式的IT,各个业务部门有自己的AP团队,负责规画和开发,再统一由一个基础架构团队来负责维运。这个模式虽然让业务与开发更紧密结合,IT能累积足够专业,并担起主要的AP责任,但是规模效益变成了维运团队的事,而非产品团队的工作,而且因为最后一哩由维运团队负责,AP团队仍有借口推诿说,不一定要对成果负责。乐高集团没有采取了上述两种,而是自己发展出了另一种运作模式,Rasmus Hald称为绑定商业能力的IT运作模式(Business Capability-Aligned iT)。
在这个模式下,单一IT部分虽然重组成了许多的产品团队,但是没有直接隶属于特定的业务团队,而更像是负责接手业务需求的产品开发团队,一个业务部门,可以将不同的业务AP,交给不同的产品团队来负责。而每一个产品团队,采取同样的工作流程,因此,在完成一项业务产品的开发后,也可以接手另
一个业务团队的AP开发需求。每一个产品团队都要负责自己所开发AP的维运工作,而不是交给一个独立团队,但是每个产品团队共用同样的一套基础架构。「这样的模式,可以让产品团队直接与商业成果绑在一起,也能和业务部门共享责任。」Rasmus Hald解释。
用OKR管理220个产品团队,还要订定愿景和产品蓝图
目前乐高集团有220多个产品团队,每当有一项数位服务或数位功能的需求,就会视为是一项产品来开发,有些是用于顾客的产品,也有不少是内部数位团队自己所用的产品,例如API管理平台、API探索工具,都是内部自己用的数位产品。
每一个产品都会指派一位产品经理和负责的产品团队。一个产品团队大约10人规模,除了产品经理,开发工程师,还会有一位工程经理,以及负责技术管理的首席工程师。「设立首席工程师的职位,是IT职涯发展中很重要的一件事。」Rasmus Hald表示。
对于这些产品团队,乐高采取OKR(目标关键成果)管理模式。每个团队不只订出每一季的目标和关键产出成果,还要建立自己产品的长期愿景以及一套产品发展蓝图。
产品团队有自己的预算,对自己的成本负责
乐高没有采用大规模敏捷框架或是设立一个PMO专案办公室来统筹管理,主要透过敏捷流程每一次的冲刺来迭代开发任务,不同产品团队都采取同样的敏捷开发模式。另外,乐高则对产品团队采取TCO(Total Cost of Ownership,整体拥有成本)策略,让每个团队都有自己的IT预算,并由产品团队自己对自己的成本负责。每个产品团队都有自己的使用者团体,包括使用产品的小孩和付钱买单的父母,不只顾客,使用者团队还会找来经销商和其他同事提供意见,这是他们快速尝试不同创新实验的关键之一。
为了支援这样的多产品团队开发模式,在技术面,乐高集团的原则是尽可能提高API、云的使用来减少技术债,也要强化资料基础建设,并将各种IT和开发工具系统化,并采取了松耦合的容器化技术架构。
乐高AP优先上云,但也打造自家K8s边缘云来支援工厂地端需求
在云端优先战略上,乐高集团希望能尽可能减少技术蓝图中的长尾技术,例如减少或少用老旧技术,大型主机等。目前乐高集团还有一座传统的实体资料中心,目前只用了20%的空间,他们决定不再租用代管的主机,改为购买公云业者的服务,来简化实体设备维护的复杂度。
不只是一昧上云,乐高的优先上云策略还会聚焦「云+端」的能力,没有采取全上云的考量,Rasmus Hald坦言,因为全世界的乐高积木都是由乐高集团旗下工厂生产和包装,可是,有些积木工厂的地点,位于资讯基础设施不够完善的国家或地区,当地的网路连线能力可能不佳,无法透过公有云来支援这些工厂的内部运作,得靠地端的机房来维运。因此,乐高集团自己用K8s打造了一朵边缘云环境,可以不少到这些工厂的地端机房中,来支援这一类工厂的地端执行需求,他们所用的各种应用,也大多透过API呼叫,因此,可以很容易从云端切换到地端边缘云上的系统来接手提供落地工厂的AP需求。
因为要维持这些实体主机和资料中心的成本越来越贵,所以,乐高集团的策略是,在成本太昂贵之前,尽早将工作负载搬到云上。「 除了实体工厂需要的本地端边缘运算需求之外,其他应用都会上云。」Rasmus Hald指出。
将AP上云时,乐高集团还会特别留意一件事,避免像在云端管实体机房的作法,而是改采用多租户架构的云端管理方式,让不同的AP拥有各自的公云帐号,而且,每一个上云的AP,也由这些AP各自的开发团队来自己负责维运。另外,乐高集团对于AP的管理,也采取高度自动化的集中式治理,并指派一个产品团队负责打造云端治理的相关工具。
彻底实践「自己打造的AP,自己执行」原则,甚至不惜重构资料库架构
「想要实现自己打造自己执行(You build it ,you run it.)这一点其实不容易,容易,但这么做,才能真正松绑产品团队的能力,要让产品团队有速度,就要这样做。」他强调。为了彻底实践这一点,甚至乐高有产品团队无法管理自己的资料库,乐高也不惜改变这个产品的资料架构,就是要能让产品团队自己管。如此一来,才可以真正打破团队和产品之间的相依性。甚至,乐高每一个产品团队都有自己的VM,自己连线到网际网路,将不同的产品完全切开,尽可能让不同产品之间没有关联。
在选择公云业者上,乐高会避免押宝单一业者,采取跨云战略,目前乐高集团采用了AWS和微软的Azure,「公云业者具有超大规模的创新能力和健康技术生态圈,和不同的公云结盟,可以降低对单一供应商的风险。」乐高集团这位云端部门的负责人Rasmus Hald解释他们的考量。
乐高集团实践API优先战略的四大准则
对乐高这种由产品团队负责开发和维运的模式,除了上云优先战略之外,技术架构面的关键是API优先战略。Rasmus Hald表示,乐高对于API的运用也有一套自己的准则,第一个原则是,每一只API都必须达到全球可用的能力,可以在全世界各地呼叫来使用,来支援乐高集团在全球的业务发展。其次,API设计也必须是考虑对外公开使用的设计,可以接受来自外部、第三方应用的呼叫,而不是只设计给内部使用。另外,每一个API都必须可以探索,也就是可以让开发者找得到。
最后一项准则是,乐高会要求每一只API都要订定明确的规格和使用条款,例如每一只API都会订出SLA服务水准,而且全都白纸黑字写成文件,还会订定API版本控管方式,每当版本升级、淘汰时都会发送相关通知给利害相关人。所有API都会遵循一套API资料架构(Schema)来设计,上架前都会进行架构分析来确保API的品质,乐高也有自己的API即时品管机制(API Linting),确保API的呼叫和使用都符合所订定的规格。Rasmus Hald提醒,API的SLA中特别要留意,必须定义API的弃用情况,才能让API日后有需要时可以淘汰。
打造开发者入口网站,成为2千工程师每天必看网站
为了让2百多个产品团队的开发人员,都可以很方便取用到这些API,乐高集团打造了一个开发者入口网站,称为Baseplate ,这是2千人数位团队成员,每天上班要打开的网页。
Baseplate首页采取了卡片式的设计,开发者可以将自己常用的功能卡片或仪表板卡片放到首页上,方便快速浏览,开发人员甚至可以自订自己的卡片。这个开发者入口网站上提供了所有产品团队的各种产品清单、所以可以用的API、相关的技术文件或参考资料,辅助开发或维运的各种系统工具。最近有哪些新的API或新功能异动,都会在开发者入口上发布最新通告。
产品团队所开发的每一项产品,可能是业务团队需要的功能,或是数位团队自己的工具或服务,会上架到开发者入口网站上。像是乐高用商用API管理平台Kong打造了一款API管理服务,这就是其中一项他们的产品,
每个产品都有自己的产品介绍主页,列出这个产品的负责团队,有哪些相关的文件,这个产品被哪些AP使用,甚至是这个产品用了哪些公云服务以及公云帐号,也会提供VM快照,方便部署到本地端环境中。
特别重视API探索的设计,来提高开发者体验
乐高在这个开发者入口网站上,对于API探索的设计,也花了不少著墨。截至2023年底,共有239只API,提供全文检索相关文件和规格,开发者也可以快速列出自己负责的API,也能用星号来标记出常用API,打开API主页,有相关的规格介绍和文件连结,开发者点一个按钮,就可以直接申请这个API的存取授权,相当简单。
为了降低开发者的认知负担,乐高开发者入口网站特别重视API探索的方便性设计
去年开始用OpenAI打造开发者AI助手
去年底,Rasmus Hald还用Open AI的服务,打造了一个开发者AI助手名为乐高ChatAI,可以摘要乐高开发者入口网站上的所有文件,来回答开发者的开发问题或提供建议等,也可以询问AI助手,如何使用特定某一支API,而不用自己花时间阅读完整的说明文件。
乐高集团从2021年开始,为了建立想要的商业敏捷力,花了2年大力推动数位团队的转型,拥抱云端优先、API优先战略,这个开发者入口网站正是强化数位团队战力的成果。虽然,Rasmus Hald没有明说,但乐高集团数位团队大改造的过程,也正是一种平台工程的实践。