借助NGINX Plus管理SSL/TLS證書
Quantum Health解決方案的關(guān)鍵組件之一就是門戶網(wǎng)站。通過這個門戶網(wǎng)站,會員可以管理他們的帳戶、查看報銷狀態(tài)并進(jìn)行相關(guān)活動。Quantum Health會為每個客戶托管并部署一個具有唯一域名的獨特門戶網(wǎng)站。雖然每個客戶都有一個單獨的域空間,其實所有的站點共用同一個代碼庫,其中包含了針對每個客戶的定制化內(nèi)容。與每個客戶都有一個獨立的站點相比,這種方案更有助于簡化維護(hù)操作。
最初,Quantum Health的IT基礎(chǔ)架構(gòu)團(tuán)隊管理兩個SSL/TLS證書,通過使用主題備用名稱 (SAN)字段,每個證書最多可支持100個客戶域。然而,Quantum Health希望摒棄這種模式。因為共享證書的模式使得查看證書所保護(hù)的所有的域變?yōu)榭赡?,即其他人有可能看到Quantum Health的客戶名單。為此,Quantum Health決定轉(zhuǎn)向為每個客戶域提供獨立證書的模式,從而在確保系統(tǒng)安全性的同時也保護(hù)客戶的隱私。然而,在實施新方法的過程中,Quantum Health的Web服務(wù)器 Microsoft IIS 遇到了一個障礙——如果IIS要為每個域部署一個證書,那么IT團(tuán)隊必須為每個客戶都創(chuàng)建一個相同的后端服務(wù)器。因此,公司的IT基礎(chǔ)架構(gòu)團(tuán)隊開始不斷尋找能夠使操作流程更順暢的方法,從而可以大規(guī)模地管理SSL/TLS證書。
根據(jù)之前參與的個人項目和在Gogo的工作經(jīng)驗,Quantum Health公司IT基礎(chǔ)架構(gòu)經(jīng)理Rick Breidenstein對NGINX和NGINX Plus已經(jīng)非常熟悉。NGINX Plus基于開源NGINX軟件進(jìn)行了擴(kuò)展,不僅增加了高級功能,還提供屢獲殊榮的支持服務(wù),從而得以提供完整的應(yīng)用交付解決方案。
Breidenstein表示:“我們正在轉(zhuǎn)向為每個網(wǎng)站部署單個證書的模式,每個域都有自己的唯一證書,這意味著我們從管理兩個證書轉(zhuǎn)向管理數(shù)百個證書。通過證書管理流程的自動化來減少管理開銷,對于我們擴(kuò)大規(guī)模非常重要”,并且 Breidenstein還表示,“輕松管理SSL/TLS證書是Quantum Health選擇NGINX Plus的最初原因,除此之外,NGINX Plus還為我們提供了高可用性以及在白天執(zhí)行系統(tǒng)維護(hù)任務(wù)的靈活性,即無需停機(jī)或中斷面向客戶的服務(wù)就能實現(xiàn)系統(tǒng)維護(hù)”。
實現(xiàn)最后一英里的站點安全
Quantum Health使用一對具有高可用性的NGINX Plus實例保護(hù)其應(yīng)用安全
Quantum Health在其私有云中的Microsoft IIS前面部署了一對具有高可用性 (HA) 的NGINX Plus實例,用于處理SSL/TLS卸載。借助NGINX Plus,Quantum Health可以達(dá)成每個客戶提供單獨的SSL/TLS證書的目標(biāo),同時還可維持只使用單個后端應(yīng)用的架構(gòu)。實現(xiàn)這個效果的方式是在NGINX Plus中指定多個虛擬服務(wù)器,每個客戶域都對應(yīng)一臺虛擬服務(wù)器,同時讓每個虛擬服務(wù)器代理都指向同一個后端服務(wù)。另外,針對來自同一IP地址端口所對應(yīng)的不同客戶域,NGINX Plus使用服務(wù)器名稱指示 (SNI) 來對其進(jìn)行區(qū)分。
通過將NGINX Plus作為處理SSL/TLS卸載的代理,Quantum Health能夠通過一個應(yīng)用支持所有客戶域,并通過為每個客戶提供單獨的證書而提高安全性。
Breidenstein說道:“我們之前所有SSL/TLS站點的SSL實驗室評分都為B。NGINX Plus使我們能夠調(diào)整相關(guān)配置,并將分?jǐn)?shù)從B提高到A。NGINX Plus 讓我們能夠順利通過這最后一英里?!?/p>
可見性和指標(biāo)分析得到增強(qiáng)
借助NGINX Plus,Quantum Health的IT團(tuán)隊具備了從未有過的更深入的分析能力。由于IIS由web團(tuán)隊支持,在安裝 NGINX Plus 以前,Breidenstein的團(tuán)隊不得不向同事尋求信息,例如請求和連接的數(shù)量,以及在需要中斷時關(guān)閉系統(tǒng)的最佳時間。
Breidenstein解釋說:“自從安裝了NGINX Plus,我的團(tuán)隊擁有了前所未有的可見性。我們能夠獲得NGINX Plus的訪問日志,并將其發(fā)送到Sumo Logic來收集大量指標(biāo)。例如,我們可以看到有多少404錯誤、404錯誤最多的域,以及其他更多信息?;旧螻GINX Plus訪問日志中的所有數(shù)據(jù)都可以在Sumo Logic中進(jìn)行分析。在擁有這些數(shù)據(jù)之前,當(dāng)我們有需要影響服務(wù)的事件時,我們必須依賴另一個團(tuán)隊來告訴我們何時可以關(guān)閉系統(tǒng)?,F(xiàn)在,我們可以自己回答這個問題并做出靠譜的決定,從而支持不斷增長的業(yè)務(wù)?!?/p>
與此同時,Quantum Health也在使用NGINX Amplify。Breidenstein表示:“通過NGINX Amplify,我能看到活動連接的數(shù)量和系統(tǒng)負(fù)載等一些關(guān)鍵指標(biāo),這樣,我們就不會遇到任何處理容量問題。任何時候,我都可以看到活躍客戶的平均數(shù)量是150個,每天總點擊量為400,000次。通過NGINX Amplify,我們發(fā)現(xiàn)自己還遠(yuǎn)遠(yuǎn)沒有達(dá)到CPU和內(nèi)存的極限。”并且Breidenstein還補(bǔ)充道:“我認(rèn)為,NGINX Plus沒有帶來任何限制來阻礙我們贏得更多客戶并持續(xù)擴(kuò)展業(yè)務(wù);在這過程中使用 NGINX Plus,我們不必?fù)?dān)心業(yè)務(wù)會突然中斷?!?/p>
NGINX Amplify允許輕松訪問關(guān)鍵指標(biāo),有助于應(yīng)用監(jiān)控
通過自動化更智能地開展工作
Breidenstein的目標(biāo)是實現(xiàn)NGINX Plus的自動化部署,讓不熟悉NGINX Plus或Linux的員工也能夠部署新代碼。
借助于Python腳本、用于證書管理的Lemur和Rundeck編排器,Breidenstein全面實現(xiàn)了NGINX Plus的自動化部署,為Web開發(fā)人員提供了一個用于輕松部署新站點的自助服務(wù)門戶。
現(xiàn)在,開發(fā)人員只需插入幾個變量并在Rundeck的測試區(qū)域生成一個配置文件,就可以部署一個新站點。只需要單擊一個按鈕,Rundeck就可以將新配置和SSL/TLS證書從測試區(qū)域部署到生產(chǎn)環(huán)境中的兩個NGINX Plus代理,以便它們能保持同步。在將配置推送到生產(chǎn)環(huán)境后,新站點就可以上線。
Quantum Health使用SVN來幫助控制對NGINX Plus配置文件的更改,以便團(tuán)隊在需要排除故障時可以看到這些更改。
專業(yè)服務(wù)和支持服務(wù)助您擺脫遷移煩惱
選擇NGINX Plus后,Quantum在兩周內(nèi)完成了從決策到部署的過程。這中間需要大量的咨詢和講解,而NGINX的專業(yè)服務(wù)團(tuán)隊使這一遷移過程變得輕松很多。
在遷移期間,Breidenstein與NGINX的一名專職的專業(yè)服務(wù)工程師通力合作,他表示:“NGINX的專業(yè)服務(wù)團(tuán)隊精通業(yè)務(wù)并提供了極大的幫助,與我一起工作的工程師非常善于溝通,并向我介紹了遷移過程的相關(guān)知識,因此我能夠在這個過程中不斷學(xué)習(xí)。NGINX為我們提供了寶貴的支持,我建議在未來的更多項目中借助NGINX的專業(yè)服務(wù)。
遷移完成以后,Quantum Health還沒有再次需要技術(shù)支持的情況。但技術(shù)支持是被包括在NGINX Plus中的,這是Quantum Health早期選擇NGINX Plus的一個關(guān)鍵因素。Breidenstein指出:“如果出現(xiàn)什么問題,我不想獨自面對。NGINX Plus是我唯一的選擇,因為我需要專家的支持作為強(qiáng)大后盾?!?/p>
為未來奠定堅實的基礎(chǔ)
轉(zhuǎn)向NGINX Plus解決了當(dāng)前的SSL/TLS和部署問題,同時,這也幫助Quantum Health為實現(xiàn)未來的增長做好了準(zhǔn)備。隨著Quantum Health引入新客戶并建立新的Web門戶,NGNIX Plus為Quantum Health提供了堅實的架構(gòu)基礎(chǔ),使其比以前更容易擴(kuò)展。Breidenstein表示: “NGINX Plus使我們能夠支持更多客戶,而不必改變后端配置?!?/p>
由于Quantum Health的架構(gòu)是為高可用性而設(shè)計的,因此能夠在任何時候執(zhí)行站點維護(hù)而無需中斷對客戶的服務(wù)。
最后,隨著流量的增加,NGINX Plus為Quantum Health提供了負(fù)載均衡功能,使Quantum Health能夠進(jìn)行擴(kuò)展并處理比當(dāng)前多幾倍的吞吐量。最終NGINX Plus將成為Quantum Health的前端負(fù)載均衡器以支持多個上游后端服務(wù)器。