Devops 這個名詞最近很紅, 也不知道為什麼, 大家就一窩蜂開始談這個東西. 那到底大家有什麼誤解? 今天我們就來聊一聊.
 
devops-everywhere1  
 
首先, 我們先要對於什麼是 Devops 有個共同的認識, 否則在沒有相同的基礎上, 大家很容易各說各話. 在 wiki 中, 它的定義如下:
 
DevOps (a clipped compound of "development" and "operations") is a software development method that stresses
     communication,
     collaboration,
     integration,
     automation, and
     measurement of cooperation
between software developers and other information-technology (IT) professionals.
 
也就是說他是一種軟體開發的方法, 這個方法強調了開發和運營之間要溝通, 合作, 整合, 自動化, 以及要有度量和監控.
 
此外, 他的出現, 是因為他意識到: 為了按時交付軟體產品和服務,開發和運營工作必須緊密合作. 因為, 最終還是要讓你的 business 賺錢, 要能讓客戶滿意, 這才是他最想要的初衷和目的.
 
可是, 對於從最近的文章或是 conference 中, 似乎演變成了自動化, 誰的工具用得多, 誰就是 Devops 比較好, 然後再加上工具廠商在背後用力推廣, 似乎遠遠偏離了 Devops 的精神以及原因產生的動機了.
 
那到底大家都把 Devops 誤認為什麼呢? 就讓我們一一來瞧瞧吧
 
1. 自動化就是 Devops
大家常常看到提到 Devops 就會提到要自動測試, 自動部署, 好像做 Devops 就要把一切給自動化. Devops 是因為想要有效率, 所以才把一些事情給自動化, 但是反之不一定成立.
 
原先要解的問題是效率和即時性, 自動化只是其中一種解法. 也許只要人多多交談, 就可以解決了. 凡事都用自動化, 似乎忘記了人的溝通才是根本.
 
 
2. Devops 就是要在 cloud, 就要虛擬化
因為 Docker 和雲端的話題在這幾年很流行, 因此很容易在技術方面, 大家就會用到他們. 但是事實上, 你可以用舊的 VMware/ESX, 或甚至是實體機器也可以. 只要夠用就好, 並且要配合你系統的特性.
 
就像創業一樣, 不是創業就一定要高科技, 賣魚賣雞排也是創業. 用高科技並不會讓你高人一等, 重點是你的 business 要能活得下去, 並且讓客戶滿意.
 
 
3. Devops 就是一堆工具
每次提到 Devops, 很多人就會問你的工具包是什麼, 似乎只要用了這些工具包, 就會變成 Devops, 產品就會快速交付了. 
 
工具再強也是要有人要用, 如果大家都不願意寫自動化, 或者是收到自動化的訊息後沒人要及時處理, 這些工具再好也無法幫妳什麼.
 
 
4. Devops 就是意味沒有運營人員和測試人員
這通常是台灣慣老闆常見的誤解, 認為只要導入 Devops之後, 就可以不要有專職測試人員, 以及運營人員. 所有事情只要 Devops 上了就好. 
 
再次提醒, 當初要 Devops 是要讓不同角色的人工作能更有效率, 能夠有同理心, 站在對方的角度去想, 怎樣做可以幫助對方更有效率. 並不是把大家都裁了, 然後只剩下一種角色的人, 做所有角色的事情.
 
 
5. Devops 可以不要有 agile
其實有沒有 agile 可能不是重點, 只要你能頻繁交付就好. 不過, 目前來說 agile 確實是達到頻繁交付的好方法. 
 
另外想想當初 extreme programming 出來時, 他有強調要用 Object oriented, design pattern 嗎? 似乎沒有, 可是呢, 如果你會的話, 在做 TDD or refactoring 就會容易許多. 所以, 同理, 使用敏捷開發方法, 或是 CI 會讓你在實施 Devops 時簡單許多.
 
 
Devops 是好棒棒, 但是想太多也是一種災難......
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 kojenchieh 的頭像
    kojenchieh

    David Ko的學習之旅

    kojenchieh 發表在 痞客邦 留言(0) 人氣()