Docker,聽起來很潮
But,該如何正確入門,一窺堂奧

新一代軟體架構DevOps 全局切入/
避開無效的學習方式
集中精力,第一次就學對的觀念

立刻報名! ▷

THE COMPANIES THAT MAKE THEIR LIFE EASIER

掌握容器化架構的核心觀念,
開拓新一代軟體架構的無限可能!

在多次 Docker 相關演講、授課、顧問諮詢的過程中,看到眾多 Docker 導入的疑難雜症。歸納起來,有十五大罪狀
 
針對這些困難,我在 Container Summit 2016 專題演講【Docker 導入:障礙與對策】中,深度剖析背後的核心問題,並提出兩個低阻力的導入角度。
 
演講過後,許多人反應:希望真的能有從這角度來設計的具體教程。而且,不能用過於簡單、理想化的玩具當案例,要能真實反映 monolithic、stateful 軟體的現況。
 
因此,2016 年底,我根據這些理念,重新設計 Docker Workshop 內容。
 
從第六梯次起,全新改版的這門課,教你一整套圍繞在新一代軟體架構上的 DevOps 基礎手法:(1) 非玩具等級的真實案例,親身體會容器化之前與之後的實質差異;(2) 正確的容器化 DevOps 流程,知其然,亦知其所以然;(3) 掌握 Docker 的關鍵精神,擁有日後探討 Docker 進階議題的能力。
 
過程中,除了範例實作,也搭配影片、ORID、User Story Mapping、拼圖、Q&A 等活動,引導你從 DevOps 視角來看待 Docker 的革新觀點。
 
這是一門動手、動眼、動口,更是動腦的實作課。
 
 
哥教的不只是解答,更是思考的過程;不只是容器化,更是新一代軟體架構的心法
 
基礎穩固了,再談變化球!

 

帶得走的 Docker 心法

我們會教你最重要的容器化軟體觀念及 SOP,一法通,萬法通!

綜觀全局的 DevOps 視野

想掌握 Docker,不能只認識 Docker 本身;對 DevOps 整體流程涉獵越多,越能活用。

立即可用的具體案例

不打高空,不給玩具,只給你真實業界每天在運作的真實案例,讓你馬上就可以模仿運用到自己的軟體系統上!

課程內容兼顧了初學者、有一點經驗的使用者。初學者可以透過簡單的例子快速了解 Ansible;有一定經驗的,也可以透過挑戰題學習更深入的知識。

簡單明瞭的說明 Ansible 功能,範例也很簡潔清楚。
另外這堂課沒有著墨很多小細節,專注在大功能的說明,範例檔也很完整,不用額外過多設定,打亂課程節奏。
我覺得很適合已經從業幾年的 IT 人員,我們需要的是快速入門和展現效果給我們看,剩下細節就是我們自己 Google 就可以了。
所以他人有需要的話,我會推薦這堂課給他們。

想徹底搞懂 Docker 的玄妙之處嗎?

給自己一個提升自我、創造價值的機會吧!

立刻報名! ▷

Automate everything, make life easier!

Automate everything, make life easier!
© Copyright 2016

中華電信  台灣大哥大  xxx百大企業  工研院電通所  中央大學資訊工程系

課程內容(全新改版!)

從 DevOps 全局,定位 Docker 角色

Docker 的 build/ship/run 流程總覽

常用的工具指令:docker cli、docker compose

常用的 Dockerfile 指令

Docker 化軟體要素

案例研討:GitLab CE

綜合運用

課程特色

針對【Docker 導入:障礙與對策】重新設計的 Docker 入門課程。

探討 Docker 的 Why:從 DevOps 全局,縱覽 Docker 的 build/ship/run 設計原理。

探討 Docker 的 How:從雲端時代軟體架構角度(尤其是 12-factor app),搭配重點案例,探討 Dockerfile 及「Docker 化軟體」設計要點。

探討 Docker 的 What:涵蓋 Docker cli 重點流程及指令。

做中學,不空談:以知名的 GitLab CE 真實案例,示範如何以新一代的 Docker 思維重新拆解,給你帶得走的能力。

Docker 實戰講堂・基礎篇

掌握容器化軟體架構最佳實務的基礎

適合對象

本課程適合對容器化軟體架構、微服務架構、DevOps 自動化感興趣的 IT 從業人員,尤以後端系統為主。

因為八成內容會以「實機操作」形式進行,適合不排斥在 Linux 命令列輸入指令的人。

2017 年 Q1 梯次

4/09(日)

地點

台北市忠孝東路五段 293 號 3 樓/ Bookshow
(捷運板南線,位於市府站及永春站之間。)

課前作業

