目前,愈來愈多的企業已經在大規模開始擁抱雲,在雲環境開發應用、部署應用、發佈應用。Cloud Native(雲原生)是以雲架構爲優先的應用開發模式。那麼,爲何說 Cloud Native 是將來開發應用的趨勢呢?本文一一解答。html
Cloud Native (國內譯爲「雲原生」),最先是 Matt Stine 提出的一個概念。與微服務同樣,Cloud Native 並非一種具體的技術,而是一類思想的集合,包括DevOps、持續交付(Continuous Delivery)、微服務(MicroServices)、敏捷基礎設施(Agile Infrastructure)、康威定律(Conways Law)等,以及根據商業能力對公司進行重組。Cloud Native 既包含技術(微服務,敏捷基礎設施),也包含管理(DevOps,持續交付,康威定律,重組等)。因此,Cloud Native 也能夠說是一系列Cloud技術、企業管理方法的集合。git
有關Cloud Native的概述,可見「簡述什麼是 Cloud Native(雲原生)」一文的論述。github
目前,愈來愈多的企業已經開始擁抱雲,在雲環境下開發應用、部署應用和發佈應用。將來,愈來愈多的開發者也將採用 Cloud Native 來開發應用。架構
那麼,爲何說 Cloud Native 是大勢所趨運維
特別是使用雲計算所提供的基礎設施,費用會更加低廉。隨着雲計算的不斷髮展,企業愈來愈傾向於使用 IaaS(基礎設施即服務)和 PaaS(平分佈式
臺即服務)來構建應用程序。這種應用能夠利用雲計算的彈性和可伸縮性,同時還能知足雲環境下的容錯性。微服務
微服務開發快速、職責單一,可以更快速地被客戶所採納。同時,這些應用可以經過快速迭代的方式獲得進化,贏得客戶的承認。Cloud Native 能夠打通微服務開發、測試、部署、發佈的整個流程環節。學習
例如,用於定位的 Google Maps,用於社交協做的認證平臺等。將這些 API 與企業業務的特性和功能結合在一塊兒,可讓它們爲客戶構建獨特的方案。全部整合都在 API 層面進行。這意味着,不管是移動應用仍是傳統的桌面應用都能無縫集成。因此,採用 Cloud Native 所開發的應用都具有極強的可擴展性。測試
傳統的企業級開發方式須要有專職人員來對企業應用進行監控與維護。而在 Cloud Native 架構下,底層的服務或 API 都將部署到雲中,至關於將繁重的運維工做轉雲計算
移給了雲平臺供應商。這意味着客戶應用將獲得更加專業的看護,同時也節省了運維成本。
那麼如何來實現 Cloud Native 呢?其實這是一個很是大的話題,好比,做爲開發者,你須要瞭解目前市面上流行的雲供應商,瞭解微服務、SOA,瞭解 HTTP 和 REST,瞭解領域驅動設計(DDD),瞭解CI\CD和TDD,瞭解兩個披薩,瞭解分佈式的經常使用架構和模式等等。這裏每同樣都是一個龐大的課題,還好目前市面上已經有了一些資料可供學習,好比《Cloud Native 分佈式架構原理與實踐》,能夠很是全面的指導開發者輕鬆入門 Cloud Native。