javaweb应用开发与实践pdf_基于阿里云打造「云原生」Web应用——「懒猪行」Web应用开发实践...
作者:阿里云MVP 劉遠程
背景
『懶豬行』專注于境外自由行S2B業務,涉及分銷、終端用戶服務、供應鏈等多個服務環節,隨著業務規模的不端增加,我們一直在探索Web應用開發的最佳實踐,以加快Web應用的迭代效率,為B/C端用戶創造更多價值。
云原生
近幾年,Spring Cloud為代表的微服務架構越來越火熱,吸引了大量創業公司『入坑』。微服務系統的開發與單體應用的開發相比,從團隊組織、運維、開發方式等多個方面帶來了顛覆式的變化。從2018年開始以Istio、SOFAMesh等為代表的Service Mesh方案逐漸走上舞臺,并被稱為『下一代微服務架構』。
如果把以容器技術和Service Mesh為基礎的IT架構定義為云原生架構,那么Dubbo、Spring Cloud為代表的分布式架構將是促進云原生架構誕生的『中間產物』。
就在18年,云原生計算基金會(CNCF)為云原生技術重新定義:
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
『云原生技術幫助公司和機構在公有云、私有云和混合云等新型動態環境中,構建和運行可彈性擴展的應用。云原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式API。』
These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.
『這些技術能夠構建容錯性好、易于管理和便于觀察的松耦合系統。結合可靠的自動化手段,云原生技術可以使開發者輕松地對系統進行頻繁并可預測的重大變更。』
這種新穎架構方式,不僅提供了完善的軟件持續交付鏈方案,也為我們的應用組織方式帶來了巨大的想象空間,甚至在將來可能給整個軟件行業帶來顛覆式的革命。有一點是顯而易見的:原本強耦合在一起的應用被拆分,變身成為能夠實現完整子集功能的可插拔式微服務,通過有機的組織讓其與其它微服務共同對外提供服務;就如同組裝汽車的發動機和座椅等,它可以來自全球供應鏈不同的廠商。以云原生的設計哲學來總結,云原生應用具備微服務,健康報告,遙測數據,彈性聲明式(非反應式)等特征。
云原生所帶來的效果非常明顯,但完整的實踐確是很容易讓人知難而退,因為單Kubernetes一項,從入門到掌握也需要花費3個月左右的時間。但幸運的是,阿里云等公有云平臺已經為我們準備好了容器服務(Kubernetes版)產品,并支持通過Kubernetes進行應用的容器化管理。
在容器服務內部,通過Istio聲明式的定義不同服務間的通信方式和安全驗證規則,這使我們的多個服務(例如:訂單、產品、用戶、評論等服務)安全、靈活的整合在一起。以官方Bookinfo示例架構圖如下:
所有的微服務都和 Envoy sidecar 集成在一起,被集成服務所有的出入流量都被 sidecar 所劫持,這樣就為外部控制準備了所需的 Hook,然后就可以利用 Istio 控制平面為應用提供服務路由、遙測數據收集以及策略實施等功能。
懶豬行的架構設計(簡化)
在新的架構中,使用了大量的阿里云產品,這鑒于我們過去的經驗,阿里云產品在運維上為我們節省了不少精力。
以上架構,是我們走向『云原生』的第一步,距離成熟還有非常大的發展空間,云原生的發展也在發展的起步階段。按架構,把所有需要持久化的數據,如:文件、圖片、數據庫等存儲到阿里云OSS、RDS及Redis產品,而應用則運行在以K8s管理調度的容器集群中。
阿里云DevOps工具鏈
阿里云在云原生架構整個生命周期都提供了完善的支持:
部署到Kubernetes_部署到Kubernetes_選擇部署方式_用戶指南_CodePipeline-阿里云
推薦閱讀:
[1] Service Mesher社區:ServiceMesher · Service Mesh|服務網格中文社區
[2] Kubernetes Handbook:序言 · Kubernetes Handbook - Kubernetes中文指南/云原生應用架構實踐手冊 by Jimmy Song(宋凈超)
MVP招募進行中,點擊「鏈接」
總結
以上是生活随笔為你收集整理的javaweb应用开发与实践pdf_基于阿里云打造「云原生」Web应用——「懒猪行」Web应用开发实践...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 带牛的成语(牛年有创意的乳名)
- 下一篇: 你也在《我的世界》里流浪过吗?MC有这么