Docker 資歷

  • 2014~2016 連續三年在 Container Summit 技術高峰會發表 Docker 技術趨勢及導入手法。
  • 2015 在 Docker.Taipei Meetup 發表【追求極簡化 Docker image 之路】。
  • 2016 在 Community Open Camp 發表【從 Ansible 到 Docker:混血模式】。
  • 八個梯次 Docker Workshop 教學經驗 : 2015-02-07、2015-03-07、2015-04-11、2015-05-09、2015-06-27、2016-12-18、2017-03-05、2017-04-09。
  • 在數個學校及公司行號演講 Docker 及教育訓練。

學員感言

講師簡介

葉秉哲 (William Yeh)

擔任過許多職場角色:程式設計師、軟體架構師、技術團隊領班、技術作家及譯者、教授、顧問、技術佈道者,但目前最喜歡的身份,還是「研發團隊教練」。

  • 曾列名《資訊游俠列傳》的名人介紹,被譽為「台灣十大電腦高手」之一。
  • 譯有《C++ 程式語言經典本》、《物件導向設計模式 Design Patterns》等經典著作。
  • Gogolook 軟體架構師、Server 總監。
  • CSPO

► 我是 developer,沒有 operator 背景,能上這門課嗎?

這門課不會涉及太多 operator 背景知識。大體而言,只要你能夠把課前作業做完,就能來上課了。剩下的背景知識,大可日後再按照範例自行邊做邊補齊。
 

► 我是 operator,只會寫一些 bash/Perl scripts,能上這門課嗎?

這門課不會涉及太多程式語言技能。而且,Docker 最令人激賞的,就是它的組態設定檔案 Dockerfile 是非常 Bourne shell 導向的,而 docker compose 則是 YAML 格式,門檻相當低。
 
大體而言,只要你能夠把課前作業做完,就能來上課了。剩下的背景知識,大可日後再按照範例自行邊做邊補齊。
 

► 課前作業好像有點難⋯⋯做不完,還能上這門課嗎?

課前作業的內容,會作為課堂上某些互動活動的素材。
 
這門課,不只是給解答,不只是給直接套用的範例,更著重在思考的過程。所以,親自嘗試課前作業,將你的頭腦及心態都調整到能在課程現場暢快思辨、徹底吸收的強度,是很重要的前置準備工夫。
 
根據過往數個梯次的經驗,投注在課前作業的心力愈確實,在課堂上的收穫也愈多,也愈能提出有水準的好問題。
 
為了確保你一走進課堂,馬上就能進入狀況,至少請試著將課前作業做個幾成,並記錄你感到困難的地方。
 
你能學到多少,完全看你事前投入有多少。加油吧!
 

► 課前作業太簡單了⋯⋯我還需要上這門課嗎?

強人!這門課對你來說,只是幼幼班等級(或許你根本連 Docker 都不需要了)。建議你也出來開課普渡眾生吧!
 

► 這次課程,需要自備筆電嗎?

是的。你的筆電可以是 Mac OS X、Linux、Windows,只要能安裝 Docker Engine 1.12.0 (或以上) 即可。但請盡量用前兩者,使用起來會比較順暢,比較少地雷。

請參考 Docker 官方提供的 安裝說明及系統需求 文件。
 

► 上課前,我的筆電要先安裝什麼軟體?

如上所述,請安裝 Docker Engine 1.12.0 (或以上)。
 

► 這次課程,會教如何製作 Windows Container 嗎?

抱歉,不會。如果真有這主題的需求,請考慮保哥的課:Windows Containers 微服務架構實戰,或 Andrew 的課:Windows Container 容器技術與開發流實戰
 

► 這次課程,會教如何製作 .NET Core 的 image 嗎?

抱歉,不會。
 

► 這次課程,會教 Swarm 或 Kubernetes 嗎?

可能會談到一點點。但畢竟這只是基礎篇,不是進階篇。或許之後會開吧!
 

► 這次課程,會教 AWS/GCP/Azure... 雲端平台應用嗎?

可能會談到一點點。但畢竟這只是基礎篇,不是進階篇。或許之後會開吧!
 

► 關於這次課程,我還有些地方不太清楚⋯⋯

歡迎利用畫面右下角的【課程留言】功能提出問題。
 

► 報名繳費之後,還有什麼事情我該做的?

離課程開始的日子,還有好幾天的時間。在這段等候的時間中,我會陸續透過 email 及 Quip 這兩個管道,通知你一些要事先準備的事項。
 
Quip 是個很方便的團隊協作平台。我在 Quip 開設一個課程群組,陳列相關的課程準備資料、作業繳交區、公告事項。還有一個「許願池」,可以讓你許願:提出你想在課堂上聽到或實作到的項目,我會列入參考。
 

► 聽起來不錯!我該怎麼加入課程群組呢?

報名完成後,數個工作天之內,你會收到 Quip 寄給你的邀請函。
 

常見問題

注意事項

這份課前作業,要請你暫時扮演「GitLab CE 核心開發者」的角色。

因此,寫出這麼棒的軟體後,你還必須告訴別人說,該怎麼樣將你精心打造的軟體,成功部署到其他電腦上(測試機、上線機),任務才算是完成了。

  • 本課程的重心是「DevOps 意識」,你必須換位思考「軟體開發者」及「維運者」兩種角色的職掌範圍。
  • 請不要使用 Omnibus 之類的救急方案,或是雲端服務廠商事先替你設定好的 all-in-one 一鍵安裝映像檔懶人包。除非你自己就是自動化組態管理高手,懂得替 GitLab CE 設計出 Omnibus 安裝包、一鍵安裝映像檔懶人包。
  • 如有可能,請順便自動化整個安裝過程。

題目

最陽春的 GitLab CE (Community Edition) 版開始,演練安裝程序(參考資料 12)到上手為止。

  • 整套可運作的 GitLab CE 系統,包括(但不限於)以下軟體元件:Ruby、Go、PostgreSQL、Redis、GitLab、Nginx。
  • 現階段 GitLab CE 仍需安裝在 Linux 上。
  • 課前作業的 Linux,可以是 CentOS、Debian、RHEL、Ubuntu,可以是裸機,虛擬機,或雲端主機。
  • 過程中禁止使用 Omnibus 及 Docker 技術。
  •  
  • 請在 Quip 課程群組中,用自己的話,記錄你覺得從原始碼形式開始,一步步安裝整套 GitLab CE 系統的過程困難點,以及你期望 Docker 可能在哪些地方解決或舒緩這些困難

想在第一時間
收到本站快訊嗎?

OSS 大獎肯定

InfoWorld 2015 最佳雲端/資料中心軟體 (詳情)
opensource.com 2014 十大開源軟體 (詳情)

Why Ansible?

大廠背書

2015/10 被大廠 Red Hat 併購,據傳金額超過一億美金。

專家證言

「這些 (InfoWorld 2015) 好用的系統軟體,有時間多學一個,功力就多一分;學會如何綜合運用,境界就提升一級;懂得修改這些開源計畫來滿足應用需求,就能夠解決許多問題;有能力改良創新這些開源計畫,那就是炙手可熱的人物。」(台大資工洪士灝)

2017: 第八梯次
4/09 (日)

從實際案例一步步講解 refactor 中間的過程,並從中講解 Ansible 語法。
值得推薦其他人學習這種改進程式的思路及方法。

這門課讓我知道 Ansible 可以做到哪些事,我需要的資源可以上哪裡找,還有很詳盡的課程資料,對我的幫助其實很大,接下來如果我有時間把它們學好就好了...
覺得這門課上得頗值得,希望真的有朝一日能把它學好,然後得到一個健康的肝(雖然我正在凌晨一點打這篇心得文...)
(原文連結)

雖然用 Vagrant、Ansible 一段時間了,最近也開始在學習 Docker,但是透過講師介紹這些工具使用,還是有補足過去我知識的小漏洞。並且可以透過每一個 lab 的挑戰題,更加深入的了解 Ansible 的使用。包括 refactor/deployment 等,是我在上課前就想了解的議題。
(原文連結)

個人喜歡的地方:

  1. 整個課程的架構設計,包含課前、課中與課後的規劃。
  2. 線上課程與實體 workshop 兩邊交錯應用。
  3. 講者本身具備的豐富實戰經驗。
  4. 不只是教工具,其實有許多時間是花在講正確的架構觀念。

感想:

  1. 第一次看到設定檔也可以達到 idempotent 讓我太驚訝了!
  2. 案例都很實用,特別是 CI 的部份。
  3. 比傳統 bash 的方式設定環境,更具可讀性與管理性。
訂閱! ▷

課程特色:

  1. 從綜觀的角度介紹 DevOps 與 Ansible。
  2. Step by step 的實作練習 + 完成度超高的各式範例程式。許多術語、專有名詞在書上曾看過卻不甚了解,藉由一步步的實戰體會 Ansible 的優良設計。
  3. 分享 Ansible 實戰經驗、該怎麼避開地雷、進階使用及線上資源。

收穫:

  1. 取得成為 Ansible 工匠的捷徑和釣竿。
  2. 解除他人只需學會 Ansible 即可超越自己的迷思。
  3. 得到了一本有大師加持的 Ansible 實戰筆記。(笑)
(原文連結)

是的,這門課有課前作業!

電腦需求

課程需自備筆電。

請先在你的筆電上安裝 Docker Engine 1.12.0 (或以上) 的版本   ▷ 安裝說明及系統需求

為了操作順暢,至少請保留   2GB 的可用記憶體、10GB 的可用硬碟空間。