Followme Devops实践之路
引言
天下武功,唯快不破
想要提高開發團隊效率,勢必要有一套完整而成熟的開發流程方案,除了sprint迭代開發模式之外,還有近幾年流行的devops流程,都是可以大幅度提高開發效率的工具. 我們團隊也不斷探索、實踐,最終形成了現有的一套體系,從最初的手動發布到現有的自動化,從起始的繁瑣易亂到當下的簡潔明了。我們希望將我們曾經踏過的腳印與大家一起分享,為各位展示一條 我們的devops 的實踐之路,同時也希望能為各位避免走入同樣的彎路提供些許幫助。
?
背景
我們是一個?.net(core)?/?go?/?nodejs?的多語言混合式開發團隊,致力于微服務架構。項目初期基于?.net framework, 開始并沒有準備做?devops,基于Windows的?gRPC 服務、ASP.NET?做持續部署還是比較麻煩(不管是停止遠程服務/更新二進制包/docker化流程都太重)。當我們全面擁抱.net core 2.0之后,其原生跨平臺的特性促成了我們的?CI/CD (continue integration/continue deployment)?之路。
?
發展歷程
1 原始階段/純人工管控
大家司空見慣的在開發機build,然后copy到服務器上,手工解壓更新,啟動服務!
這種方式效率太低, 質量也不敢保證, 沒有流程章法
2 Ansible + git
采用git來管理二進制發布包 ,可以有效的進行發布的粗略diff/特別是配置文件
采用ansible來管理服務器,大大減低了人肉成本
運維大量的重復性操作
3. devops?
Devops
為了實現開發自運維, 我們采用Jenkins +docker + portainer 三劍客, 來解決開發/運維/服務器/各自的問題
Docker
環境依賴, 例如 .net core runtime版本/ OS 版本, 再也不用讓運維提前準備環境了
資源限制, 例如有些服務存在內存泄漏/CPU問題, docker可以限制他的最大使用率, 確保同臺服務器上其他docker 服務可以正常使用
Portainer
Docker management UI
統一管理docker服務
Jenkins
Build source code
Build docker image ,ship
Auto deploy
架構如下 https://github.com/FollowmeTech/jenkins-cicd
功能
base on Jenkins
base on docker register hub
base on portainer management
依賴
docker registry [harbor]
portainer (docker management)
git-server
docker /docker-compose
體驗一下
為了方便大家快熟感受, 我搭建了一個play環境
大家可以向?https://github.com/FollowmeTech/jenkins-cicd-practise?提交代碼
再登陸?https://ci.rileme.club?,選擇相應的分支進行build發布 (play/123456)
項目發布完成, 快熟預覽效果?http://demo.rileme.club
部署使用
廣告時間
Hi, 是的,我們在招聘 , 詳情如下
https://github.com/FollowmeTech/hire/blob/master/dotnet.md
你是想一輩子賣糖水, 還是再折騰折騰
Think about it
相關文章:
樸素的DevOps價值觀
DevOps 實踐:千里之行
容器化的 DevOps 工作流
大規模開發團隊如何實現DevOps轉型? 來自微軟全球開發平臺工程團隊的實踐經驗
DevOps文檔中心的技術實踐演進
原文地址:https://www.cnblogs.com/shanyou/p/9690528.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的Followme Devops实践之路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用.Net Core实现FNV分布式h
- 下一篇: 【活动(广州)】office365的开发