写点什么

微博的 5 个微服务最佳实践

  • 2019-05-11
  • 本文字数:924 字

    阅读完需:约 3 分钟

微博的5个微服务最佳实践

微博业务如何使用 Docker 镜像?


Docker 解决服务运行环境可迁移问题的关键,就在于 Docker 镜像的使用上。实际微博在使用 Docker 镜像的时候并不是把业务代码、依赖的软件环境以及操作系统本身直接都打包成一个镜像,而是利用 Docker 镜像的分层机制,在每一层通过编写 Dockerfile 文件来逐层打包镜像,并且在打包 Docker 镜像的时候,可以分层设计、逐层复用。

微博容器运维平台是如何架构的?


微博的容器运维平台 DCP 的架构主要分为基础设施层、主机层、调度层、编排层。基础设施层主要解决镜像仓库的问题,用于存放容器镜像的镜像仓库、提供监控服务的监控中心、实时监控系统容量。主机层主要解决如何进行资源调度的问题,需要适配不同底层提供的创建主机的 API 进行成本核算并且进行配置初始化操作。调度层主要解决容器如何在资源上创建的问题,需要在可用的主机上创建容器。编排层主要解决容器如何运作以对外提供服务的问题,作用是对服务进行整合以对外提供服务,主要包括服务依赖、服务发现以及自动扩缩容。

微博实现 DevOps 的关键点有什么?


微博主要使用的是 GitLab 来实现 DevOps。在持续集成阶段,需要保证每一次开发的代码都没有问题,即使合并到主干也能正常工作,这里主要依靠代码检查、单元测试和集成测试。在持续交付阶段,需要保证最新的业务代码能够在类生产环境中可能够正常运行。

微博混合云部署要解决哪三个问题?


微博采用了混合云部署,才真正解决了面对频繁爆发的热点事件带来突发流量时,内部资源冗余度不足的问题。但是在企业内部的私有云部署服务,又同时在企业外部公有云部署服务时,需要实现跨云服务的负载均衡、跨云服务数据同步、跨云服务容器运维。

微博是如何走向 Service Mesh 之路的?


要想让经典的微服务架构直接走向 Service Mesh 并不容易。微博的各种内部基础设施定制化、业务稳定性优先准则等因素,注定了微博需要走出一条自己的 Service Mesh 实践之路。微博也是随着业务的发展,在经过多方探索和尝试后才笃定了走 Agent 代理这条路。而采用的 Agent 代理的解决方案又与 Service Mesh 理念不谋而合,于是在 Agent 代理的方案中吸纳 Service Mesh 的思想,再进一步演化成如今的 Weibo Mesh。所以说一个可靠的架构从来都不是设计的,是逐步演进而来的。


2019-05-11 19:159106

评论 1 条评论

发布
用户头像
学习
2019-05-14 00:50
回复
没有更多了
发现更多内容

自定义 SpringBootStarter

子路无倦

多来点胜利,对冲颓丧

zhoo299

成长 备忘

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(三)

图雀社区

vue.js Vue Node

我的个人知识管理方法

lidaobing

个人成长 知识管理 PKM

GitHub上10个不可错过的另类有趣项目

码农神说

GitHub 开源 程序员

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(五)

图雀社区

Vue Node

重磅推出:第14份年度敏捷状态报告(最新2020)

Bob Jiang

敏捷 调查报告 state of agile

【译文】为什么说Rust是机器人技术的未来

袁承兴

rust 机器人 嵌入式

N皇后问题之位运算解法

孙苏勇

算法 DFS 位运算

React之Context源码分析与实践

费马

源码分析 React useContext Context React-Router

为什么你成不了「超级个体」?

非著名程序员

程序员 互联网 提升认知 认知提升

csapp-chapter1

卓丁

深入理解计算机系统 csapp

如何让解决无法访问 GitHub 的问题?

JackTian

GitHub

架构师必备的ToB产品交付之双轮驱动思维模型

常平

产品 极客大学架构师训练营

除了公关,我还能为公司做点什么?(系列1)

邓瑞恒Ryan

学习 个人成长 自我管理 成长 职业成长

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(四)

图雀社区

Vue Node

科学提升认知方法之贝叶斯公式

奈学教育

贝叶斯公式

SpringCloud-OpenFeign源码

云淡风轻

Spring Cloud

愚蠢写作术(2):怎么让你的文章变得冷冰冰

史方远

学习 个人成长 写作

从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(六)

图雀社区

node.js Vue

csapp-chapter2

卓丁

深入理解计算机系统 csapp

Sula - 可能是西湖区最好用的antd配置框架

开远

大前端 antd sula 配置化开发

路径依赖 - 偶然决策导致的依赖。

石云升

思维模型 路径依赖 网络效应 沉没成本 价值网依赖

中台上线半年,我总结出了“七宗罪”

punkboy

中台 企业中台 后台开发 业务中台 后台

分布式事务 - 三种常见的解决方案

Java收录阁

分布式事务

做一个纸上谈兵的项目经理

escray

JDK 15 都发布了,可 Java 8 依然是最爱

古时的风筝

Java Java 25 周年 Java版本

JUC整理笔记五之梳理Varhandle(下)

JFound

Java

ArrayList浅析

章小传

Java collection 原理 ArrayList

大话设计模式 | 0 面向对象基础

Puran

C# 设计模式

源码分析 | 像盗墓一样分析Spring是怎么初始化xml并注册bean的

小傅哥

源码分析 小傅哥 spring源码 bean注入过程

微博的5个微服务最佳实践_架构_胡忠想_InfoQ精选文章