Airbnb 的微服务架构

Posted 网站架构札记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Airbnb 的微服务架构相关的知识,希望对你有一定的参考价值。

原文:https://youtu.be/sakGeE4xVZs

Airbnb 最开始是一个 single repo Ruby on Rails 项目。前端用过 backbone 和 react,后端有Ruby 和 Java。

2014年之前的 deployment workflow 是:

  • Code review & CI

  • merge to master

  • staging, manual test

  • production


用于支持 deploy 的内部项目:

  • deployment dashboard

  • SCRAM: rollback system, error tracking,类似于 bugsnag 和 honeybadger 

  • merge queue:确保merge to master 是有序的



随着这个single repo project 不断变大,Airbnb 开始采用 microservices architecture。

  • 拆分为 前端 和 后端 两个部分

  • 前端使用 react,但page 是使用 server side rendering 传回给前端的

后端

  • Airbnb 有700+ 个 microservices

  • synchronous communication 使用 thrift schema,比 json 的格式要求更严谨

  • asynchronous communication 使用 kafka


架构中使用的工具

  • service generation: 用于新开一个 service。自带 thrift 配置

  • 所有配置文件放在一个 repo

  • deployment with Kubernetes 

  • microservice 测试工具

  • infrastructure as code, using Kubernetes, Amazon EKS


以上是关于Airbnb 的微服务架构的主要内容,如果未能解决你的问题,请参考以下文章

「微服务架构」Medium的微服务架构实践

微服务架构~Netflix的微服务是如何分层的

Re:从0开始的微服务架构--快速快速体验微服务架构?--转

这么火的微服务架构 你不想学吗?

从0开始的微服务架构:重识微服务架构

元数据驱动的微服务架构(上)