iT邦幫忙

0

Apollo - 可靠的分散式系统設定管理

  • 分享至 

  • xImage
  •  

前言

隨著年資的增加,身為一個軟體工程師一定會碰到系統越來越大的問題
從單一站點的虛擬機,到後來使用 k8s 建立大規模集群
目的就是為了解決日漸增加的流量,以及解決佈署上的各種問題
但不論建立了何種程度的集群(Cluster)依舊需要管理集群及 App 的設定檔
而 Apollo 就是為了管理分散式系統所產生的設定管理系統

介紹

Apollo

Apollo 的文件撰寫的相當完整,使用起來也非常簡單,在參考有附上連結
所以這邊只會記錄我覺得 Apollo 的優缺點總結
官方有架設測試站讓你使用,就讓你輕鬆玩一下不用自己架
老實說對於只想找解決方案然後做個記錄或練習的人蠻省事的

參考自官方文件
演示环境(Demo):
http://81.68.181.139
账号/密码:apollo/admin

為什麼要用 Apollo ?

Apollo 在設計時有考量到要降低對外部環境依賴,主要以獨立性作為考量
所以 Apollo 在部署時僅需要 JAVA 執行環境 + MySQL,或是使用 Docker 就可以運行,非常簡單

加上考慮以前在開發上的痛點:

  1. 以往在做開發或是集群設定的時候,都會被部門主管握住一份神祕的config.json然後這份文件就像是邪教儀式一樣需要偷偷摸摸,傳來傳去還很麻煩
  2. 而雖然說在 AWS 上也有針對設定檔做的服務,例如 Secret Manager,但根據公司政策的不同,願意而且需要自架設定檔管理服務的公司也不少見
  3. 當在不同的環境下設定時,如果你有1000個環境,都用手動上傳設定檔的方式管理,而且這些設定檔都有些細微變化的時候,到時候可能要睡公司

這時候就可以把 Apollo 作為獨立的服務拆分出來,並且可以佈署多台 Apollo 伺服器確保可用性

https://ithelp.ithome.com.tw/upload/images/20230714/20118878JgJKxFvrTK.jpg

支援語言

  • JAVA
  • .NET
  • Go
  • Python
  • NodeJS
  • PHP
  • C
  • Rust

優缺點

優點

優點在 features 都羅列出來了,這邊只會標記我覺得重要的

  1. 權限管理
  2. 灰度佈署(金絲雀佈署)
  3. 版本控制
  4. Rollback

缺點

  1. Apollo 本身不自帶加解密功能,需要另外處理敏感設定,Apollo 本身只有密鑰來決定能不能訪問敏感設定

參考


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言