我在家搭建了一套混合雲學習環境
概述
以下為個人學習環境搭建和多年積累經驗。
接觸軟體開發環境從大學到現在差不多10年這樣,這個過程不管是在自己學習的環境還有電腦等等都積累了大量的學習材料和資料,包括軟體安裝等大量的庫存,這些材料當前基本上目前的環境是無法滿足學習和進一步提升的要求點,考慮左右,綜合各個成本點,搭建一套可以滿足自己未來4年左右的學習環境。
整體闡述從以下思路進行闡述:
- 為什麼要搭建個人學習環境
- 學習環境需要搭建哪些東西
- 怎麼結合自動化運維來管理環境
- 這套環境搭建的成本是怎麼樣的
為什麼要搭建個人學習環境
這個是一個過程中多次遇到的痛苦,遷移,丟失,遷移,丟失 … 以前程式碼倉庫是放在阿里svn庫,但是它一停,就沒了 …
1、學習環境的限制
收費專案太多:
程式碼倉庫的會員收費,運維告警的會員收費,線上流程圖的收費,Git儲存會員升級的收費,網盤資料大小限制,下載收費等等多種收費專案太多,轉移過多次,成本太高;
資料長期的沉澱:
平時學習的專案,指令碼,程式碼很多,這些一記錄久了就慢慢變成一套東西,每一個技術的學習就會有一個例子,深入學習這個例子又豐富,還有各種github倉庫的學習,修改還有筆記,10年下來,這些資料已經有上百個git倉庫,十幾G的專案程式碼,mysql資料庫就有上百個,有些指令碼也找不到了;
網路速度的限制:
自己驗證安裝過的軟體庫,也有近上百個,哪個可以使用,哪個不可以使用,另一個是下載的限制,每次下載大的軟體都需要開通會員,速度極慢,影響學習環境和心情;
開發環境的限制:
我需要執行學習的專案,需要收集他們在網路執行的資料,需要計算大資料,需要利用大資料進行一些分析學習,開始阿里雲,aws,oracle cloud等等免費的,但是發現這些限制只要想多加一點東西,硬碟就說不行,費用就需要新增,開始也不斷的加,開始1k、2k、3k … 整合下來,一年的成本就是基本上過萬了,過了兩三年,這些伺服器就不可用,資料又需要重新遷移,每次遷移的週期成本極高;
2、個人多年學習管理的丟失
過程筆記的丟失:
以前使用163部落格,lofter部落格等這些網路工具,後面印象筆記,再到有道筆記,最後發現這些筆記限制性大,另一個是部落格的關閉,另一個是個性化的要求無法滿足,最後使用了wordpress部落格,一使用就是近乎8~9年,儲存了我很多的歷史筆記和記錄,包括一些心得點,但是場景不能滿足,比如在跟開源團隊討論會議的時候,做的筆記記錄,又是放在gitee或者github上面,久了,不維護之後,原來的記錄又很難找到。
成長管理計劃的丟失:
每年事情都會有一個計劃,自己每學習一樣東西或者跟別人溝通的時候,都會有計劃和圖形規劃,存在著大量的草圖和自我管理過程,開始使用的是筆記本畫草圖,另一個是使用visio,再到其它的畫圖工具,然後計劃使用gitbook和markdown,再到docsify等工具,最後再到vuepress,管理工具也由禪道、jira都使用,這些自己過程和記錄,筆記本有可能丟失或者換一本就沒有了,原來考慮過iPad,但是效果也不理想。另一個是電腦格式化,或者每3~5年一換,資料都有損失,大量的xmind導圖不再找到。
個人時間的無形流失:
不管是資料還有環境,還有網路,還有各種切換過程中,學習材料 的流失,每次都需要重新再做一次,做的速度可能會更快了,但是無形之中,時間的流失,比如每切換一個電腦需要至少7天的環境適配,資料適配,每遷移一次資料環境,至少需要3天的匯入匯出,還有驗證是否正常,每一次筆記的遷移,至少需要2~3天的遷移,包括圖片,材料還有環境的準備等,而且這個過程,需要使用的服務,又需要重新的付費,這些週期整合下來,個人時間在無形當中消耗,同步還有初始過程的時間等。
個人學習需要搭建哪些東西
以前是ssh(ssm),再後來是devops,再到後來是微服務,中臺,物聯網,大資料AI .. 技術不斷提高要求,傳統的程式設計已經很難了
1、規劃我的學習目標
在當前數字化、中臺、物聯網等,還有人工智慧成熟的情況下,其它的AR,元宇宙等在不斷的研發下,會不會下一個5年的突破,不知道,但是後面肯定又會有新的革新技術。搭建的環境為了數字化下的沉澱,包括主要以下幾個點:
- 建立技術/研發/業務中臺與業務
- 建立資料中心和大資料計算分析
- 建立物聯網服務進行物聯網互聯
同步也會結合機器學習和人工智慧場景,但是這個是在上面的環境進行,自己這裡定義,機器學習屬於大資料場景,人工智慧屬於業務中臺場景。
2、伺服器資源環境規劃
這裡規劃的資源相對比較多,同時由於個人原因,分幾個角度考慮,採購雲伺服器至少3年以上伺服器,長久的雲伺服器至少10年以上,域名大概是10年以上,硬體伺服器至少可用5年以上,需要儲存的長久的資料和短期的資料就比較明確,同步是備份伺服器分多地和穩定雲盤,確保資料的不丟失,採購的整體計算資源:
CPU40核 500多G記憶體 10TB的算力和資源阿里雲伺服器、塔式伺服器、MacPro等
規劃了幾個區域如下:
- 個人區:個人使用的
- 網路區(中轉區):方便公網的訪問使用
- 內網區(安全區):方便資料儲存和重要資源
- 備份區(安全區):資料儲存和恢復
個人區:
主要針對的是自己個人PC使用的,還有行動網路等便利的情況下使用
網路區:
主要是針對於公網部分的應用和資料,方便自己隨時訪問,比如放部落格,放一些公共的環境元素,追求訪問的速度
阿里雲伺服器是剛好21年雙11活動採購的,相對比較划算
內網區:
內網區的建設主要針對於大資料儲存使用,外網的磁碟和資源採購費用高,所以規劃在內網區,追求穩定性
備份區:
這部分主要利用公網第三方雲平臺,進行的資料備份和管理,或者分享等,比如github、網盤、海外區域等
PaaS平臺環境規劃和搭建
主要是包括所有的管理過程,整合成一套體系,方便自己的工具管理整合起來,同時整合自動化部署操作,便於後期自動遷移
研發過程管理
容器雲環境規劃(公網)
基礎環境規劃
自動化環境規劃
大資料環境
個人的基礎研發框架搭建
這裡整合了很多內容,主要是結合自己的gitee和github學習基線來整合起來的,同時整合成一套東西,在上面建設業務系統,快速搭建成一套東西。
基礎研發架構:包含有微服務、通用功能服務,通用開發文件,常用的業務元件,開發元件等,基礎這層做研發,快速整合自己想要的功能。
搭建起來的效果,後期專案基於研發框架學習和開發,整合資料分析:
基礎研發框架規劃
怎麼結合自動化運維來管理環境
一個人的管理,主要是結合自動化,達到發現問題,處理問題兩個角度。
1、自動化運維的管理和規劃
整個自動化的管理和通知,需要結合很多東西,整體環境怎麼自動化操作和管理,這裡主要是結合監控-巡檢-預警-通知幾個序列,監控從伺服器-應用-日誌-安全幾個維度監控,應用互動(chatops/通知)從移動端來進行管理,畢竟一個人管理這些環境,沒有工具是很難去整合管理的,自動化操作主要是整合jenkins和自研應用來進行管理。
2、自動化運維部署和搭建
運維管理平臺
3、ChatOps自動化管理規劃
整體收集大量的應用監控預警通知,通過監控通知整合,與dingtalk整合互動,形成有問題可發現,可處理,自動化,移動化的一體系。
整體結合釘釘進行ChatOps的自動化運維監控,通過自定義開發的webhook工具,進行處理操作,比如jenkins自動重啟,自動巡檢等,類似於現在的智慧客服概念:
這套環境搭建的成本是多少
這個根據個人的情況來定,這裡主要是結合自身的基礎情況和評估來看,針對於這個成本來說,自己主要考慮的是時間成本,對自己而言時間是最大的成本點。
1、環境的採購費用
這裡主要針對於個人和價效比考慮,這裡不包括企業的,以下年限為一般生命週期多少年,這裡只是做評估:
2、投入和產出的比
這裡主要按普通研發人員的角度考慮,假設一天中,因為開發,筆記本快慢,工具便利速度,資料檢視效率等,每天節省1.5個小時換算,按4年週期時間,則可節省90天左右。
按天收益角度考慮,假設天收益在1500~2500左右,則可節省13萬~22萬左右,而其它的個人提升另為算,所以整體來說,投入和產出比相對是比較高的。
總結
以上是自己搭建個人學習環境的情況和思路
關注我的公眾號進行更多架構交流
軟體工程師羅小東