本文作者為蔡宗城,原始連結為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筆記大整理

熱門新聞

Advertisement