匹茲堡與克里夫蘭的 Docker 顧問與支援
KawaConnect 協助賓州匹茲堡與俄亥俄州東北部克里夫蘭地區的企業,使用 Docker 與 Docker Compose 封裝、部署並維護應用程式。我們建置部署環境、代理伺服器、備份與更新流程,並提供後續支援。
聊聊您的應用程式 Linux 與 Kubernetes
此服務使用的平台
我們用 Docker 做什麼
我們先封裝應用程式,再圍繞它建置正式環境部署所需的一切。
應用程式容器化
我們將您的應用程式及其相依項目封裝成映像檔,每次建置的結果都相同。
Docker Compose 部署
Compose 檔案會描述服務、網路與儲存區,讓整個應用程式能作為一個單元啟動與重新啟動。
反向代理與 TLS
為多個應用程式提供單一入口,並自動核發與更新 HTTPS 憑證。
登錄庫與 CI 建置
私有的映像檔登錄庫,以及在每次變更時建置、標記並發佈映像檔的 GitLab CI 管線。
儲存區備份
將持久性資料備份到異地,並進行測試還原。
安全性更新
依排程重建基礎映像檔並為主機打補丁,同時保留回復途徑。
將應用程式容器化
在將應用程式容器化之前,我們會先弄清楚它讀取什麼、寫入什麼、使用哪些連接埠,以及啟動時需要什麼。程式碼與執行環境是可拋棄的,資料庫與上傳的檔案則必須持久保存,因此會放入具名儲存區或繫結掛載中,絕不放在容器內部。
資料庫密碼這類機密資訊不會放進映像檔或版本控制中,而是在容器啟動時提供給它。
用於企業應用程式的 Docker Compose
對於單一主機,Docker Compose 通常是合適的工具。單一檔案就能定義應用程式、其資料庫與快取,並以一個指令啟動全部服務。
- 反向代理與 TLS:代理伺服器負責終止 HTTPS、依主機名稱路由並更新憑證,因此應用程式不會直接暴露。
- 重新啟動行為:重新啟動原則與健康檢查會在當機或重新開機後讓服務恢復運作。
- 監控:可用性檢查與記錄會送入與您其他系統相同的儀表板。
映像檔登錄庫與 CI 建置
在筆記型電腦上建置映像檔再複製到伺服器的做法,無法超出一個人的規模。我們會建立私有登錄庫與 GitLab CI 管線,在程式碼變更時建置映像檔、標上版本並發佈。部署時再拉取已知且有標記的映像檔,要回復時只需指向前一個標記。
備份與安全性更新
容器是可拋棄的,但它們的儲存區不是。我們依排程備份儲存區與資料庫、將副本送到異地,並進行測試還原。對於資料庫容器,我們使用資料庫本身的傾印或備份方法,而不是從運行中的服務複製檔案。請參閱我們的備份與災難復原服務。
安全性更新分為兩個層面。主機作業系統需要修補,而當基礎映像檔或函式庫修正了問題時,映像檔也需要重建。我們會為兩者排程、測試結果,並保留前一個版本可用。Docker 主機通常以虛擬機器的形式運行於 Proxmox 上。
何時該轉向 Kubernetes
Docker Compose 運行於單一主機。當失去該主機已無法接受,或您需要將服務分散到多部機器、在不停機的情況下更新,並在機器故障時於別處重新啟動時,請考慮 Kubernetes。叢集需要更多維運工作,因此我們只在您確實需要這些能力時才建議採用。到那時,我們會將工作負載遷移到 Linux 與 Kubernetes 顧問服務所述的叢集上。
合作流程
- 初步諮詢通話。我們了解應用程式的功能與運行位置。
- 書面工作範圍。涵蓋容器、代理伺服器、備份與更新的計畫。
- 建置與交付。我們部署、測試還原,並記錄維運方式。
- 長期支援。可自由選擇,由指定的工程師負責。
我們會在一個工作日內回覆。我們的辦公室位於賓州的 Coraopolis 與 Beaver Falls,克里夫蘭地區的現場工作則配合專案安排。
關於 Docker 支援的常見問題
Docker Compose 足以用於正式環境嗎?
對許多單一主機上的企業應用程式而言,足夠,前提是您有備份、監控與修補流程。它不提供跨主機的容錯移轉。
你們能將不是我們自己撰寫的軟體容器化嗎?
通常可以。許多應用程式都有發佈容器映像檔,我們會負責設定並備份。對於自訂軟體,我們會自行封裝,或與您的開發人員合作。
你們能接手別人架設的 Docker 伺服器嗎?
可以。在變更任何東西之前,我們會先盤點容器、儲存區與憑證,檢查備份,並將發現的內容記錄下來。
適合對象
- 將應用程式放在一部難以重建或更新的伺服器上運行的企業
- 希望獲得可重複的部署,以及受追蹤、有版本的設定的團隊
- 以自行架設的開放原始碼工具取代按使用者計費軟體的公司
- 需要映像檔建置與登錄庫的開發團隊
相關指南
來自我們知識庫的淺顯說明。