遷移到Docker 讓飛輪轉起來

2021-07-14 11:46:27 字數 2103 閱讀 9636

發布於 2023年7月6日

決定將整個rightscale平台遷移到docker容器的確是乙個很大的工程。而且,tim miller團隊也預想到了實際執行可能會遇到的挑戰。他們想要將project sherpa作為乙個短期緊急專案進行執行,但是為了避免浪費時間和精力,他們需要乙個計畫來高效引導整個工程團隊使用docker。

在過去的18個月,他們已經從docker的實驗階段走到了在開發中使用docker以及發布了7個容器化的產品服務。一路走來,如何處理管理映象、輸入、監控和安全等挑戰也已經被了解到。此外,遷移第一批服務到docker和開發「2.0」版本的設計模式還給了很多教訓。

因此,他們決定在project sherpa中採用靈活的方法。於是,在真正開始容器化程序之前,分配了兩周時間進行準備。由於整個過程存在一定的風險會變得混亂,他們希望將這個過程盡可能的有效組織起來。

所有的工作從建立乙個sherpa的專案團隊開始。首先,rightscale已經有了可以幫助別人的docker專家以及領導研發團隊的架構師和專案管理經理。團隊召開了若干sherpa專案的規劃和啟動會,並設定了乙個每週的例會。此外,乙個專門用於該項目的slack通道也已經被開通。

儘管開發團隊仍然在進行正常工作,rightscale公司為每個開發團隊分配了乙個運維工程師在容器化的過程中進行幫忙。來自開發和運維的sherpa專案的docker專家也被作為流動資源,根據需要分配到不同的團隊進行幫忙,並保證設計決定的相容性。在sherpa專案之外,他們還分派若干開發人員繼續進行客戶所需要的特性的開發以及修復所需的一些問題。

一些曾參與早期docker工作的sherpa團隊的專家提出了rightscale公司自己版本的「docker聖經」。該文件最重要的方面就是,它提供了針對rightscale的一些方法、編寫了設計模型以及提供了rightscale適合完成的功能和特性。隨著專案的進行,該文件會根據需要實時進行修改。

目前,docker聖經所包含的內容列表如下:

命名乙個dockerfile/.dockerignore

除錯你的docker應用

將docker應用交付給運維

設計的考慮

容器就是程序

tl;dr——短的版本

詳細的分解

運維提供的東西

開發者提供的東西

在稱事情為「已完成」之前需要驗證的運維檢查列表

再次說明如何一起工作的?

連續整合和部署docker應用

我如何使能針對應用的ci/cd?

具體的解釋

建立docker編譯指令碼

並行化編譯

在準備期間,他們還在如何處理一些常見情況方面做出了選擇。這些情況就包括了如何在容器內執行cron任務以及如何命名、結構化和提供來自開發人員膝上型電腦中的各種輸入到模擬環境和生產環境。tim miller團隊非常清楚,隨著越來越深入了解這個過程,更多的常見情況會出現。他們會揭示並分享這些情況,使得團隊能夠保證方法的相容性。

他們還討論了技術負債和功能蔓延相關的問題。由於工程師們很容易就陷入到專案的海洋中很難自拔,他們劃定了乙個底線,以使得容器化可以作為近期的重點工作。然而,他們還是確定一些遷移到docker所必須的技術負債,並分配工程人員來解決。

tim miller團隊要求,一旦project sherpa啟動,所有的開發人員都要做好全力衝刺的準備。作為對docker新人的初始培訓,他們召開了兩次技術討論來介紹docker的基礎知識。此外,他們還給每個開發人員指定了「家庭作業」——建立自己的環境,並建立乙個「hello world」應用。這保證了每乙個人都可以正確建立環境,並在sherpa專案啟動時做好了準備。

sherpa專案團隊將52個應用/服務列在了內部的wiki上,並在每個上面標註了乙個大致的難度等級(從簡單到超級超級難)。大的專案團隊將每個服務分配給了乙個小團隊,以平衡小團隊之間的付出。一旦這些任務完成了,公司允許個別的開發小團隊進行自組織。幾乎在所有情況下,團隊都會有至少兩名開發人員來應對需要被容器化的服務。

正如其他專案一樣,決定專案的週期是需要一點技巧的。sherpa專案團隊希望給定的時間剛好夠完成容器化及解決哪些必須要應對的技術負債問題。因此,他們分配了3周時間來完成容器化工作,然後再利用1周的時間將所有內容整合起來,變成產品。為了到達「容器化完成」的里程碑,每個單獨的服務都必須要被容器化,通過了基於mini環境的所有的ci測試並交付給了運維準備進入模擬環境。

docker從C盤遷移到D盤

docker映象在c盤佔據大量的空間,將.docker從c users administrator遷移到e docker。一 關閉virtual box 使virtual box處於關閉 停止執行的狀態。二 剪下c盤下.docker 從c users administrator下找到.docker資...

svn遷移到git實踐

服務端用的是windows版gitblit,svn版本上的分支一律不保留 1 先登入gitblit管理頁面,建立倉庫 abc.com 2 在本地www目錄下用git bash執行 git svn clone no metadata abc 結束後www目錄下會多出乙個名為abc目錄,注意那個trun...

Oracle遷移到MySQL總結

日期 2012 06 01 字型 大中小 這兩個星期裡一直都在忙於一件事兒,就是oracle資料庫的遷移問題。沒有做的時候感覺這是一件十分輕鬆的事兒,可是等到實實在在去做去實現的時候,自己傻眼了。這種糾結啊,在這裡先說下遇到的問題 1。資料庫的表結構問題 資料型別不同需要解決varchar2 var...