使用 Go 建立高可用性、可擴展且有彈性的分散式應用程式
從這 11.5 小時的課程,你會學到
- 了解什麼是微服務以及何時使用它們
- 如何開發鬆散耦合、單一用途的應用程式,使它們能夠作為分散式應用程式協同工作
- 如何使用 JSON、遠端過程呼叫和 gRPC 在服務之間進行通信
- 如何使用 RabbitMQ 透過高階訊息佇列協定 (Advanced Message Queuing Protocol,AMQP) 將事件推送到微服務
- 如何將分散式應用程式部署到 Docker Swarm
- 如何將分散式應用程式部署到 Kubernetes Cluster (叢集)
要求
- 對 Go 程式語言的基本了解
- 一台連接到網際網路的 Macintosh、Windows 或 Linux 電腦
課程說明
長期以來,Web 應用程式通常都是處理所有事務的單一應用程序,換句話說,就是單片應用程式( monolithic application )。這個整體式程式處理使用者驗證、登入、傳送電子郵件以及所有其他一切事務。雖然這仍然是一種流行(且有用)的方法,但今天,許多較大規模的應用程式傾向於將其分解為微服務。如今,大多數大型組織都專注於使用這種方法建立 Web 應用程序,這是有充分理由的。
微服務,也稱為微服務架構,是一種將應用程式建構成鬆散耦合的較小應用程式集合的架構風格。微服務架構允許快速可靠地交付大型複雜應用程式。微服務的一些最常見的特性包括:
- 它是可維護和可測試的;
- 它與應用程式的其他部分鬆散耦合;
- 可自行部署;
- 它是圍繞著業務能力來組織的;
- 它通常由一個小團隊擁有。
在本課程中,我們將開發一些小型、獨立、鬆散耦合的微服務,這些微服務將透過 REST API、RPC、gRPC 相互通信並與簡單的前端應用程式進行通信,並使用 AMQP(高級訊息佇列協定)發送和使用訊息。我們建構的微服務將包括以下功能:
- 前端服務,僅顯示網頁;
- 一個身份驗證服務,帶有一個 Postgres 資料庫;
- 日誌服務,帶有 MongoDB 資料庫;
- 監聽器服務,接收來自 RabbitMQ 的訊息並對其採取行動;
- Broker 服務,是進入微服務叢集的可選單點入口;
- 郵件服務,接收 JSON 負載,轉換為已格式化的電子郵件,然後發送出去。
所有這些服務都將以 Go(通常稱為 Golang)編寫,這種語言特別適合建立分散式 Web 應用程式。
我們還將學習如何將分散式應用程式部署到 Docker Swarm 和 Kubernetes,以及如何根據需要擴大和縮小規模,以及如何在很少或沒有停機時間的情況下更新各個微服務。
目標受眾
- 曾經使用過單體應用並希望學習如何使用微服務的 Go 開發人員
講師簡介
Trevor Sawler Ph.D
我有二十年的專業軟體開發經驗,也有二十年的大學教授經驗。
身為一名企業家,我曾與許多客戶合作過,包括湯姆森尼爾森、惠普、加拿大皇家銀行、Keybank、Sprint 等。我還擁有豐富的管理和專案管理經驗。我曾領導由 50 名開發人員和藝術家組成的團隊完成價值數百萬美元的專案,也曾領導過規模小得多的團隊完成規模小得多的專案。
作為一名教授,我教授過各種各樣的課程領域,包括電腦科學、英語、愛爾蘭語和美國文學,以及一些連接文科和技術領域的「交叉」課程。
我曾因在 IT 領域的工作而獲得地區、國家和國際獎項,也曾因擔任大學教授的教學和研究而獲得獎項。
字幕:簡中、英文
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
- Udemy 永久擁有課程 許多課程約 NT400(點擊連結看更多)
- ✨年訂閱每月 NT350(再享特別優惠:年度訂閱首年享 25% 折扣) 🌈 悠遊 Udemy 的 26000+ 門課,最大化學習 ( 原價 NT635/月 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程

也許你會有興趣
- 更多 Go 相關線上課程介紹
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!
你必須登入才能發表留言。