Airbnb 的微服务架构

作者: 623049349ffc | 来源:发表于2018-08-01 08:32 被阅读0次

原文:From Monorail to Monorepo: Airbnb’s journey into Microservices

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:这是一个内部开发的 CI。现在所有的服务都用这个 dashboard 来部署。dashboard 还可以实现回滚。功能上类似于 Netflix 的 Spinnaker。
  • SCRAM: 用于检测、记录服务出现的exception。系统通过机器学习来预测哪些部署可能出现问题。类似于 bugsnag 和 honeybadger 这样的付费服务
  • 合并队列:代码合并到 master 的流程是,提交 Pull Request,代码审查通过,然后提交一个合并请求。这个请求会进入一个队列。
airbnb arch 1.png airbnb arch 2.png

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

  • 拆分为 前端 和 后端 两个部分
  • 前端使用 react,但page 是使用 server side rendering 传回给前端的

后端

  • Airbnb 有700+ 个 microservices
  • synchronous communication 使用 thrift schema,比 json 的格式要求更严谨
  • asynchronous communication 使用 kafka
airbnb arch 3.png

架构中使用的工具

  • service generation: 用于创建一个 service,并自动生成了 thrift 配置
  • 将所有配置文件放在一个 repo
  • 使用 Kubernetes 部署服务,与deployment dashboard 集成
  • microservice 测试工具。比如 API 测试,schema 检验,Selenium 测试
  • infrastructure as code, using Kubernetes, Amazon EKS

相关文章

  • Airbnb 的微服务架构

    原文:From Monorail to Monorepo: Airbnb’s journey into Micro...

  • 软件架构模式

    CQRS架构 微服务架构 微核架构

  • 黄勇微服务

    1.为什么需要微服务架构 2.微服务架构是什么 3.微服务架构有哪些特点 4.如何搭建微服务架构 5.黄勇开源的微...

  • Airbnb 架构调整

    【思考架构】1.背景 及最初目标 2.整合方式 1.背景及最初目标 中国游客出境游人群增长,竞品途家的版图还在向亚...

  • 杂谈:产品架构和运营策略

    最近我一直念叨的两个产品架构,一个是airbnb一个是知乎。 airbnb创造了一个共享经济的范例,而且在产品架构...

  • 微服务开发模式系列之九阴真经

    微服务是微服务架构中的概念,微服务架构是指由一系列微服务组成的体系架构。每一个微服务都是一个可以独立部署的程序,微...

  • 微服务架构多“微”才合适?

    微服务架构多“微”才合适? 前情提要:互联网架构为什么要做服务化? 一、互联网架构为什么要进行服务化-总结 上一篇...

  • 你的项目真的适合微服务架构吗?微服务架构有哪些痛呢?(一)

    在介绍业务场景之前,我们先来谈谈对微服务的一些理解。 一、单体式架构 VS 微服务架构 为了快速理解单体式架构与微...

  • 微服务的微

    微服务的微,是指服务粒度的微么? 微服务可能是由此得名的。但在微服务架构思想中,服务粒度的微,不应该放在首要强调的...

  • 什么是SpringCloud

    何为微服务 在了解SpringCloud之前,我们先来大致了解下微服务这个概念吧。 传统单体架构 单体架构在小微企...

网友评论

    本文标题:Airbnb 的微服务架构

    本文链接:https://www.haomeiwen.com/subject/bsclvftx.html