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
樂天的實踐經驗:
注重自動化測試。腳本等