[译]NGINX 和 ZooKeeper,动态负载平衡和部署(上)
[譯]NGINX 和 ZooKeeper,動態負載平衡和部署(上)
?·?2016-07-22 11:38 原文:NGINX and ZooKeeper, Dynamic Load Balancing and Deployments
譯者:杰微刊翻譯張迪
?
這篇文章改編自Derek DeJonghe在2015在2015年9月的nginx。conf 上的演講。
目錄
介紹
0:00 引言
2:05 主題
3:03 表演者
3:57 目標
云計算和DevOps的概念
5:06 云和DevOps的概念
5:18 微服務
6:44 微服務的復雜性
7:20 部署更多的服務
7:35 持續部署
8:34 Blue Green
9:33 Blue Green 部署
9:47 Blue Green NGINX部署
10:13 自動縮放
11:24 自動縮放示例
11:33 彈性負載均衡器
13:22 為什么是NGINX ?
ZooKeeper 和 NGINX
14:19 服務發現
14:28 ZooKeeper
17:12 Znode 示例
17:57 如何工作
18:53 節點端
20:58 NGINX 客戶端
24:05 Upstream Pools
24:08 應用 x 版本
24:43 Upstream Pools偽代碼
24:55 結果
24:59 請求
25:21 向上游請求
26:13 請求的偽代碼
成果
26:45 部署
28:48 部署示例
29:42 成果
30:07 前后執行
30:23 影響
30:35 問題
0:00 引言
歡迎,感謝大家今天來聽我在nginx.conf上的演講。我在這里講的是動態負載平衡和Nginx和Zookeeper部署。我來告訴你,為什么你應該投資于你的流量控制器,并談論我在日常工作中建立的核心系統。
首先,我是誰?我的名字叫Derek DeJonghe。我是云解決方案架構師和NGINX的愛好者——以至于我的主張已經使NGINX默認了可以在我的組織里上網沖浪和代理。
我注冊了亞馬遜的網絡服務,我為一家名為RightBrain Networks的公司工作。我們是一個高級的咨詢合伙人團隊,為AWS和Azure托管服務提供商。我們幫助企業遷移到AWS上,以至于通過引入CI / CD和基礎設施即代碼,如基礎設施管理和配置管理,來徹底改變他們的工作流程。
我們通常與SAS系統交易,向世界提供服務,等等。我還為更大的組織提供咨詢服務,也為很多較小的組織運行大量的系統。
2:05 主題
所以今天,我們來講一些主題。我們將簡要介紹一下我們正在做這樣事情的原因。我們將談論我們的表演者是誰、我們的目標是什么。我們還要講一些基本的云概念和DevOps.
我們要談論一下我關于動態負載平衡的見解。我們也會解釋一些微服務和自動縮放的分布式體系結構的困難。
我會詳細講解一下發布代碼的流程,在動態基礎設施上使用的方法,和如何利用NGINX和服務發現影響這些解決方案。
?
3:03 表演者
所以我的表演者是誰?表演者是你的最終用戶。我們的用戶想要什么?他們想要零停機,他們不想為新特性或bug修復等待維護模式,他們當然不希望畸形的請求。
我們的其他表演者是開發軟件的團隊。他們想花更少的時間去部署。他們希望部署的時候工作更少。他們想花時間做最擅長的事,并讓產品發展和前進。
3:57 目標
我們的目標是什么?我們想要自動操作生活指數和代碼部署。我們要經常更新。我們要消除冗長部署和部署資源的需要。
你們見過一個堆滿零食的戰爭屋嗎?人們連續36個小時坐在那里。我們需要遠離。
我們要消除數據中心生產能力過剩的需求。我們想要零服務中斷。我們要確保每一個請求被發送到正確的應用服務器和正確的版本。我們也希望動態負載平衡,因為在我的世界里,一切都是建立在云端的;這是一個問題,我夜以繼日必須解決的問題。
5:06 云計算和DevOps的概念
讓我們了解一下以下包含的幾個云和DevOps的概念。
5:18 微服務
隨著驅動器來到云端,很多公司都在解耦他們的獨立應用程序服務器,發展微服務。這種觀念使許多不同的分布式服務共同努力,為您的服務或產品提供支持。
微服務允許你在一個非常細粒度的水平上縮放,這樣做可以節省成本,并能讓開發人員更簡潔地完成工作、更有效地推進。云和微服務在一起就像工程師和咖啡。工程師可能不非得需要他們的咖啡,但有了咖啡,他們的工作會更好一點;這與云和微服務原理是一樣的。
能夠在細粒度的水平上縮放,也只是說,”好的,我們得到了很多的認證請求;我們需要擴展一個應用程序的一部分,而不是在后臺的一些工作,這可能不是在這樣的負載情況下。”
6:44 微服務的復雜性
當你在整體環境中部署的時候,微服務肯定會帶來一點復雜性。讓我們來看一個非常簡單的結構,它可能看起來像一個運行通過的包。我們有一個請求,點擊我們的web層,返回到NGINX,到我們的API層,最后是我們的數據。
重要的是要注意我在這個特殊的例子所說的數據是Solr碎片:他們是不可變的,它們是靜態數據,我們有多個碎片。
這樣,我們的包就通過堆棧返回到最終用戶那里了。
7:20 部署更多的服務
如果我們有另一個服務或十個服務,你會發現這樣會變得多么的復雜。當你想提供零停機和更高可用性得時候,這樣部署將會更復雜。
7:35 持續部署
持續交付是一個完全自動化的系統。持續交付可以讓你花更少的時間來發布工作,提高你的工作效率,保證版本的可靠性。它能減少你新功能、博客等上市的時間,并能提高你產品的質量。
它增加你的客戶滿意度,因為你快速修復了那些錯誤,并以更快的速度發布了那些新功能。我們必須建造作戰室時你不必等待部署時間,這有很多人。它給你更多的時間專注于真正重要的事情——提高你的產品。
8:34 Blue Green
所以這個持續部署、零停機時間等的另一個概念是Blue Green部署。這是如今最受歡迎的一種部署形式。這種部署風格可以無縫地將通信量導向一個新版本的應用程序的代碼,它運行在不同基礎設施上。
無論是DNS或者類似的NGINX的代理,這些部署的支點是通信路由器。這些部署提供零停機時間,如果事情出錯還可以切換回舊版本。這降低了工程團隊的壓力,再次增加了客戶滿意度。零停機這正是我們所要尋找的。
?
未完,等續... ...
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的[译]NGINX 和 ZooKeeper,动态负载平衡和部署(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于多种服务的地理位置查询系统
- 下一篇: Docker的“谎言”