AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

肖德时:如何用 Docker 来管理微服务架构的乱网

  • 2016-03-15
  • 本文字数:1917 字

    阅读完需:约 6 分钟

2016 年 1 月 22~23 日,ECUG Con 2015 大会在北京新疆大厦举行,ECUG(Effective Cloud User Group,实效云计算用户组)是由 Erlang 爱好者、分布式领域的知名专家组成的民间技术团体。ECUG Con 是该组织一年一度交流云计算产业前沿技术的大会。来自数人云的肖德时分享了“Docker 在数人云的实践”主题演讲。

数人云也是在 2015 年 Docker 最火的时候加入了这个创业大军的,所以肖德时此次分享主要讲述 Docker 在数人云的最佳实践。

数人云技术架构设计

作为一家创业公司,数人云在 2015 年只做了一件事情,那就是提供 PaaS 功能,而容器技术是不可缺少的重要组成部分,这也就是为什么现在很多企业内部会大量使用 Docker 的原因。只不过现在的问题是,我们能用一个小小的芯片就可以取代 60 年前需要用卡车拉的一台电脑,可是为什么现在企业不能用一台电脑管理整个电脑集群,让复杂的事情简单化,既节省人力又便于管理?

肖德时在这里说,其实谷歌本身计算管理的方式就是经过二十多年的磨练才达到现在的高水平的,也希望国内也有这样的管理方式。谷歌的管理架构有几个特点。首先推出的是针对容器的 ECS 架构,符合国内创业需求。所有云化的请求都是 ELB 请求,完全依赖于硬件的支撑,这不是企业架构里面最重要的部分。

在管理引擎和控制面板方面,数人云所做的就是上图黄色部分,也是核心组件。除了追求快速度之外,还要让它具备管理机器集群的能力,提供资源和 CPU,最核心的任务是管理 UI 和内部交互。所有通信都是独立的,而且全部用 Docker 进行容器化包装,所有组件的分发都是通过中央来进行分发。

数人云之前做部署的时候用的是镜像包转变。从微服务架构到分布式 DCOS 架构设计的转变过程中欠考虑的事情就是没有考虑分布式状况。但在实际应用场景中,分布式架构可以带来的好处,一是可以快速复制,二是可以在廉价的机器上进行计算。所以,用 Docker 的目的是把现有的微服务包装起来,能够快速的分发,实现多方面去复制。从本质上来说,数人云的架构是把环境带上做 Ruild、Ship、Run 的实现,而且内部每一个开发者和运维,都会用 Docker 的方式来交互。

数人云创业之初做的几件事

在创业一年之后,肖德时总结了他们的团队做了哪些有决定性的事情。

  • 第一件事就是最大程度地使用 Go 语言,不仅因为 Go 语言性能高,它的语法简单易于理解也是关键点,这就避免了招聘尖端工程师来组建开发团队了。
  • 第二件事情就是团队内容标准化,在开发工程上 Go 语言非常易于理解和易于约束,这也有助于把一个服务更详细的拆解,一个简单的分布式应用差不多拆了 50 个,当作一个微服务来处理,对于这样大规模的任务,需要一个集群来管理微服务,如果没有集群来管理,拆的再细也是控制不了的。
  • 第三个是 API 的设计,如何设计一个最好的 API,根据经验不同是无法预测的。数人云团队是在开发之前就把输入和输出做了一次内部的预演,降低了成本。

微服务应用开发在数人云的实践

数人云现在需要管理的 App 有 50 多款,根本不可能用人工的方式去管理,所以他们采用自己的 MySQL 管自己的数人云:搭建 3 套关系来应对快速迭代的需要,不需要做很多的架构设计。

在分享过程中,作为 Docker 的开发者之一的肖德时也谈到了 Docker 的另一面。Docker 本身现状是有坑的:

  • 第一点,它的语言并不是标准的,只是 Docker 公司的实现,无法满足企业的需要。企业需要一个迁移,就是对每一层的认证。
  • 第二点是每一层的存储需要有最优的,但 Docker 没有,而且目前还没有最佳解决方案,尤其是在和企业客户熟悉完 Docker 之后不能直接用卡包来解决这个问题,是需要考虑的。
  • 第三点,开发团队经过一年多的实践,Docker 的本身特性都是源于 Kernel,但是特性和 Kernel 是分离的,只有 Docker 自己做一个 Kernel 才能包容在一起。
  • 第四个是安全方面,根据最近的报告显示,在 KVM 和目前所有的虚拟机里面,Docker 都是可以穿透到主机上,只是这个漏洞还没有暴露出来。但是 1.10 版本仍然存在这个问题,也就是说 Docker 现在是不安全的,使用过程中一定要和公网做一个隔离。

