中間件棧增加了層以及對輕量應用的開發需求將導致更好的云訪問。
過去10年,軟件的開發和部署方式已經出現了巨大的轉變。2005年初時,企業服務總線還很流行,而云尚處在青春期,還在等待這Amazon EC2/S3的降臨。現在,開發者可以利用的技術數量出現了爆發式增長,云的無所不在增加了中間件棧的層次,據專家說。
總部位于英國烏斯特郡的咨詢公司C2B2的首席顧問Matt Brasier說,所有現有技術經過10年的發展已經極大地成熟了,為中間件棧開發者和應用架構師提供了更多的多樣性。這一架構性選擇延伸到了SQL存儲等組件,使得開發者可以選擇最適合于被開發應用的技術,他補充道。
給中間件棧增加層
10年前,開發者要對付的只有3層:接入層、業務邏輯層以及用戶接口層,Brasier說。但隨著中間件棧變得越來越與服務相關,那些嚴格的層消失了。現在,面向業務的服務和集成層使得開發者將服務與應用捆綁在一起,集成層成為了中間件棧新的一層。集成層位于瘦很多的業務層的上面,而用戶接口層則是在集成層的上面,他說。
集成、API、移動或其他層,所有這些附加均未對中間件層造成損害,這是總部位于科羅拉多州Evergreen的Savoir Technologies CTO Jeff Genender的說法。按照他的看法,移動和API層實際上是一回事,且有賴于前端應用是干什么的,比方說,在開發中的GUI是否適應移動設備,他說。
“移動產品應該能夠利用全服務產品所用的同一個API,但要小心它在API內的用量有多少,” Genender說。但是移動并不是一個獨立的層;而是相對于微服務的端點—而這無論它是通過節點應用還是PHP端點來完成,一般都是利用RESTful服務或JSON實現來完成的,他補充道。
應用變得越來越輕量
隨著開發者和應用架構師對一個錯誤就能導致整個應用癱瘓的現狀感到厭煩,單容器部署—像開發界WebSpheres和JBosses這樣的一體應用服務器已經逐漸淡出到后臺,Genender說:“在必須升級或更新軟件時,你得把整個系統關閉,或者要有一個相當復雜的滾動部署,”他補充道。
然而,微服務是輕量的,在應用部署上采取了更加聯邦的方式,這使得開發者可以在不同的服務、位置或容器中使用多個端點,Genender說。這使拿掉一部分比例的應用成為可能,這樣軟件就可以實時更新了。“這提高了正常運行時間,并增加了軟件的可維護性”他說。
云需要輕量應用
混合云和云部署對中間件棧產生了巨大影響。更輕量的應用采用微服務,這使得它們可以很好地適應基于云的環境,據Genender說。因為它們是輕量的,所以他們沒有繁重的內存且處理器需求也不高,而由于微服務是聯邦式、分布式的,可以在任何地方部署,他說。
“你需要在小一點的封裝內工作,這里沒有地方容納一體式應用服務器,” Genender說。基于云的應用的全部要點是輕量、能快速且有成效地加速應用和新功能的推出,這不可能發生在數G大小需要大量處理能力的應用身上。“這就是這一變化的推動力,搬到云端、更小的處理器、更多的分布式,”他說。
按照C2B2的Brasier的說法,服務的另一大驅動力是靈活性。在與云應用集成時,開發的最佳實踐是訪問服務的靈活性,而不是把組件嵌入到應用中,他說。
“開發出成功應用的人是通過創建服務,然后再結合應用和業務流程來做到的,” Brasier說,指出這一切都是通過服務流轉的。這些結構已經成為了適應云需求的必要,這已成為提供服務的一大驅動力,他補充道。
有的也許會說多一事不如少一事,但是根據專家的說法,在中間件棧增加層已經體現出好處。隨著對輕量型應用、服務,尤其是微服務的需求在增長,這些將會成為云訪問的預期基礎。