由於雲服務提供商(如aws、微軟和谷歌等)的激增,雲原生已經成為嵌入到現代應用程式開發中的乙個重要概念。簡而言之,雲原生應用程式就是為雲構建的應用程式。
如何構建雲原生應用程式?
雲原生應用程式是基於雲計算基礎設施設計的,雲計算本身的應用程式開發並不是圍繞內部伺服器、資料庫、連線等建立,而是依賴抽象出硬體和維護的服務,在某些情況下還包括作業系統本身,因此開發人員可以專注於真正重要的產品。
這些抽象雖然對保持團隊和基礎設施的可管理性非常好,但與標準的裸機和虛擬化解決方案相比,還有降低成本的空間:更少的開銷意味著更低的風險、更少的資源和更少的人員。但是,雲原生應用程式開發帶來了不同的挑戰,最常見的是將所有輕量級基礎設施**在一起。
首先,api優先原則
在傳統的應用程式開發中,產品是圍繞**直接訪問所需資源的理解而構建的。這導致了乙個龐大的**庫,且非常難解耦。雖然雲計算不再是像這樣執行單一應用程式的任務,但它可能難以實現這種簡化、可擴充套件和分布式基礎設施的優勢。
這是api優先開發可以作出的最大的改變。對不熟悉api的人來說,優先開發api是在設計、記錄和構建應用程式的api之前進行的。這意味著,在開啟移動應用程式、**、alexa技術或物聯網裝置之前,api必須先存在。api優先開發的優勢在於它將業務邏輯從客戶端隔離並統一起來,同時為產品的工作方式建立單一的**。
但在其他任何東西之前構建api可能會感覺不可接受的限制,幸運的是,得益於api文件標準(如apiblueprint),可以建立乙個完全符合文件的模擬api伺服器,允許您在api本身完成之前針對實際服務構建和測試api整合。
優先開發api的最大優勢在於不是讓你避免重複開發或提供可靠的介面來處理業務邏輯,如果api優先的原則每次都沒有意義,則完全可以放棄這一原則,而不會影響應用程式的開發程序。另一方面,如果在開發雲原生應用程式不堅持api優先的原則,可能會一腳踩進技術的坑,需要數月的時間才能完成應用開發。
使其無服務(serverless)
從表面上看,api優先開發和雲原生應用程式開發不是相互排斥的。使用者可以構建不帶api的雲原生應用程式,並且可以在不使用雲的情況下構建乙個api優先的應用程式,這兩個概念完美協調的地方是在無伺服器環境中。
在無伺服器環境中,使用者不必處理伺服器的環境,這意味著與其開發應用程式或api作為服務在伺服器上執行,還不如將應用程式抽象為執行在指定執行時的單個函式,這是應用程式開發中最高端別的抽象層次之一。
通過在api優先開發策略中構建無伺服器api而不是傳統的代表性狀態轉移api,使用者可以充分利用任何雲提供商提供的資源。當使用者通過api把每個單獨的方式變成有效的微服務時,最終的結果就是形成了乙個廣泛分布、無限擴充套件且高度可靠的應用程式後台,可以處理任何事情。
開發乙個應用程式首先應該回答三個問題:what、where、why,而不是how,雲原生應用程式開發使得使用者通過盡可能少的成本支出來處理這種情況,而api優先的原則能夠為使用者提供回答where和why的工具,這是api優先的雲原生應用程式開發的真正意義。
人工智慧、大資料、雲計算和物聯網的未來發展值得重視,均為前沿產業,多智時代專注於人工智慧和大資料的入門和科譜,在此為你推薦幾篇優質好文:
1.影響雲計算核心問題的七個要素
2.雲計算與物聯網的關係,雲計算和物聯網的優勢
3.建立雲計算基礎設施的五個步驟
多智時代-人工智慧和大資料學習入門**|人工智慧、大資料、物聯網、雲計算的學習交流**
雲原生應用程式 什麼是雲原生應用程式?
雲原生應用程式 在六,七年前雲計算開始大步向前時,人們苦苦掙扎的重要問題之一是 如果我想在公共雲,私有雲或混合雲中執行它們,我的應用程式將是什麼樣子?當時有很多方法可以回答這個問題。乙個流行的隱喻來自比爾 貝克 bill baker 的演講,當時他在微軟。他將傳統應用程式 寵物 與雲應用程式 牛 進...
微軟發布Docker,發布雲原生應用程式部署標準
微軟在新聞發布會上表示,微軟和docker共同宣布了乙個新專案,該專案將建立 用於打包和執行分布式應用程式的開源,與雲無關的規範 infoworld解釋 什麼是雲原生?開發軟體的現代方式 入門 azure雲遷移指南 教程 google cloud入門 通過infoworld的雲計算新聞通訊了解雲計算...
微軟發布Docker,發布雲原生應用程式部署標準
微軟在新聞發布會上表示,微軟和docker共同宣布了乙個新專案,該專案將建立 用於打包和執行分布式應用程式的開源,與雲無關的規範 infoworld解釋 什麼是雲原生?開發軟體的現代方式 入門 azure雲遷移指南 教程 google cloud入門 通過infoworld的雲計算新聞通訊了解雲計算...