今天這篇文章比較偏向一個範例操作,如何透過 Terraform 這種 Infrastructure as Code 的概念來管理 AWS 資源。
範例中使用到的資源是 ECS (Container Service),一個提供容器運行的服務平台。
一種最簡單的手動範例就是
1. 本地開發應用程式
2. 容器化本地應用程式
3. 找到一個 Container Image Repository 將 Container Image 給推上去
4. 手動創見相關 AWS 資源,譬如 ECS, LoadBalacner, Security Group (Firewall) 等資源
5. 部署該應用程式
本篇文章希望透過 Terraform 的方式將上述的 (3,4,5) 等過程都透過程式碼的方式來描述,這部份帶來的好處其實也是 IaC 所闡述的價值,不論是可以透過 code review 的方式來分享與確保每次變動的品質,對於環境複製等都可以更為快速且品質相當,減少那些不被記錄的人為修改。
註: 我個人認為這類型文章偏向入門,對於還不熟悉 Terraform 的人可以有一個快速的導覽,大概知道 Terraform 可以做到什麼樣的東西
https://medium.com/avmconsulting-blog/how-to-deploy-a-dockerised-node-js-application-on-aws-ecs-with-terraform-3e6bceb48785
aws node js 在 軟體開發學習資訊分享 Facebook 的精選貼文
--課程已於 2020 年 10 月更新 --
如果你厭倦了學習如何部署 Web 應用程式,這是你的課程。
這是你夢想中學習如何部署任何網路應用程式的終極課程。 和 Kubernetes 是 Dev Ops 世界中最新的技術,並且戲劇性地改變了 Web 應用程式的建立和部署流程。 Docker是一種允許應用程式執行在稱為容器結構中的技術,而 Kubernetes 允許許多不同的容器進行協調執行。
✅ Docker 從頭開始學習!
在這門課程中,你將從絕對的基本知識中學習 Docker,從學習諸如”什麼是容器?”這樣的基本問題的答案開始 和”集裝箱是如何運作的?” . 從最開始的幾次演講開始,我們將深入研究集裝箱的內部運作,這樣你就可以核心理解它們是如何被實現的。 一旦你瞭解了什麼是容器,你就會學習如何使用基本的 Docker CLI 命令來處理它們。 在這之後,你將應用你對 Docker CLI 的新發現的掌握,來建構自己的自定義映像檔,有效地’Dockerizing’ 你自己的個人應用程式。
✅ CI + CD 管道
當然,如果沒有對持續整合和持續部署模式的全面理解,Docker 上的課程就不會完整。 你將學習如何使用 Github,Travis CI 和 Amazon Web Services 來實現一個完整的 CI + CD 工作流程,建立一個每次向 Github 推送最新更改時自動部署程式碼的管道(pipeline)!
✅ 多容器在 AWS 上的部署!
在構建一個部署管道之後,你將在 Amazon 網路服務上應用它來管理單個容器和多容器部署。 你將使用 Node、 React、 Redis 和 Postgres 建構一個多容器應用程式,看看容器在執行中的神奇力量(注意: 本課程中的所有 Javascript 程式碼都是可選的,如果不想編寫 JS,則提供完整的原始碼)。
✅ Kubernetes!
最後,你將處理 Kubernetes,這是一個用於管理多個不同執行容器的複雜應用程式的營運等級系統。 你將學習建構 Kubernetes 叢集的正確方法——這門課程沒有那些令人討厭的”不要在生產環境中這樣做”的評論! 你將首先在本地機器上建構一個 Kubernetes 叢集,然後最終將其移植到雲端提供程式。 你甚至可以學習如何在 Kubernetes 上設定 HTTPS,這可比聽起來難多了!
下面就是你要做的:
1. 從零開始學習 Docker,不需要以前的經驗
2. 根據你的應用程式建立自己的自定義映像檔
3. 掌握 Docker CLI 來檢查和除錯執行的容器
4. 瞭解 Docker 是如何在幕後工作的,以及集裝箱(容器)是什麼
5. 使用 Github,Travis CI 和 AWS 一起從頭開始構建 CI + CD 管道
6. 當程式碼被推送到 Github 時自動部署它!
7. 從頭開始建構一個複雜的多容器應用程式並將其部署到 AWS
8. 瞭解 Kubernetes 的用途和理論
9 .將一個可營運的 Kubernetes 群集部署到 Google Cloud 中
https://softnshare.com/docker-and-kubernetes-the-complete-guide/
aws node js 在 軟體開發學習資訊分享 Facebook 的精選貼文
--課程已於 2020 年 1 月更新--
如果你厭倦了學習如何部署 Web 應用程式,這是你的課程。
Docker 從頭開始學習!
在這門課程中,你將從絕對的基本知識中學習 Docker,從學習諸如”什麼是容器?”這樣的基本問題的答案開始 和”集裝箱是如何運作的?” . 從最開始的幾次演講開始,我們將深入研究集裝箱的內部運作,這樣你就可以核心理解它們是如何被實現的。 一旦你瞭解了什麼是容器,你就會學習如何使用基本的 Docker CLI 命令來處理它們。 在這之後,你將應用你對 Docker CLI 的新發現的掌握,來建構自己的自定義映像檔,有效地’Dockerizing’ 你自己的個人應用程式。
Ci + CD 管線
當然,如果沒有對持續整合和持續部署模式的全面理解,Docker 上的課程就不會完整。 你將學習如何使用 Github,Travis CI 和 Amazon Web Services 來實現一個完整的 CI + CD 工作流程,建立一個每次向 Github 推送最新更改時自動部署程式碼的管線(pipeline)!
多容器在 AWS 上的部署!
在建構一個部署管道之後,你將在 Amazon 網路服務上應用它來管理單個容器和多容器部署。 你將使用 Node、 React、 Redis 和 Postgres 建構一個多容器應用程式,看看容器在執行中的神奇力量(注意: 本課程中的所有 Javascript 程式碼都是可選的,如果不想編寫 JS,則提供完整的原始碼)。
Kubernetes!
最後,你將處理 Kubernetes,這是一個用於管理多個不同執行容器的複雜應用程式的生產級系統。 你將學習建構 Kubernetes 叢集的正確方法——這門課程沒有那些令人討厭的”不要在生產環境中這樣做”的評論! 你將首先在本地機器上建構一個 Kubernetes 叢集,然後最終將其移植到雲端提供程式。 你甚至可以學習如何在 Kubernetes 上設定 HTTPS,這可比聽起來難多了!
https://softnshare.com/docker-and-kubernetes-the-complete-guide/