hcloud:雲平台開發經驗。雲平台中的devops,開發者工具的開發經驗
自己搭建jenkins,通過jenkins執行pipeline,內建建構,代碼檢查,部署,自動化測試,藍綠部署等。
其中的建構是通過shell腳本實作。
代碼檢查內建了啥東東?忘了研究了。
部署,底層封裝一個ansible,通過ansible部署多台主機。
自動化測試,封裝了selenium,robotframwork。
藍綠部署是通過修改keepalive的配置檔案實作的。應該還有個東東,啥來着?nginx?還有啥來着?一段時間不搞就他娘的忘得差不多了……
代碼管理:github???沒确認過。代碼review使用的是sourcelight?忘了,eclipse內建的一個東東。
項目管理/task管理等:jira??
資訊管理:wiki
日志管理?
美資企業的生産案例:
核心是通過jenkins UI,建立pipeline來實作。所有的環節都內建在jenkins的job裡
伺服器:服務部署于公司自己的伺服器,
項目管理/task管理等:內建jira和confluence,fisheye等。workpackage下建立tasks,task下建立sub-task。sourcetree中送出代碼時關聯task号即可在對應的task上出現commit,在commit上即可直接送出review請求。
jenkins的實作:前期是jenkins作為一個service部署于AWS的一個ECS上,具體搭建方式見jenkins最佳實踐。現在是遷移到gcp上,jenkins作為一個服務部署于k8s上,然後在jenkins上配置gcp的pod template以便可以在jenkinsfile内調用該pod作為node。
網絡,至于aws到gcp的互動,采用VPN的方式。搭建一個VPN通道。
檔案持久化通過efs實作。
存儲:aws上是s3,gcp上是storage。鏡像存儲,aws是在ecr,gcp上是才gcr(container registry)。
代碼管理:之前是自己 搭建git server,後期轉成了github。使用的ui是gitkraken的一個東東。用于拉代碼,提代碼,等等。不怎麼操作指令行
權限,LDAP,azure,aws的iam以及gcp的service來控制
建構:freesyle是使用shell腳本,gradle等;piepline是通過artifactory-gradle插件及指令,具體見jenkins中的artifactory-gradle插件。
部署:docker部署,從artifactory拉取代碼包,然後通過docker指令把服務打成鏡像并上傳至artifactory内,并同時部署到主機上去。
測試:內建gauge,一個gauge pod
部署暫未實作藍綠部署,終端業務型的部署。
還有一種部署模式,是使用ansible遠端執行的。
資訊管理:confluence
代碼檢查:blackduck等
日志:sumologic,gcp上的stackdriver
樂天的實踐經驗:
注重自動化測試。腳本等