国产韩日影视精品_中文字幕一区二区三区在线不卡_久久亚洲综合色一区二区三区 _国产成人久久久

【六六互聯】長期出售【美國抗投訴服務器】【歐洲抗投訴服務器】【亞洲抗投訴服務器】

云應用、服務的“5層”架構

云應用、服務的“5層”架構

一套完整的云應用、服務架構通常可以分為5層。

·負載均衡層(Load Balancing)

·應用服務層(Application Server)

·緩存服務層(Caching Server)

·數據庫服務層(Database Server)

·云存儲層(Cloud Storage)

云應用的五層架構

(1)負載均衡

負載均衡層(Load-Balancing Layer,LB Layer)的實現是5層架構中最早面對用戶的,也是相對最容易實現的。通常為了避免SPOF,至少設置兩臺LB服務器(通常在兩臺物理主機之上,以避免單機硬件故障導致SPOF)。整個擴展設置過程通常可以完全自動化,例如通過DNS API來配置新增或刪除LB節點。最常見的LB解決方案有HAProxy或Nginx,它們通常可以支持跨云平臺的負載均衡(即服務器及其他層跨云,當然這種架構的設計與實現復雜度會急劇增高。前面我們提到過的Cloud Bursting就是典型的跨云基礎架構模式)。智能的LB層實現能做到根據應用服務器層的健康狀態、負載狀態來動態引流,以確保系統真正實現均衡的負載。

云服務提供商通常會提供現成的LB服務,例如AWS的ELB(Elastic Load-Balancer)、RackSpace的CLB(Cloud Load-Balancer),還有VMware vCloud Air Gateway Services都提供強大的LB服務。

(2)應用服務

負載均衡層之下就是應用服務器層,它負責處理LB轉發的用戶請求并返回相應的數據集。通常數據集分為靜態數據與動態數據。前者大抵可以在緩存層保留以降低應用服務器及數據庫服務器的負載(見上圖)并加速客戶端獲得返回數據,后者通常需要底層的數據庫層配合來動態生成所需數據集。本層的擴展實現通常通過對現有服務器的負載進行監控(主要是CPU,其次為內存、網絡、存儲空間),并根據需要進行橫向或縱向擴展。橫向擴展(Scale-out)通常是上線同構的服務器(物理機虛擬機),以降低現有服務器或服務器集群負載;縱向擴展(Scale-up)則是對CPU、內存、網絡、存儲空間進行升級。橫向擴展通常不需要系統下線,但是縱向擴展則要求被升級的主機(可能是虛擬機或容器)重啟。

應用服務層因為涉及應用服務邏輯,當多臺服務器協同工作時,還需要確保它們之上運行的服務的一致性。這個DevOps問題通常是作為PaaS層一部分任務或是數據中心中的M&O組件來實現一致化的應用升級、部署等。

(3)緩存

緩存層既可能存在于應用服務器層與數據庫服務器層之間,也可能在應用服務器層之上。前者可以被用來降低數據庫服務器的重復計算與網絡負載。后者則被用來降低應用服務器負載與網絡帶寬消耗。緩存技術應用的范圍極廣,從Web服務器、中間件、數據庫都大量使用緩存以降低不必要的重復計算,進而提高系統綜合性能。

云應用、服務的“5層”架構

緩存層的擴展性實現在避免出現SPOF基礎之上(單個節點的緩存服務器或與應用服務器共享節點的方式在生產環境中都是不可取的),主要是如何實現多緩存節點間的負載均衡。最常見的分布式簡單緩存實現是memcached(全球最繁忙的20個網站中,有18個使用了memcached3),在多臺memcached服務器間形成了一張哈希表,當有新的緩存節點加入或老的節點被刪除(或下線)時,現有節點并不需要全大規模改動來生成新的哈希表(這一算法也稱作Consistent Hashing Algorithm,一致性哈希算法)。對于哈希表中數據的替換與更新,Memcached采用的是TTL(Time-To-Live)與LRU(Least-Recently-Used)模式。對于更復雜的高擴展性緩存系統設計,屬于NoSQL類的CouchBase數據庫提供了更為健全的企業級緩存功能實現,例如Data Persistence(數據常存)、Auto-Reblanacing(自動負載均衡)、多租戶支持等。