當軟體更改的成本代價越來越低,你的產品就會越來越強!!!

lightTrace發表於2019-02-01

我今天看了一篇文章,大概是講不是所有的公司都需要kubernets,裡面講的有些東西確實很中肯,但我覺得它是片面的。如果是一個網際網路公司,即使你剛剛才成立,使用者量很少,你也應該考慮使用例如kubernets類似的開源工具。

為什麼這麼說呢?

相信對於所有的程式設計師來說,需求的變動導致自己更改程式碼都是一件不怎麼愉快的事,而這還僅僅是程式碼層面的改動。

有天cto告訴你我們使用者增量越來越大,考慮下叢集的使用,再過一段時間發現夜晚使用者量又不大,夜晚需要收縮叢集,即考慮scale,又要考慮high availability,還要考慮fail over,log的處理需要更加有章法,更新時候的小心翼翼…,我們的軟體成功執行的依賴項越來越多,我們不敢隨意進行改動其中任何一個環節,生怕漏掉一個細節引起全域性崩潰,所以這一系列的改動所引發的成本提升是極其不可控的。

但是直到例如docker、k8s這些開源軟體的出現就改變這些問題,微服務、devOps他們使軟體更改的cost變的越來越低,我們可以輕鬆隔離每個應用甚至單一元件的服務,我們可以進行策略性的更新(滾動、灰度、藍綠),甚至可以快速回退到穩定的版本,而這一切,如果用程式碼或者指令碼去實現,需要花費很大的精力卻也不見得使整個軟體更加穩定靈活!

當軟體不再為公司的硬體環境束縛,當集中式的,複用第一的設計理念開始崩潰,我們需要更高的靈敏度,所以分散,靈活,解耦,隔離成為設計文件中最火的key word。

在新的挑戰出現之前,利用新的自己殺死老的自己,在這個過程中自然也競爭贏過了同行業對手。

其實在整個開發過程中,我們都可以應用熵增理論,簡潔高質量的程式碼搭配適合的工具必然使整個系統維護性和擴充套件性變高,這些操作上在某種程度上都使整個系統的熵降低,所以在不斷的迭代中我們始終要貫穿降低系統熵的理念!

當軟體更改的成本越來越低,你的產品就會越來越強!

相關文章