UDN-企业互联网技术人气社区

板块导航

浏览  : 4033
回复  : 13

[临时] Docker技术分享(六):新浪SCE Docker最佳实践

[复制链接]
微信分享的头像 楼主

【编者的话】本文主要从IaaS视角,分享SCE通过怎样的实践来支持上层产品线的容器化诉求。首先聊聊我们为什么做支持Docker技术这件事情,然后介绍下Docker支持实践的方方面面。最后给出实践过程中总结出来的一些经验及踩过的一些坑,以及后续需要深耕的点。


先假定今晚的听众至少已经小范围使用过Docker技术,熟悉相关概念及原理。


前几期DockOne技术分享已经针对Docker的几个技术要点做了深入分析,所以我今晚主要从IaaS视角,分享SCE通过怎样的实践来支持上层产品线的容器化诉求。


----------

为何支持Docker技术为何做这件事先介绍下我浪SCE。SCE是新浪研发中心主推私有云产品,已经覆盖到公司内部所有产品线。基于OpenStack定制,整合了公司通道机、CMDB,为公司内部全产品线提供IaaS服务。公有云版本近期开始内测。


首先,OpenStack与Docker天生互补。


  OpenStack面向IaaS,以资源为中心,打包OS;能够提供成熟的资源限制与隔离能力;多OS系列支持;Docker则面向PaaS,以服务为中心,打包service;轻快好省;


目前IaaS业界主要以提供云主机服务为主,有着成熟的资源限制、资源隔离能力,但本质上是对OS的打包,无法满足在应对峰值访问、快速伸缩、快速部署等方面诉求。而docker与生俱来的特性”轻、快、好、省“,则恰恰可以弥补IaaS在此方面的不足。当然OpenStack社区为了能够更好的支持docker也尝试做了很多努力,这个后面会讲到。


其次,SCE运维过程发现,产品线对容器技术需求相当旺盛。


  快速部署;快速起停、创建与销毁;一致的开发测试环境;演示、试用环境;解决设备成本,充分利用资源;技术方案快速验证;更多......


IaaS短板+需求驱动,让我们意识到:SCE很有必要也很适合做支持容器技术这件事。


IaaS厂商Docker支持概况 调研分析了几个IaaS圈子比较有代表性的巨头及新贵,从调研结果可以看出,目前IaaS厂商对Docker的支持还比较薄弱。


只有阿里云为Docker用户多做了一些事情,提供了阿里官方Registry。但没有提供较新的支持Docker的云主机,只有一个第三方提供了一个很老的镜像,几乎没有可用性。


UnitedStack和青云只提供了CoreOS。而实际上,CoreOS的用户接受度很低。我们SCE也尝试过提供CoreOS,但由于和公司CentOS系统使用方式差异太大,基本没有产品线愿意使用并迁移到CoreOS上面来。


----------

Docker支持实践的方方面面基于以上需求及调研,SCE主要在Registry、Hub、支持Docker的虚拟机镜像、日志存储与检索、网络及存储驱动等方面做了一些实践,致力于让产品线用户更方便高效的使用Docker技术,推动Docker在公司内的使用。


  Registry+Hub方案Registry后端存储方案方面,其实大家已分享较多,大多是用dev及s3。SCE当然使用自家新浪S3了,当时的第一个方案就是Docker Registry sinastorage driver + sina s3。可靠性性自然不用多言,但由于依赖storage driver,追查问题过程中,调试及维护都比较麻烦,并且更新后还需要自动构建新镜像。


既然自家提供可靠云硬盘,为什么不为自己提供服务呢。果断将忍了老鼻子时间的方案一改为了localstorage + SCE云硬盘,不再依赖driver的日子舒服多了,另外还能享受到云硬盘的snapshot、resize等高级特性。


所以,对于正在Registry storage backend选型的朋友,给出一些建议以供参考:


  对镜像存储可靠性无要求的使用场景,建议直接使用dev;对镜像存储可靠性要求较高的使用场景,如果你是在IaaS上跑,强烈建议使用localstorage + 云硬盘方案;对镜像存储可靠性要求较高的使用场景,如果你没在IaaS上跑,可以拿点大洋出来用S3等;对镜像存储可靠性要求较高的使用场景,如果你没在IaaS上跑,又不想花钱,想用自家存储,就只能写个自家的driver了。我才不会告诉你,这种情况排查问题有多么糟心。


为了给产品线提供便捷的镜像查看及检索服务,SCE与微博平台合作,共同推出了SCE docker hub,基于docker-registry-frontend开发实现。与SCE现有服务打通,并支持repo、tag、详细信息、Dockerfile的查看、检索与管理等。


为了产品线更方便使用Docker官方镜像,我们的自动同步工具会依据镜像注册表,周期性的自动同步Docker官方镜像到SCE分布式后端存储集群,使得产品线用户可以通过内网快速pull到Docker官方镜像。


由于SCE不保证也不可能保证Docker Hub官方镜像的安全性,所以建议产品线最好使用SCE官方发布的image或构建自己的baseimage。


对于产品线私有Registry的需求,SCE也提供了相应的一键构建工具集。


CentOS 7 + Docker镜像SCE在Docker支持方面主要做了如下一些工作:


  1)集成Docker 1.5、Docker-Compose 1.2环境;
  2)提供docker-ip、docker-pid、docker-enter等cli,简化用户使用;
  3)与DIP合作,支持rsyslog-kafka,解决日志监控检索问题;
  4)与微博平台合作,提供muti-if-adapter工具,解决同一主宿机相同服务端口冲突的问题;
  5) 更多......


SCE上使用Docker有了如上工作支撑,在SCE上使用docker就变得相当便捷。






拓展阅读:
Docker技术分享(二):集群规模下日志处理和网络方案
Docker技术分享(三):Docker Registry的定制和性能分析
Docker技术分享(四):AppC和Docker的对比
Docker技术分享(五):Docker网络详解及Libnetwork前瞻
Docker技术分享(六):新浪SCE Docker最佳实践
Docker技术分享(七): 基于Hypervisor的Docker引擎——Hyper
Docker技术分享(八):OpenStack Magnum社区及项目介绍
Docker技术分享(九):持续集成和“云”
Docker技术分享(十):跨主机的 --link

相关帖子

发表于 2015-7-3 16:01:39 | 显示全部楼层
请问搭建的 registry 是 1.0 的吗?
使用道具 举报

回复

发表于 2015-7-3 16:51:49 | 显示全部楼层
0.9.1的
使用道具 举报

回复

发表于 2015-7-3 17:04:23 | 显示全部楼层
小白问一下“直接使用 dev” 是什么意思?
使用道具 举报

回复

发表于 2015-7-3 18:08:33 | 显示全部楼层
磁盘块设备
使用道具 举报

回复

发表于 2015-7-3 19:42:09 | 显示全部楼层
localStorage 不是吗?和 dev 的区别是什么?
使用道具 举报

回复

发表于 2015-7-3 20:08:34 | 显示全部楼层
请问新浪研究过的k8s有一些博客和文档之类的东西吗?
使用道具 举报

回复

发表于 2015-7-3 21:23:28 | 显示全部楼层
从头到尾拜读了一遍大神的文章,收获很大,有思路了,大赞
使用道具 举报

回复

发表于 2015-7-3 22:50:40 | 显示全部楼层
是先起一个centos的vm,然后在vm里跑docker?
使用道具 举报

回复

发表于 2015-7-3 23:21:35 | 显示全部楼层
是的
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部