写点什么

肖德时:如何用 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:106570
用户头像

发布了 183 篇内容, 共 108.5 次阅读, 收获喜欢 210 次。

关注

评论

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

网站源码是什么东西,有什么用?

嘉科网络

语音文字图片工具箱微信小程序:多功能工具与高效变现解决方案

微擎应用市场

天天享赚微信小程序:流量主与猜成语结合的变现工具详解

微擎应用市场

微信小程序域名查询系统详细介绍

微擎应用市场

大模型中毒记

脑极体

AI

破解内容难题:海外社交媒体高互动帖文的创作公式

Wolink

跨境电商 出海服务商 社媒运营 海外营销推广 达人营销

IDC报告:百度智能云智算服务市场份额第一,GenAI IaaS增速最快

新消费日报

从“开源开放”走向“高效智能”:阿里云 EMR 年度重磅发布

阿里云大数据AI技术

spark 阿里云 AI StarRocks EMR

海外推广终极指南:从0到1构建全球化营销战略

Wolink

跨境电商 出海服务商 社媒运营 海外营销推广 达人营销

打造增长引擎:高转化海外推广渠道的组合策略与实战案例

Wolink

跨境贸易 跨境电商 出海服务商 海外营销推广 达人营销

MyEMS:开启智能化能源管理新时代

开源能源管理系统

开源 能源管理系统

MyEMS:开启智能化能源管理新篇章

开源能源管理系统

开源 能源管理系统

集成平台——集成监控日志配置实践

inBuilder低代码平台

集成平台 监控日志

做网站之前需要考虑的几个关键点

嘉科网络

网站建设

2026年最全一份建网站费用表清单

嘉科网络

有没有比企微更好用的企业即时通讯软件?

BeeWorks

即时通讯 IM 私有化部署

文心快码实测Markdown排版工具开发

Comate编码助手

智能编程 文心快码 文心快码3.5S AI编程助手

AI Agent如何驱动下一代MES

万界星空科技

mes AI Agent 万界星空科技mes 制造业转型 AI智能化MES

我的第一份开源贡献:小米工程师程赛的社区之旅

隐语SecretFlow

开源‘

捷行第三期读书会 即将收官

ShineScrum

读书感悟 #读书

海外达人营销的标准化工作流与避坑指南

Wolink

跨境电商 出海服务商 出海企业 海外营销推广 达人营销

超越基础合作:2025年提升海外达人营销ROI的5大进阶策略

Wolink

跨境电商 出海服务商 出海企业 海外营销推广 达人营销

企业im聊天软件支持什么功能,应该怎么选?

BeeWorks

即时通讯 IM 私有化部署

如何做好海外营销?

Wolink

跨境电商 出海服务商 出海企业 海外营销推广 达人营销

本土化洞察:海外网红营销中最容易被忽略的致胜关键

Wolink

跨境电商 出海服务商 出海企业 海外营销推广 达人营销

有哪些值得推荐的AI形成PPT软件?10个主流工具盘点

职场工具箱

效率 PPT 办公软件 AIGC AI生成PPT

告别无效投放:公司如何利用AI进行海外KOL营销?

Wolink

出海企业 kol推广 海外营销推广 海外社媒推广 达人营销

海外电商公司必备:海外网红营销服务的持续增长方案

Wolink

跨境电商 出海服务商 海外营销推广 品牌出海 达人营销

酷鸭写真分销版小程序系统:AI 驱动的写真变现工具

微擎应用市场

中国企业出海指南:选择市场、搭建团队与本地化

Wolink

跨境电商 出海企业 社媒运营 海外营销推广 达人营销

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