Devopspython
DevOps對應用程序發佈的影響ios
在不少企業中,應用程序發佈是一項涉及多個團隊、壓力很大、風險很高的活動。然而在具有DevOps能力的組織中,應用程序發佈的風險很低,緣由以下 [2] :redis
(1)減小變動範圍shell
與傳統的瀑布模式模型相比,採用敏捷或迭代式開發意味着更頻繁的發佈、每次發佈包含的變化更少。因爲部署常常進行,所以每次部署不會對生產系統形成巨大影響,應用程序會以平滑的速率逐漸生長。數據庫
(2)增強發佈協調api
靠強有力的發佈協調人來彌合開發與運營之間的技能鴻溝和溝通鴻溝;採用電子數據表、電子數據表、電話會議和企業門戶(wiki、sharepoint)等協做工具來確保全部相關人員理解變動的內容並全力合做。ruby
(3)自動化服務器
強大的部署自動化手段確保部署任務的可重複性、減小部署出錯的可能性。運維
與傳統開發方法那種大規模的、不頻繁的發佈(一般以「季度」或「年」爲單位)相比,敏捷方法大大提高了發佈頻率(一般以「天」或「周」爲單位)。dom
實現DevOps須要什麼?
硬性要求:工具上的準備
上文提到了工具鏈的打通,那麼工具天然就須要作好準備。現將工具類型及對應的不徹底列舉整理以下:
代碼管理(SCM):GitHub、GitLab、BitBucket、SubVersion
構建工具:Ant、Gradle、maven
自動部署:Capistrano、CodeDeploy
持續集成(CI):Bamboo、Hudson、Jenkins
配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
容器:Docker、LXC、第三方廠商如AWS
編排:Kubernetes、Core、Apache Mesos、DC/OS
服務註冊與發現:Zookeeper、etcd、Consul
腳本語言:python、ruby、shell
日誌管理:ELK、Logentries
系統監控:Datadog、Graphite、Icinga、Nagios
性能監控:AppDynamics、New Relic、Splunk
壓力測試:JMeter、Blaze Meter、loader.io
預警:PagerDuty、pingdom、廠商自帶如AWS SNS
HTTP加速器:Varnish
消息總線:ActiveMQ、SQS
應用服務器:Tomcat、JBoss
Web服務器:Apache、Nginx、IIS
數據庫:MySQL、Oracle、PostgreSQL等關係型數據庫;cassandra、mongoDB、redis等NoSQL數據庫
項目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker
在工具的選擇上,須要結合公司業務需求和技術團隊狀況而定。(注:更多關於工具的詳細介紹能夠參見此文:51 Best DevOps Tools for #DevOps Engineers)
軟性需求:文化和人
DevOps成功與否,公司組織是否利於協做是關鍵。開發人員和運維人員能夠良好溝通互相學習,從而擁有高生產力。而且協做也存在於業務人員與開發人員之間。
出席了2016年倫敦企業級DevOps峯會的ITV公司在2012年就開始落地DevOps,其通用平臺主管Clark在接受了InfoQ的採訪,在談及成功時表示,業務人員很是清楚他們但願在最小化可行產品中實現什麼,工程師們就按需交付,不作多餘工做。
這樣,工程師們使用通用的平臺(即打通的工具鏈)獲得更好的一致性和更高的質量。此外,DevOps對工程師我的的要求也提升了,不少專家也認爲招募到優秀的人才也是一個挑戰。
連接:https://www.jianshu.com/p/c5d002cf25b9
本文連接:https://blog.csdn.net/duanlei123456/article/details/87454053
持續集成
持續集成強調對於開發人員的每一個提交,馬上進行構建、掃描、(單元)測試。根據結果,咱們能夠肯定新代碼和原有代碼可否正確地集成在一塊兒。
持續交付
持續交付在持續集成的基礎上,將集成後的代碼部署到更貼近真實運行環境的「類生產環境」中進行更多的測試來更早地發現問題。好比,咱們完成單元測試後,能夠把代碼部署到QA環境,預生產,中更多的自動化集成測試。若是代碼沒有問題,能夠繼續手動部署到生產環境中
持續交付能夠看做持續集成的下一步。它強調的是,無論怎麼更新,軟件是隨時隨地能夠交付的
持續部署
持續部署則是在持續交付的基礎上,把部署到生產環境的過程自動化,發佈條件:團隊成員確認預發佈環境驗證經過,進入發佈階段.
持續集成腦圖
https://blog.csdn.net/miss1181248983/article/details/82840006
CI/CD介紹
http://www.javashuo.com/article/p-nxvfpfcz-ew.html
教你如何用Jenkins自動化部署項目(教程,從零到搭建完成)