重点回顾!iThome Container Summit Day1笔记大整理

本文作者为蔡宗城,原始连结为http://smalltowntechblog.com/2015/12/10/ithome-container-summit-day-1/
有幸参加今年 iThome 举办的 Container Summit,把今天在现场所听到的一些内容整理做成笔记
- 以Mesos搭建大规模Container平台 (Timothy Chen / Mesosphere Apache Committer/PMC、Mesosphere分散式系统首席工程师)
简介 Mesos 如何管理 Cluster,运用 Scheduler 去做服务器 resource 分配使用,zookeeper 去做一些使用状态的纪录…(这一段跟昨天 Big Data section 讲 得一模一样)。然后说他们其实本来就有在用 Container,但不是 Docker 的, 至于怎么用 Mesos 管理 “Docker” 的 Container,并没有比较多加详述…
- Docker in CI:Cacoo与Backlog导入Docker的经验分享 (染田贵志 / NuLab Growth Hacker)
主要讲述 Docker 在 CI 中的 User Case,而不是把 Docker 用在 Production 环境上。先提到在 CI 中 Jenkins 扮演很重要的角色(Typetalk, Backlog Plugin),不过太多的 Jenkins Slave 不好管理。Project 中 Git branch 很多 ( Master, Develops, Features),要测试完所有的 Branch 很累。
因此建立 Private Docker Registry 来当成 Docker Hub 的 Cache,根据不同 Application 的需求与特性来建立 Image,最后透过 Docker Container 来跑测试,并且把测试结果传给 Jenkins 做 Parse,最后再把成功测完没问题的 Build 传到 Repository,这个部分跟我自己实做的 CI Work Folw 蛮像的
- 新浪微博大规模基于Docker的混合云应用实践 (王关胜 / 新浪微博 平台维运架构师)
以前 Scale Out 的过程很繁琐而且费时冗长,因为甚至需要从实体服务器的采购开始,而且闲置设备无法善加利用,所以开始想要使用混合云-阿里云 (Private & Public Cloud) 解决问题,不过为了数据的安全性,只把计算和商业逻辑搬移到阿里云。
Docker Host 在 Private Cloud 采用实体服务器,而在 Public Cloud 采用 VM,Linux Distribution 为 CentOS,至于在管理 Docker Host 的资源方面,在新板使用 (Docker Swarm & Mesos) V.S. 旧版(Mesos & Dispatch-微博自己开发) 作为其底层管理工具,当然也架了拥有 HA 的 Docker Private Registry
混合云的核心思想为设计一个 Resource Pool,让公司的所有服务可以共享这个混合云,也讲了很多管理混合云或是如何 Scale Out 的 SOP (介绍nginx-upsync-module,应付新长出来 Container),让线上服务可以稳定的服务使用者。
在服务器 Provision 的方面,所有需要被安装的东西都包成 rpm package,并且使用 Puppet 担任 CM (Configuration Management)的 角色,而 Log Management 部分大量采用ELK(ElasticSearch+Logstash+Kibana),在 Metrics 的部分使用 Graphite,这两个东西对于 Trouble Shooting有很大的帮助
- 群晖科技运用Docker研发新世代产品之路 (曹经世 / 群晖科技 研发经理)
Synology 广告时间…介绍 DSM 如何管理 Docker Container 。由于在 Docker 在网络方面有点麻烦,所以采用 Open vSwitch bridge 来解决外部网络无法连接到内部 Container 的问题;而储存问题,利用 Docker mount 功能,让全部的 Docker DSM container 共享一样的档案,并且利用 BTRFS subvolume 来管理储存空间;而在安全性方面,用 Cgroup,Apparmor… 等来达到 process 资源使用限制,权限的控管…等
- 两大平台完整结合: 谈Windows Container & Azure Container service (冯立伟 / 台湾微软 Open Source Lead)
强调微软拥抱 Open Source 和广告 Azure 的运用,而许多既有的Docker Image 在 Azure 也有提供。Demo 运用 Azure CLI 建立VM,然后再用 Docker Command 在 VM 上面开 Container。而微软跟 Docker 合作开发了 Windows 版的 Docker Engine ,让其跑在微软自己客制化的 Nano Windows Server 上面,而所有的 Docker Command 都跟官方在 Linux 环境一对一且映成,开启一个 Windows Container 基本上会耗掉 100 MB 的 ram。最后提到微软的服务器底层资源管理也将会使用 Apache Mesos
- 拥抱或对抗?谈Docker对传统DevOps工具链的冲击 (叶秉哲 / Gogolook 架构师)
DevOps 最重要的三个问题 (Recreate, Change, Monitor),而因为 Application 的功能都跑到 Container 内,所以 OS 功能越来越简化,因此 RancherOS, CoreOS 之类的轻量化 OS 应运而生,甚至有 Unikernel 的诞生。
运用 Dockerfile 就可以一层一层把 Application Image 做出来,CM (Configuration Management) 的重要性越来越轻微,而且做出来的 Image 是 Immutable 并且具有版本控制,利用 Docker Image 产生的 Container 地位比较像是牲畜而不是宠物;不过要用 Docker 的话,Application 的设计方式也必须做更改,跟环境不能有太深的相依性,要让 Application 可以轻易的在不同的 Server 上运行。最后提到运用 Kubernetes 或是 Mesos 做 Deployment 的话,可以轻易地达成 rolling upgrade
- 由于第二天没有要继续参加,所以先跑去找第二天 Google 的讲者 (Evan Brown / Google 云端解决方案架构师) 问了一些关于 Kubernetes 的问题
1. 为什么每个 Node 的预设组态限制只能跑 40 个 Containers?
Evan: 这是 Google 测试调校完觉得比较适合的数字,跑起来的稳定度比较好;当然可以自己把数字往上加,不过建议要使用版本 1.1 之后,并且把 Iptables based Proxy enable 起来,而这个功能在版本 1.2 会变成预设
2. 设定 Master HA 的文件还有 Provision Script 都很不完善,对于初学者来说要30分钟就上手有点难度,有计划改善吗?
Evan: 没有错,所以打算在版本 1.2 把 Master HA 的功能变成预设,而版本 1.2 会在几个月后 Release
结论:假如没时间一直去研究探讨,就等 1.2 吧XD
接着看:关键摘要!iThome Container Summit Day2笔记大整理
