24
回答
OSC 第 109 期高手问答 —— Docker 与自动化运维

OSCHINA 本期高手问答( 1月13日- 1月19日)我们请来了云栈科技联合创始人@魏世江 来解答 Docker 与自动化运维 方面的问题。

魏世江,@魏世江 ,云栈科技联合创始人兼CTO,负责基于 Docker的自动化服务管理平台的后端研发工作。擅长Docker相关技术、PasS平台架构及企业自动化运维系统的设计及开发。创业之前在新浪SAE 平台任技术经理,从09年SAE立项至13年下半年的四年多时间里,一直负责SAE PasS平台各种基于Web的服务管理系统的设计及开发,在DevOps方面积累了丰富的经验。Docker引擎代码贡献者,在Docker开源项目中代 码贡献量全球排名60名左右。

Docker的出现,带来了互联网行业运维的一场革命。然而和任何新事物一样,Docker也是一把双刃剑。一方面,Docker可以让运维更加自动化和标准化;另一方面,Docker颠覆了大量传统的运维工具。本次主题将与大家分享如何基于Docker打造一套一体化的管理平台,来让运维工作更加高效、灵活和自动化。

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 Docker 与自动化运维 方面的问题向 @魏世江 提问,请直接回帖提问。

举报
叶秀兰
发帖于2年前 24回/5K+阅
共有24个答案 最后回答: 2年前

@魏世江 :大大好,对于docker有没有成熟的解决方案在网站超载时自动扩容的?比如 www.888.com 这个网站,当前3台服务器(或者说三个docker容器),在访问并发人数超过1W时,自动扩展为6台机器并发人数2W时,自动扩展为12台;降为8000以下时,又缩减为3台?

--- 共有 3 条评论 ---
采飞扬回复 @叫我刀刀 : 我说的是docker方案,完全不在一个频道上嘛 2年前 回复
叫我刀刀回复 @叫我刀刀 : 我说的是AWS 2年前 回复
叫我刀刀您可以使用 Auto Scaling 自动管理 EC2 容量、为您的应用程序维持适当数量的实例、操作运行状况良好的实例组以及根据需要扩展它。 2年前 回复
@魏世江 :你好,我在一些技术文章里看到有人提过“如果在Docker和虚拟机之间选择,要选择Docker”这样的说法。虽然没用过Docker,但是我知道虚拟机的强大,如果只用于运行服务的话,虚拟机却略显臃肿。所以Docker除了比虚拟机轻量化,还有什么更突出优势(和劣势)吗?
--- 共有 4 条评论 ---
mystardocker相对于vm的另外优势是资源的弹性化,cpu和memory都可以弹性使用,这点比KVM强,另外就是基本没有guest系统的资源消耗,性能和native一致,这两点结合,非常适合测试和开发环境。 2年前 回复
Moses_Fu回复 @魏世江 : 嗯,明白了,谢谢! 2年前 回复
魏世江如果说劣势, 可能Docker在资源隔离方面不如虚拟机,毕竟Docker容器是与宿主机共享内核的。但如果Docker跑的都是公司内部的项目,对项目之间的隔离性一般也不会有过多要求。 Docker提供的内存、CPU、blkio配额控制能力也基本能够满足大多数需求。 2年前 回复
魏世江Docker除“轻量”以外,最重要的是其分层镜像技术和标准化的API。 Docker的镜像有一套完整易用的构建工具,可以方便的与CI工具进行整合,而虚拟机镜像则不具备此能力。 Docker镜像是分层存储和传输的,可以进行增量的构建和分发,当规模较大时分发速度远快速比虚拟机镜像。 通过Docker的API进行可以方便的对容器、镜像等资源进行远程管理。 2年前 回复
运维方面具体实现上,有没有什么具体例子可以给我们参考
--- 共有 2 条评论 ---
mystar回复 @魏世江 : 如果k8已经比较成熟,学习成本不高的话,自己折腾最后不是一样要过渡过去么? 2年前 回复
魏世江具体实现上我是比较推荐简单实用的原则,不要一上来就去研究kubernetes, mesos等看起来高大上的东西,那东西首先学习和维护成本较高,其次是不一定真是适合自己的业务场景。 可以先根据实际需求,基于Docker Remote API做一些简单的工具,逐步磨合完善。 具体产品可以参考我们的一个产品: https://csphere.cn 部署和维护起来非常简单。 2年前 回复

@魏世江 :准备在公司内部尝试使用Docker的自动化部署系统,如何快速搭建这样一个系统?需用那些Docker相关工具服务比较好?还有如何让公司的其他人比较愿意接受这一个新的系统?

@魏世江 :请问在docker的分布式应用上有什么经验可介绍的吗,比如在docker搭建MHA等等
--- 共有 2 条评论 ---
Oscarzhaoslkubernetes对可以横向扩展的分布式应用提供了原生的支持,不过首先要容器化你的应用,官方网站上有 搭建redis、spark等集群的例子,可以参考下 2年前 回复
魏世江Docker本身并不提供分布式的能力,仍然需要从架构角度解决问题。 2年前 回复
@魏世江 : docker +  swarm + Overlay Network 能搭建redis 3.x的那种集群吗
--- 共有 1 条评论 ---
魏世江没有问题,swarm了内置一些调度策略可以帮助用户选择具体把容器部署在集群中的哪一个(或一组)机器上。redis的镜像中需要提供一个脚本来自动配置主从,比如:通过环境变量把master的IP传给容器。 容器的跨主机通信如果是在企业内部的环境,建议不要用docker的overlay网络,可以直接使用linux bridge与物理网络打通,这样管理成本、故障分析和性能方面都比较好。 2年前 回复

@魏世江 :目前用gradle做自动化布署,puppet管理应用软件,想问下对比之下,docker有什么优势?

--- 共有 1 条评论 ---
zzcv同样在开发中有用到gradle, 之前用mvn的时候尝试过Dockerfile 结合Daocloud 自动化构建.gradle 插件玩儿不溜,不知能否分享下你们的最佳实践? 2年前 回复
@魏世江 :1.目前国内公司,除了360,基本都把docker当轻量的VM用,而不是严格意义上的容器,如何看待这个问题?2.数据库类应用,比如mongodb或者mysql的小集群,有何经验可以分享?
顶部