Quantcast
Channel: InfoQ - 促进软件开发领域知识与创新的传播
Viewing all articles
Browse latest Browse all 1056

欧洲最大电商Zalando的微服务之道

$
0
0

写在前面

Zalando 是欧洲目前规模最大的在线零售平台,我们与其他竞争对手的主要区别在于,我们在欧洲的大部分国家和地区提供免费送货、100 天退货以及便捷的免费退款服务。

Zalando 公司在欧洲的 17 个国家与地区开展业务,网站每月访问量超过 2.5 亿,活跃客户超过 2600 万。目前,公司已经拥有 1 万 5 千多名员工,去年收入约为 54 亿欧元。我们也在进一步推动规模扩展,希望为即将到来的黑色星期五购物季做好准备。

去年的黑五,我们打破了销售额历史纪录,共收到约 200 万份订单。在峰值时段,我们每分钟接到超过 4200 份订单,这不只代表着可观的收入,同时也是一种巨大的挑战。如果没有可靠的底层技术作为支持,这一切根本不可能实现。为了提早做好准备,我们从 2015 年就开始着手从单体架构迁移至微服务架构。到 2019 年,我们已经拥有超过 1000 种微服务。我们目前的技术部门拥有 1000 多名开发人员,编组成超过 200 个具体团队。各个团队立足自身职能涵盖一部分客户体验与业务事务。此外,各个团队也拥有具备跨学科技能的不同团队成员,负责满足前端、后端、数据科学、用户体验、研究、产品以及团队需要满足的一切客户需求。

由于业务规模非常可观,我们对于各支团队需要管理的服务也肩负着端到端责任。当然,随着从单体到微服务的迁移过渡,得到授权的各个团队也开始自主管理下辖的软件开发工作。在实施过程中,我们发现让各个团队完全按照自己的方式执行任务其实相当困难,所以我们最终制定出软件开发标准流程。流程的确立,离不开开发者生产团队为我们提供的工具方案。如此一来,在各个软件开发周期当中,每支团队都能轻松启动新的项目、着手设置,并逐步完成编码、构建、测试、部署以及监控等环节。

结账功能与实施架构

我专门负责结账功能的开发,很多不熟悉的朋友可能觉得结账这东西没什么大不了,但它可是顾客购物体验中的最后一环,甚至是最关键的一环。我们需要告知客户如何配送、配送到哪里、如何结算、以及怎样完成下单。在团队当中,每名成员都需要打理多项微服务。当然,不同的成员有着不同的开发风格,我们的微服务也有 JavaScala以及 Node.js等多种形式。我们的主要通信对象是 REST,同时也通过消息传递机制与某些依赖项进行通信。对于稳定的应用场景,我们利用 Cassandra作为数据存储方案。在配置方面,我们则选择 ETCD 来实现。


Viewing all articles
Browse latest Browse all 1056

Trending Articles