開源和云原生技術(shù)如何使API策略現(xiàn)代化
最近筆者有機會在不同的活動上就最新開源軟件和云原生技術(shù)的API策略發(fā)表演講,都獲得了積極反饋。這個話題的獨特之處在于,它不是從通常的API策略討論點來討論的,而是從討論最新技術(shù)以及開源軟件和云原生應用程序的增長如何塑造API策略的角度來討論的。
筆者將從討論創(chuàng)新開始。所有最新的軟件創(chuàng)新要么是開源軟件,要么是基于開源軟件。增強現(xiàn)實、虛擬現(xiàn)實、自動駕駛汽車、人工智能、機器學習(ML)、深度學習(DL)、區(qū)塊鏈等,都是使用開源軟件構(gòu)建的技術(shù),這些開源軟件使用并與數(shù)百萬API集成。
當今的軟件開發(fā)涉及API的創(chuàng)建和使用。一切都與API有關,在一些組織中,甚至還有API蔓延,這是指在沒有控制或標準化的情況下廣泛創(chuàng)建API。
技術(shù)棧和云原生應用程序
在現(xiàn)代軟件開發(fā)中,有棧的概念。開發(fā)人員和組織有很多選擇,他們可以選擇多種技術(shù)組合來創(chuàng)建自己的棧,然后培訓或雇傭所謂的全棧開發(fā)人員來處理這些棧。棧的一個例子在很大程度上包括開源軟件,如Linux、編程語言、數(shù)據(jù)庫、流媒體技術(shù)、運行時和DevOps工具,所有這些都使用API并與之集成。
從技術(shù)棧來看,云原生應用程序,指的是基于容器的應用程序。如今,所有技術(shù)都有許多云原生選項;云原生云計算基礎環(huán)境是可用的云原生生態(tài)系統(tǒng)的一個樣本。
當組織從幾個容器中的應用程序轉(zhuǎn)移到幾十個甚至數(shù)百個容器中的應用程序時,他們需要幫助管理和編排所有基礎設施。這就是Kubernetes發(fā)揮作用的地方。Kubernetes已經(jīng)成為我們這個時代最受歡迎的開源項目之一,它已經(jīng)成為云原生應用程序的實際基礎設施,并促使成了Kubernetes operator的一個新的、不斷增長的生態(tài)系統(tǒng);大多數(shù)流行的軟件現(xiàn)在都有自己的operator,可以更容易地在Kubernetes環(huán)境中創(chuàng)建、配置和管理,當然,operator也可以與Kubernetes API集成。許多可用的數(shù)據(jù)技術(shù)現(xiàn)在都有Kubernetes operator,以促進和自動化與Kubernetes API集成的有狀態(tài)應用程序的使用。
什么是API管理層?
云原生環(huán)境也有其棧、云基礎設施、操作系統(tǒng)、容器編排、容器operator、應用程序代碼和API。所有這些都支持一個軟件解決方案,該解決方案將數(shù)據(jù)集成并公開給移動設備、web應用程序或其他服務,包括物聯(lián)網(wǎng)設備。無論技術(shù)組合如何,都應該使用API管理平臺功能來保護一切。API管理平臺是云原生應用程序之上的一層,當數(shù)據(jù)和API暴露在組織的網(wǎng)絡之外時,必須對其進行保護。
而且,說到技術(shù)架構(gòu),API管理平臺具有靈活的部署選項非常重要。策略和設計應始終包括可移植性、在不同架構(gòu)(例如PaaS、內(nèi)部部署、混合云、公共云或多云架構(gòu))上移動和部署的能力。
面向云原生技術(shù)需要考慮的3種API策略
要為最新的技術(shù)設計API策略,有多個選項可以概括為三個主要方面。
首先,是一種現(xiàn)代化戰(zhàn)略,從將單體應用程序分解為服務,走向云原生,當然,還要與大型機中的關鍵任務應用程序集成。對于這種策略,需要構(gòu)建和維護安全的API。
設計API策略的第二個領域是所謂的無頭架構(gòu),即首先向API添加特性和功能,然后可選地向用戶界面提供該功能的概念。采用微服務或完全基于API設計的粒度架構(gòu),以促進集成和自動化。
第三個API戰(zhàn)略領域是關注新技術(shù),從創(chuàng)建API生態(tài)系統(tǒng)以吸引貢獻和使用公共API的客戶和合作伙伴,到選擇技術(shù)棧并將其與新技術(shù)(如AI、無服務器計算和邊緣計算)集成。最重要的是,每個API策略都必須包括API管理和安全思維。
API管理平臺應包括API設計、測試和安全的完整生命周期功能。其他功能,如分析、商業(yè)智能和API門戶,允許組織利用DevOps和全生命周期管理來開發(fā)、測試、發(fā)布和使用API。
關于當今最新技術(shù)以及如何將這些技術(shù)的知識和使用作為API策略的一部分的幾個例子包括:第一個是DevOps集成。DevOps自動化有多種商業(yè)和開源選項。關鍵部件包括持續(xù)集成和持續(xù)交付工具;另一個非常相關的領域是數(shù)據(jù)和人工智能技術(shù),這是一個不斷增長的領域,人工智能開發(fā)生命周期的每個階段都有數(shù)千個選項,從數(shù)據(jù)收集和組織到數(shù)據(jù)分析,以及ML和DL模型的創(chuàng)建和培訓。人工智能開發(fā)生命周期的最后一步應該包括自動部署和維護這些ML和DL模型。所有這些步驟都應該與通過API的不同技術(shù)的完全集成相結(jié)合,并與API管理平臺的重要層進行外部集成,包括數(shù)據(jù)源。
開源和API管理層
總之,從開源棧、DevOps工具到人工智能的所有這些新技術(shù),共同的保護和管理層是API管理層。應該有一個由API管理驅(qū)動的安全第一的API策略,重要的是要記住,在當今時代,API無處不在,現(xiàn)代技術(shù)棧將通過API與數(shù)據(jù)技術(shù)(數(shù)據(jù)庫和存儲)、DevOps和領先的人工智能集成。不要忘記在設計和管理API時考慮安全性。無論選擇哪種現(xiàn)代化的API策略,作為無頭架構(gòu),還是基于新技術(shù),API策略都必須與你的技術(shù)選擇和未來愿景齊頭并進。