03.07 程序員如何從傳統IT技能轉型進入雲計算?

漩渦寒米


開發者和程序員準備好轉到雲了嗎?在決定之前,請了解一些你需要考慮的事項。


IT基礎設施正在積極地轉向雲環境。大多數企業已經為遷移到雲平臺建立了新的願景。這些積極的變化是由高層管理人員(首席技術官,首席執行官和CDO)推動的,而底層架構師則針對雲原生應用程序討論SaaS,PaaS和微服務。任何一方都會時宜的讓開發者跟進新的技術方向。

雲應用程序具有獨特的功能,例如支持分佈式體系結構,具有高擴展性和靈活性,可跨越多個雲環境(獨立於供應商的方法)。從雲計算應用程序開發到生產支持,需要遵循完全不同的工具和技術來利用雲平臺的完整優勢。為開發人員提供適合開發,調試和測試基於雲的工具的培訓是一項關鍵挑戰。本文將介紹雲環境的新方法和工具。


無服務器計算


假設客戶希望開發具有高度可擴展基礎架構的新服務,來支持物聯網和大數據平臺。功能式編程是需要考慮的最佳選擇之一。頂級雲提供商支持功能編程(AWS Lambda, Azure functions, Google Cloud functions, IBM whisk等等)。


選擇一種編程語言


啟動時間,內存效率,二進制大小和併發性是在雲平臺上開發微服務體系結構時的關鍵因素。


Golang:如果選擇雲計算平臺,並試圖決定他們想用什麼語言來探索雲架構,那麼請考慮Go。Go是一個不錯的選擇,它包含了諸如併發性,輕量級,靜態類型和編譯語言等特性。英國的一家銀行(Monzo)已經通過Go語言使用微服務完全構建了完整的銀行業務架構。


Java:大多數產品都是用Java開發的,並且有大量的開發人員社區可用。Spring Boot和Java模塊(來自JDK-9.0)是雲原生體系結構的不錯選擇。這是將遺留系統遷移到雲平臺的良好開端。


.NET Core:正如我們所知,微軟很久以來一直不支持開源社區。這是許多公司未採用.NET的主要原因之一,但微軟總是提供無缺陷的開發工具,簡單的語法和很好的教程。微軟最近認識到,開源選項為Azure雲提供了更多創新和更多業務。因此,.NET核心被開源社區所吸引。也Azure雲平臺的最佳選擇之一。


R:不管行業如何,數據科學的熱度都在計算機世界中流行起來,但如果仔細觀察,還沒有出現用於解決數據科學難題(統計和數學)的新語言。由於雲以較低的成本提供巨大的計算機處理能力,業界試圖使用舊技術和工具解決人工智能難題。R是S編程語言的一個實現。S創建於1976年,R庫實現統計和數學功能。


Python:Python支持多種編程範例並檢查強類型。它很容易學習,並具有強大的分析庫。它得到了開源社區的大力支持。這些是Python吸引數據科學家的原因。


選擇存儲


大規模擴展前端服務並嘗試使用連接池與RDBMS數據庫進行通信將無法滿足實際使用情況。需要選擇以云為中心的數據庫來構建強大的存儲平臺。


Amazon DynamoDB:它可以在任何規模上提供單位毫秒的延遲。數據以NoSQL格式存儲,並支持文檔,鍵值存儲模型以及構建圖數據庫。


Azure Cosmos DB:它支持具有水平擴展的全球分佈式數據庫。數據存儲在NoSQL格式上,保證99%的單位數毫秒延遲。它不僅支持文檔,圖形,鍵值,表格和列族數據模型,還支持針對多種語言擴展的API。


MongoDB:MongoDB是早期提供的NoSQL數據庫之一。這對客戶來說是一個非常好的開源和低成本的模式。


IBM Cloudera DB:Cassandra是Cloudera的基礎數據庫。它支持基於Java的API與NoSQL數據庫進行通信。


Oracle NoSQL DB:最後,Ooracle還加入了NoSQL DB,並支持水平負載平衡和縮放節點。


服務網格(Service Mesh)


微服務架構為處理故障,路由和服務發現帶來了新的挑戰。在大規模構建以云為中心的服務時,需要考慮ServiceMesh。


什麼是服務網格?


服務網格被buoyant.io描述為:“用於處理服務到服務通信的專用基礎設施層。它負責通過構成現代雲原生應用程序的複雜拓撲結構來可靠地傳遞請求。實際上,服務網格通常作為輕量級網絡代理的數組來實現,這些代理與應用程序代碼一起部署,而不需要應用程序的注意。簡而言之,它充當與微服務進行通信的代理層。”


Linkerd:它在服務之間進行通信,並提供訪問微服務的抽象層。主要功能包括服務發現,負載平衡,熔斷,動態請求路由和分佈式跟蹤。

Envoy:最初建在lift內部使用,它已經作為服務網格平臺開源。這不是為Kubernetes平臺設計的。Istio正試圖解決這些問題。

Istio:它創建帶有負載平衡服務的部署服務網絡以進行服務身份驗證。服務監控是其支持的關鍵功能之一。未來,我們可能會得到紅帽等大廠商的專業服務支持。


消息傳遞層

物聯網是所有行業的又一增長點。許多人都聽到過“數據是一種新石油”這句話。自動駕駛,移動設備和更多設備將大量數據向雲平臺推進。事件溯源是捕獲完整在線用戶活動的另一個領域。例如,如果你登錄並瀏覽一些移動設備並添加到購物車,移除購物車並添加了另一個品牌,則會將這些數據作為事件溯源並存儲以備將來使用。嘗試解決這些問題的數據流工具包括:


Kafka:Kafka topic是一系列記錄。Kafka producer API和Kafka consumer API支持與Kafka topic進行交互。Kafka集群具有創建許多代理和服務器的內置功能。


容器和基礎設施即代碼

容器化是在雲環境中運行軟件的一攬子工具。每個包都有一個代碼,環境變量,庫和更多。這些軟件包僅在任何雲環境中使用,併為大規模遷移到不同的雲環境提供了靈活性。


Docker:它為打包和分發容器應用程序提供了一個開放標準。Docker引擎允許構建和運行容器。

Kubernetes:它為無縫運行多個容器提供了一個底層平臺。它支持容器的編排,分發和擴展,Docker鏡像運行在Kubernetes環境中。


結論

擁有這些工具和技術僅僅是邁入雲平臺的開始,可能會根據特定的上下文和用例進行更改。大型企業需要在構建雲平臺的同時,更重視開發人員的工具和技術。需要為應用程序開發,存儲,安全,日誌記錄和調試,監控和測試創建技術路線圖。


分享到:


相關文章: