1. LCOW Labs: Linux Container On Windows

    繼上次颱風天介紹的 Mixed-OS Docker Swarm 之後,適逢中秋節,那就再來一篇吧!

    Microsoft 的 LCOW (Linux Container On Windows, 以下簡稱 LCOW) 推出後,Windows + Linux 的整合程度就更進一步了。Microsoft 願意這樣破釜沉舟的整合 Linux + Windows, 看來是下了很大的決心啊! 又進一步的讓 Windows 跟 Linux 的界線越來越模糊了。這是是在 Windows Container 的架構下,用原本就支援的 Hyper-V Container (簡單的說,為特定的 Container 準備一個獨立的 VM + 一套精簡的 OS,只為了執行 Container 使用的 OS 環境,來運行 Container), 進一步把裡面的 OS 從 NanoServer 換成 Linux Kit (或是 Ubuntu 也行), 讓 Windows Container 得到原生執行 Linux Container 的能力。

    2017/10/04 Docker Windows Container LCOW LABS

  2. 架構師觀點: 你需要什麼樣的 CI / CD ?

    圖片出處: https://blog.infostretch.com/39-tools-for-building-your-cicd-stack/

    這篇沒有要分享太多太硬的東西,或是太燒腦的架構文章,單純分享一下最近我協助團隊導入版控,以及 CI/CD 的想法而已。我一直覺得台灣 (還是世界各地都一樣?) 的軟體開發團隊存在這種 “工具控”、”框架控”、或是 “技術控” 的想法;選用跟得上潮流的技術,比什麼都重要。重要到這些技術或是框架本身到底是想解決什麼問題都不重要了,只要我用了最新的框架就是潮…

    CI/CD, DevOps, SCRUM, Microservices, Containers 等等也是現在熱門的關鍵字,看過我前面文章的朋友大概都知道,我是很反對不知道這些技術是在幹嘛之前就一窩蜂的投入。最近在協助團隊從無到有建立起版控機制與 CI/CD 的過程有感,於是就寫了這一篇…

    不過在開始進入正題之前,先讓我發發牢騷 XDD

    2017/08/05 系列文章: 架構師觀點 架構師 CI CD DevOps 軟體工程 開發流程

  3. Azure Labs: Mixed-OS Docker Swarm

    接下來就玩大一點,前一篇都講到,既然將來 container 會是 software 統一的發行途徑了, 那麼只有 windows 怎麼夠用? 延續前面的 labs environment, 我們就接著把 linux 加進來吧~

    其實,去年在寫這篇 架構師觀點: .NET 開發人員該如何看待 Open Source Solutions? 的文章時,我就有這個想法了。文內提到 stackoverflow.com 的架構, 採用個別 domain 最好的 solution, 而不是先被某個 os 或是 framework 限制住選擇。因此 stackoverflow.com 選擇了一個混搭 windows + linux 的架構。

    這類架構,在過去的開發環境內,真的是來折磨開發人員的。開發不外乎要建立測試環境,想想看你有辦法很容易地在你的 PC 建立一個同樣的 架構嗎? Sure.. 弄個 VM 當然沒問題,只是要讓每個人都能很快地架起來,他的門檻實在不低啊,再加上裡面的服務都要 update to date, 就更 吃團隊的開發流程與 CI/CD 是否確實了。如果你的環境都已經容器化, 那剩下的就是找個能同時丟 linux 及 windows container 進去執行的環境了。

    這願景已經可以實現一半了 :D,較正式的部署 (例如開發團隊共用的 DEV environment, 或是 Production environment), 可以建立一個 Mixed-OS docker swarm, 也就是本篇 labs 要介紹的。另一個就是等 Microsoft 在今年 dockercon 2017 宣布的下一個年度更新 Microsoft to allow Linux containers to run on Windows Server 釋出之後,你就 可以在自己的開發機,用 docker-compose 一次就把整個開發環境建立起來,不論背後是跑 windows or linux。

    不論如何,這一切都是以 container 為核心架構的,現在投資這技術永遠不嫌晚,看下去就對了!

    2017/07/25 Docker Windows Container Swarm

  4. Azure Labs: Windows Container Swarm

    Azure 上面的 container 相關服務越來越完整了, 完整到我都快找不到理由自己架設了 @@, 從 registry 有 Azure Container Registry 可以,Orchestration 有 Azure Container Service 可用之外 (支援 swarm, dc/os, kubernetes), WebAPP 也開始支援直接部署 container,加上前兩天 preview 的 Azure Container Instance (把 container 當作超高效率的 vm 看待會比較好懂, 你自己準備 image 就可以丟上去跑)…

    不過 windows container 的支援總是慢半拍啊.. (敲碗), 加上我有些 Scenario 不得不再 intranet 架設這些環境, 因此還是硬著頭皮花了點時間研究 windows container + swarm mode.. 大部分的文章都是跟你講 linux container, 針對 windows container 的沒幾篇,中文的就更不用講了,我只好野人獻曝的貢獻這篇..

    這篇交代兩個部分: 一是 windows container + swarm mode 的部署經驗。為了強調重點在於 swarm mode 的運用, 我選擇在 Azure 上面建置, 可以省去很多 OS 安裝設定的問題。另一部分就是 windows container 總是慢半拍, 先期導入的人 (對,就是我) 總是有些地雷要踩,後半部就是 分享一些目前還有陷阱的地方,讓現在就需要使用 windows container 的朋友們可以少走一點冤枉路。

    其實這些服務,花個兩分鐘填一下資料,ACS (Azure Container Services) 就通通幫你搞定了啊,不過 ACS 對 windows container 的支援還在 preview, 我只好自己來土炮了。不過得力於 Azure 實在太方便,其實自己土炮一個 Windows Container Swarm Mode 的 Cluster 也只是五分鐘的事情啊! 要等下一篇文章出來再寫,大概又是一個月過去了,於是我就順手先把這篇紀錄一下,想在 Azure 上面體驗 Windows Container Cluster 的可以先參考這篇~

    2017/07/25 Docker Windows Container Swarm

  5. 架構師觀點 - 轉移到微服務架構的經驗分享 (Part 3)

    前面兩篇,分別介紹了微服務架構的規劃方向,還有實際切割的案例探討。這篇 (Part 3) 的重點就要擺在微服務到底該在甚麼樣的基礎建設上面 運行? 維運過去單體式架構的 application, 所需要的基礎建設,會跟微服務架構下可能會有數十個 service instances 同時執行,甚至上百個 service instances 一樣嗎?

    我只能說,考量完全不一樣!! 微服務架構簡化了服務本身的複雜度 (每個服務變小了,責任也變單一),但是整體的 application 並沒有變簡單啊, 因此複雜度都轉移到服務與服務之間。因此要能妥善管理及維護好眾多的服務 instances 能彼此順利的合作,是個不小的挑戰。這邊最主要的關鍵, 就在於底層的基礎建設了! 這篇就花點篇幅來聊聊這個部分: 微服務架構的基礎建設與部署。

    2017/07/11 系列文章: .NET + Windows Container, 微服務架構設計 系列文章: 架構師觀點 microservice 系列文章 ASP.NET 架構師 infra message queue api gateway service discovery