當下微服務如火如荼,各個團隊在爭先恐后推出微服務,不論在概念上還是在實踐上,如果自己沒有跟微服務掛上鉤,便會被貼上落伍
的標簽。我們在推微服務的時候,我們說微服務架構具備如下優勢:
這些特征恰恰是單點應用無法具備的,因此微服務架構在廣大的呼聲下逐漸承接了單點應用的替代工作。隨著容器技術的成熟,使用Docker重建一個應用的成本趨近于零。而K8S/Rancher在生產上的廣泛應用,很大程度解決了容器管理的難題。調用鏈分析工具(ZipKin)、ELK+Kibana再配合系統監控工具(Prometheus),就連微服務架構帶來的部署運維的復雜性也得到了大大的改善。更加樂觀的是,眾多云平臺(AWS, GCP, Azure等)正在試圖打造解決部署運維難題的一體化Paas服務,讓應用開發商更加專注于業務上。
如果將軟件生命周期大致劃分成兩部分:
我們認為左邊部分正在享受著微服務架構的益處,而右邊部分在遭受著微服務架構復雜性的折磨。
微服務架構帶來的復雜性(右邊部分)已經很大程度上得到了解決,常見的解決方案是在開發團隊中植入DEVOPS。比如在ThoughtWorks中的某些團隊,DEVOPS成為Team不可或缺的成分。
我們把注意力放在左邊部分。開發人員關注更多的是 原文轉自:http://sjyuan.cc/significance-of-unit-test-from-other-sight/開發
,每個服務由一個小的Team負責開發,Team正在極力往服務自治
的方向靠攏。測試人員可能更加關注測試