Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

容器驅動開發 - .NET Conf 2017 @ 台中

357 views

Published on

.NET 開發人員一定要知道的容器技術

Published in: Software
  • Be the first to comment

容器驅動開發 - .NET Conf 2017 @ 台中

  1. 1. .NET Conf Learn. Imagine. Build. .NET Conf 容器驅動開發 Container Driven Development. Andrew Wu
  2. 2. .NET Conf
  3. 3. .NET Conf IP2C.ReverseProxy IP2C.WebAPI IP2C.WebAPI IP2C.Worker Storage: IP2C_data IP2C Rest API Client IP2C SDK IP2C.org Download IP Database https://github.com/andrew0928/IP2C.NET.Service
  4. 4. .NET Conf 建立 IP2C solution 處理 IP 資料庫的 LIB 存取遠端 IP2C API 的 Client SDK 提供 IP2C API 的 Web Apps 到 IP2C.org 更新資料檔的 Worker 測試 IP2C.SDK, IP2C.NET 的單元測試案例
  5. 5. .NET Conf
  6. 6. .NET Conf #1. 容器化的封裝
  7. 7. .NET Conf Virtual Machine (Manual or powershell) 安裝 windows server 2016 安裝 IIS & 相關元件 COPY IP2C.WebAPI Configuration Container Image (define: dockerfile) Base Image: Microsoft/ASPNET:latest COPY IP2C.WebAPI (with default configuration) 直接定義 dockerfile, 可以根據別人已經定義好的 image 為 基礎,加上自己定義的 action 疊加上去 (layer)。要更新時 只需要重新 build image, 不需要重新安裝。 Container 內的環境已經受到控制,因此絕大部分的 設定資訊都可以直接定好。其餘可以靠 container engine 在部署時重新導向即可,包含 network, volume, env var.. windowsservercore image: https://hub.docker.com/r/microsoft/windowsservercore/tags/ 執行速度慢 (分鐘 ~ 小時等級) 難以自動化 (需要寫複雜的 script, 或是乾脆 人工操作) 執行速度快 (秒 ~ 分鐘等級) 自動化非常容易 (定義 dockerfile)
  8. 8. .NET Confwindowsservercore image: https://hub.docker.com/r/microsoft/windowsservercore/tags/
  9. 9. .NET Conf
  10. 10. .NET Conf
  11. 11. .NET Conf #2. 容器化的部署
  12. 12. .NET Conf
  13. 13. .NET Conf Windows Container IP2C.ReverseProxy IP2C.WebAPI IP2C.WebAPI IP2C.Worker Volume: IP2C_data IP2C.WebAPI 172.24.225.100 172.24.227.83 172.24.234.90 172.24.230.185
  14. 14. .NET Conf
  15. 15. .NET Conf
  16. 16. .NET Conf Windows Container IP2C.ReverseProxy IP2C.WebAPI IP2C.WebAPI IP2C.Worker Volume: IP2C_data Docker Registry NuGet Server IP2C.SDK IP2C.WebAPI IP2C.Worker
  17. 17. .NET Conf
  18. 18. .NET Conf
  19. 19. .NET Conf Continuous Delivery Continuous Deployment Continuous Integration BUILD SHIP RUN
  20. 20. .NET Conf #3. 不可變的伺服器 (Immutable Servers)
  21. 21. .NET Conf
  22. 22. .NET Conf 有多少是我們需要 的? (還不包括沒畫在架 構圖裡的一堆工具 跟服務…)
  23. 23. .NET Conf MY APPLICATION 如果一台 SERVER 只服務我的 APPLICATION.. 甚至是一百台 SERVER 只服務我的 APP … 我還需要這麼 “完整” 的 OS 嗎? APP 裝好就不需要改了,連遠端管理都省了.. 拿掉的服務越多,系統被攻擊的機會越少 (效率也越好) [思考] 如果 STORAGE / DB 只歸我用,且有專屬 連線,那還需要設定 “整合式驗證” 嗎? [思考] OS 存在的價值,除了 LAUNCH APP 之外 還剩什麼功能?
  24. 24. .NET Conf
  25. 25. .NET Confhttp://martinfowler.com/bliki/ImmutableServer.html "Change" 發生在 Production Environment ! MIS + DEV's Job MIS's Job ???'s Job ???'s Job DEV's Job (change code) DEV's Job (change code)
  26. 26. .NET Conf "Change" 發生在 Build Environment ! CI-Tool's Job MIS's Job DEV's Job (change code)
  27. 27. .NET Conf
  28. 28. .NET Conf
  29. 29. .NET Conf
  30. 30. .NET Confhttps://stefanscherer.github.io/keep-your-windows-containers-up-to-date/ 根本不用做 Windows Update, 直接換新的 Base Image 即可
  31. 31. .NET Conf V1.0 V1.1 V2.0 windows server core 10.0.14393.206 windows server core 10.0.14393.206 windows server core 10.0.14393.447 MyAPP 1.0 MyAPP 1.1 MyAPP 2.0 windows server core 10.0.14393.447 V1.1-OS447 改變 dockerfile 即 可升級 OS (用 hotfix 的流程) 改變 dockerfile, 即 可升級 OS
  32. 32. .NET Conf #4. 跨版本的單元測試
  33. 33. .NET Confhttps://blog.chmouel.com/2014/11/10/use-cases-for-docker-driven-development/
  34. 34. .NET Confhttp://columns.chicken-house.net/2016/10/31/microservice5/
  35. 35. .NET Conf 該怎麼測試 Load Balance 的組態? 該如何測試不同版本 API / SDK 的 相容性?
  36. 36. .NET Conf 舊版 新版
  37. 37. .NET Conf master V2.1.2.0 V3.0.0.0 V3.1.0 API TEST API TEST API TEST SDK SDK SDK API (server) 可以容器化 測試程式也可以!
  38. 38. .NET Conf
  39. 39. .NET Confhttps://blogs.microsoft.com/firehose/2017/04/18/dockercon-2017-linux-containers-will-run-natively-on-windows-serer-
  40. 40. .NET Conf
  41. 41. .NET Conf Windows Server 2016 Windows Server 2016 Linux Kit IP2C. Worker IP2C. WebAPI IP2C. WebAPI IP2C. RevProxy
  42. 42. .NET Conf http://columns.chicken-house.net/2017/07/25/wc-swarm-labs2/
  43. 43. .NET Conf WCS1 Service: WebAPI Service: ReverseProxy Service: Worker
  44. 44. .NET Conf WCS1 WCS2 WCS3 Network: Ingress LCS4 Service: WebAPI Service: ReverseProxy Service: Worker
  45. 45. .NET Confhttp://columns.chicken-house.net/2017/08/05/what-cicd-do-you-need/
  46. 46. .NET Conf Q & A
  47. 47. .NET Conf Package Once, Run Everywhere!
  48. 48. .NET Conf
  49. 49. .NET Conf www.facebook.com/andrew.blog.0928

×