有的人问为了节省资源可不可以在物理机里多启动一个 Docker,在这种情况下可以对 Docker 做迁移?肖德时解释说,

如果是在进程无状态的情况下,必须要这么做。有状态的话,在中断时间用分布式存储解决序列化问题。迁移的过程是调度,从一台机器上调到另外一台机器上。

另一个来自传统企业的听众问到,如何把传统应用快速迁移到云环境下?肖德时回答说:

分布式存储这一块也是 Docker 发力的地方,迁移过程中遇到一个问题就是,如果企业内部有几千个应用同时单点访问一个盘,那么 IO 性能肯定是很差的。解决的办法就是把 IO 分流,变相的把 IO 性能分到更多机器上,通过挂盘的方式来解决,目前这是最成熟的方式。

2016-03-15 09:106349
用户头像

发布了 181 篇内容, 共 102.6 次阅读, 收获喜欢 208 次。

关注

评论

发布
暂无评论
发现更多内容

如何让ESP8266板子像APP开发一样方便

北桥苏

php 物联网 esp8266 mqtt

程序员晋升指南!13年顶级架构设计经验的锦囊妙计与实践分享

Java你猿哥

Java 架构 ssm 架构设计 架构师

Logstash如何批量同步MySQL多表到ElasticSearch

北桥苏

elasticsearch Logstash ELK Stack

干货力荐!京东首席架构师:亿级流量架构的核心技术文档

Java 架构 亿级流量

Logstash同步MySQL一对多关联表到Elasticsearch父子文档

北桥苏

elasticsearch Logstash ELK Stack

【RabbitMQ】| 带你 (超详细) 从0到1使用SpringBoot操作RabbitMQ

Java你猿哥

Java spring Spring Boot ssm RabbitMQ

逆袭!阿里专家手码23版Java面试三件套,Github星标直线狂飙

Java你猿哥

Java 微服务 面经 算法题 java核心知识点

PoseiSwap:合规、隐私与支持更广泛的资产

鳄鱼视界

BOSS直聘首发半小时被下架!300MB实战SpringBoot笔记爆赞过百万

Java spring Spring Boot 框架

单调栈模板总结及应用

timerring

算法

毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题

Java spring Spring Boot 框架

Github火到CSDN, 字节高级架构师亲码出 elasticsearch 实战手册

Java 搜索引擎 elasticsearch ES

Logstash同步MySQL关联表到Elasticsearch的嵌套文档中

北桥苏

elasticsearch Logstash ELK Stack

独一份,15年经验汇聚而成的《SpringBoot“踩坑”手册》首次开源

Java spring Spring Boot 框架

由Elasticsearch7.8评分脚本引起的一个索引迁移解决方法

北桥苏

elasticsearch Logstash ELK Stack

Windows下hadoop环境搭建之NameNode启动报错

北桥苏

大数据 hadoop

浅谈Kafka2.8+在Windows下的搭建与使用

北桥苏

php scala kafka

2023最新后端中大厂面经&在面试过程中如何反问?

Java你猿哥

Java ssm java面试 面试官 Java面经

必知必会的JavaScript前端面试题篇(二),不看后悔!

Immerse

创意世界在 Photoshop 上运行~

真大的脸盆

Mac ps Mac 软件 Photoshop 2022下载

如何通过Logstash将MySQL数据同步到ElasticSearch

北桥苏

php MySQL elasticsearch Logstash

简单聊聊Java中线程安全有哪些实现思路?

Java 多线程

PoseiSwap:合规、隐私与支持更广泛的资产

股市老人

Github标星90K!不愧是阿里大牛珍藏的LeetCode题解全彩小册

Java你猿哥

面试 算法 LeetCode ssm 算法题

23年最新Java岗常见面试题及答案(1000道),90% 的公司都会问到

Java你猿哥

Java MySQL zookeeper JVM java面试

平台工程 | 内部开发者门户权威指南

杨振涛

DevOps 平台 平台工程 内部开发者平台 内部开发门户

深入解析Java适配器模式:将接口转换为你所需要的形式

Java 适配器

windows下Hive搭建踩坑汇总

北桥苏

hadoop hive hql

最简单的canal 1.1.6服务搭建方法

北桥苏

elasticsearch canal

背废完虐面试官!字节架构师8年心血终成《图解设计模式》手册

Java 设计模式

肖德时:如何用Docker来管理微服务架构的乱网_语言 & 开发_Xue Liang_InfoQ精选文章