去哪儿网架构演进之路:微服务的尽头原来是DDD…… - 掘金
一、架构设计理念与技术
1.架构演变路径
- 单体(又称巨石系统): 所有业务融合于一体。在项目早期,公司一般会选择单体以降低运营等各方面成本。
- 服务化: 随着业务飞速发展和流量增长,进入了服务化阶段。在此阶段,经历服务拆分、治理和模型抽象。
- 平台化: 业务膨胀期过后,服务化维护成本高,服务粒度拆分过细、重复造轮子、系统交互混乱等问题暴露,因此迈向平台化(服务能力沉淀、服务合并、领域自治等)。
- 中台化: 打造企业级能力复用平台,是平台化的下一站,其具备数据互通能力和业务变化高响应力。
业务架构的演变路径,侧面展现所在互联网企业的演变路径。每一种架构无关好坏,选择与否,只取决于是否适合当下及可预见的未来。
本次分享主要介绍从服务化到平台化的过程,即从服务细粒度到领域能力沉淀的演进过程。
2.架构设计理念
从业务出发、面向业务变化是架构设计成功的关键,指导业务架构设计的维度包括:
1)商业模式及成熟度
传统行业的业务相对稳定和成熟,非必要情况下建议做成单一服务。如需拆分,建议将变化频繁与不频繁的业务拆分。
互联网行业则分为初创公司与成熟稳定的公司:
- 初创、商业不稳定的公司: 需要多种业务进行快速试错,可使用微服务。以微小的单体制服务器,快速构造探索场景,以技术的确定性来应对未来发展的不确定性。去哪儿网的某些团队产生简单方案后,可使用微服务获取市场反响,快速验证效果。
- 商业稳定或固化的公司: 不再需要技术端的灵活性,也不愿承担灵活性带来的架构维护成本,此时可以考虑合并微服务,以减少运营成本。
目前旅游行业已相对稳定,去哪儿网比较符合以上第二种情况,可以考虑将先前拆分粒度太细的微服务进行合并。这也是去哪儿网的架构演进原因之一,原有业务拆分太细,达到人均10个应用,维护成本极高。
2)面向业务的变化