l

2016年7月26日 星期二

DevOps技術簡介

July 25 22:05~00:00

螢幕截圖 2016-07-25 22.44.42

▲DevOps基礎生產與佈署流程,參考文中論文重繪

 

今天介紹另一篇也是刊登在今年5/6月IEEE Software的文章,標題只有一個字:「DevOps」。這篇文章深入淺出介紹DevOps概念以及所牽涉到工具。

***

DevOps觀念

DevOps是關於如何快速且有彈性地開發與供裝(provisioning)商業流程的一門課題。DevOps有效率地整合開發、交付及維運,讓這些傳統上隔離的孤島可以精實且流暢的連結在一起。DevOps牽涉到開發、品管與維運部門。為了達成上述目的,DevOps運用自動化的方式在以下三個領域:

  • 開發
  • 佈署
  • 基礎建設的監控

DevOps不是只有自動化工具的採用,而是組織結構與流程的改變,將傳統各行其事的部門串接起來組成跨職能團隊,以便持續提供客戶服務。

***

DevOps工具

該論文將DevOps依據階段不同分成三類:建構(Build)佈署(Deployment)維運(Operation)。再依據工具類型區分為建構(Build)持續整合(Continuous integration)配置管理(configuration managment)日誌記錄(Logging)監控(Monitoring)。請參考下圖:

▼DevOps自動化工具,參考文中論文重繪(CI: Continuous integration;CM: Configuration management)

螢幕截圖 2016-07-25 23.02.34

***

其他

文章還提到幾個與DevOps相關的議題:

  • 真實世界的DevOps:介紹Amazon Web Services(AWS)的幾個工具,包括AWS Elastic Beanstalk、AWS OpsWorks、AWS CloudFormation、AWS CodeDeploy、AWS CodePipeline、AWS CodeCommit、AWS CloudWatch。
  • 微服務( Microservices):微服務出現在10年前,是服務導向設計(service-oriented architecture;SOA)的後續演化結果。微服務拆分複雜的軟體架構以達到隨選交付服務以及提升效能。DevOps可以協助開發、佈署與管理微服務容器生態系。
  • 文化轉移:文中提到四種主要的挑戰:
    • 將複雜的軟體架構與功能集切分成可獨立開發與佈署的小區塊模組。
    • 維護一個配置與建構環境以便清楚了解佈署服務或元件的版本與相依性。
    • 引入一個從傳統應用程式生命週期管理所衍生的特意建構之開發與生產環境(這一點看不懂)。
    • 橋接傳統上各自為政的開發與維運文化。

此外,在DevOps文化中,開發人員必須採取全端開發策略(full-stack developer),負責開發、測試與釋出環境。除了coding以外,他們還必須擴展資料庫管理與測試等能力。測試與持續整合對開發團隊都是必須具備的工作,測試人員可以和開發人員一起結隊開發,雙便皆可因此獲取更多技術知識。品管團隊則需要確認自動化所有測試案例以及程式涵蓋率。維運人員則需要更緊密的與開發團隊協作,以達成持續提供服務的目的。

***

結論

最後直接引用論文結論中的兩句話:

  • Building on lean and agile practices, DevOps means end-to-end automation in software development and delivery.
  • Because products and life-cycle processes vary, each company needs its own approach to achieve DevOps, from architecture to tools to culture.

***

友藏內心獨白:最後一段麻煩自己英翻中。

3 則留言:

  1. 最後一段讓我想到最近新聞的話, 兄弟爬山, 各自努力。

    回覆刪除

  2. ...開發人員必須採取全端開發策略(full-stack developer)...

    應該是:

    ...開發人員必須採取全端開發策略(full-stack development)...

    回覆刪除