写点什么

微博的 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:159393

评论 1 条评论

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

合约跟单软件开发,合约跟单交易所系统开发搭建

13530558032

产品经理的架构思维

吴世亮

架构 产品经理 电商

Keepass+Synology 打造私人密码管理器

zj坚果

揭开链表的真面目

Java旅途

Java 数据结构 链表

数字资产钱包开发,深圳区块链理财钱包服务商

13530558032

Python 到底是强类型语言,还是弱类型语言?

Python猫

Java c++ Python 编程

Week12

一叶知秋

数字货币交易平台搭建,去中心化交易所开发方案

13530558032

甲方日常4

句子

工作 随笔杂谈 日常

C语言内存泄露很严重,如何应对?

华为云开发者联盟

c 内存泄露 内存 代码 函数

在面试中成长

escray

学习 面试

week 12 作业

Geek_2e7dd7

新时代背景下的Java语法特性

九叔(高翔龙)

Java java 14 java 14 新特性 Java 分布式

自己做的 PPT 总被批「缺少干货」?试试先回答这三个问题

Tony Wu

效率工具 方法论 PPT

拖延症竟然是自己给自己的一种奖励?如何干掉它?

非著名程序员

个人成长 拖延症 番茄土豆工作法

week 12 学习总结

Geek_2e7dd7

DockerHub 镜像仓库的使用

哈喽沃德先生

Docker 容器 微服务 镜像

你也许还不懂静态方法和实例方法

架构师修行之路

MySQL复杂where条件分析

程序员历小冰

MySQL

Jenkins持续集成「编译打包、代码检查、单元测试、环境部署、软件测试​」

清菡软件测试

jenkins

性能相关 磁盘I/O子系统

Linuxer

面试必备知识点:悲观锁和乐观锁的那些事儿

鄙人薛某

面试 乐观锁 悲观锁 CAS 并发控制

1. 不吹不擂,第一篇就能提升你对Bean Validation数据校验的认知

YourBatman

Hibernate-Validator Bean Validation 数据校验 JSR380

管理时间还是挥霍时间?

钰湚—付晓岩

学习 时间管理 工作体会 工作哲学

面试是一张窄窄的船票

escray

学习 面试

java安全编码指南之:对象构建

程序那些事

Java 安全 安全编码指南 对象构建

USDT承兑商软件开发,区块链支付系统源码搭建

13530558032

文件系统

Linuxer

Golang写算法

卒迹

算法 Go 语言

oeasy教您玩转linux-010110内容回顾

o

SpreadJS 纯前端表格控件应用案例:表格数据管理平台

葡萄城技术团队

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