Golang和HTTPS在網站前端接入里的作用

jopen 8年前發布 | 19K 次閱讀 Go語言 HTTPS

網站前端架構技術一直在不斷的優化,而要做到全棧優化,就必須要運維、后端架構研發、前端模板渲染研發、系統和網絡等各個部門的協作。同時,安全又是網站建設話題中避不開的梗,從2015年年初開始,HTTPS安全協議就已經遍布各大網站的網址里了,而百度是國內第一家推行全站HTTPS的大型網站,這其中就有很多關于站內優化和站內安全的經驗分享。以下內容是對第61期百度技術沙龍的三位資深運維工程師的采訪。

陶春華:百度資深運維工程師,百度Golang委員會成員 & Code Master,工作中主要方向在百度接入的Go項目。

Golang和HTTPS在網站前端接入里的作用

InfoQ:BFE架構是如何做到在高并發訪問的情況下不丟失訪問請求的?

陶:BFE架構能做到這一點主要依托了Golang對并發訪問的支持:goroutine機制在并發處理上非常高效;編程模型也是大家熟悉的線程模型,容易掌握。

InfoQ:后臺統一日志收集使用的是什么技術?以及如何在不影響業務流程的情況下保證日志的準確性和實時性?

陶:對訪問日志我們采用兩個手段處理:一是開發了一個專用的Reader程序,解析出部分關鍵請求信息,通過實時接口發送到后臺匯聚服務,用于實時的流量識別與調度。二是公司有日志收集系統,統一進行日志的收集、統計與存檔。

InfoQ:BFE前端接入是如何做到防攻擊的?在不影響主業務流程情況下具體安全策略是如何運行的?

陶:安全主要是通過WAF服務來保障。WAF Server是和BFE同機部署的應用層防火墻,BFE會把流量轉發到WAF服務程序。根據安全規則,WAF服務對訪問數據進行檢查,一旦發現違反安全規則的訪問,則立即封禁該訪問。這個過程獨立于BFE的其他處理邏輯。

InfoQ:BFE前端目前有沒有做到自動化接入產品線?如果有的話,請談談是如何做到這一點的?

陶:目前有部分是自動化接入產品線的,主要是出于為部分重要配置的審核考慮,才使用了自動化接入。

InfoQ:BFE架構下流量控制策略是如何設計的?當初為什么使用這種設計方法?

陶:流量調度分為外網調度和內網調度兩個層次。

外網調度,主要考慮如何控制DNS系統,將用戶引導到合適的入口IDC。內網調度,主要考慮在業務集群間的負載情況,將流量從一個BFE集群,分流到多個等價的業務集群,權重是根據負載情況實時計算得到的。

InfoQ:GO語言在前端接入設計上存在哪些“先天不足”?主要的解決措施是什么?

陶:對BFE的應用場景來說,主要是GC帶來的不確定的延遲。為此我們設計了多進程輪轉的解決方案,基本思路是當前服務的工作進程關掉GC,服務一段時間后,其他進程替換工作。

許霞:百度資深運維工程師。曾負責反作弊、超鏈分析、用戶行為分析等離線計算系統維護工作。最近兩年來專注于網頁搜索無線訪問速度與接入體驗方向。

Golang和HTTPS在網站前端接入里的作用

InfoQ:如何跟后端架構研發、前端模板和渲染研發、系統和網絡等各個部門之間進行協作,才能實現整個網站全棧優化的效果?

許:網站速度的提升在公司內部是一個主題方向,并且有一個獨立的項目組進行工作開展。項目組中包括網絡、服務器、搜索架構等基礎技術的工程師,也包括前端渲染、交互設計方向的工程師。整個項目組會整體對網站的優化進行負責,從而實現從各個層面進行速度的優化。而運維部作為一個銜接基礎技術和業務的技術部門,就承擔了整體分析設計與驅動全棧優化的角色。

InfoQ:百度在WPO(Web Performance Optimization)上做了哪些措施?對各種監測手段的使用如何抉擇?

許:網站性能的監測手段選擇主要是兩方面的。

首先是基于JS的監測數據,這部分數據優點是數據規模大,數據可以根據目的性進行自定義。當然缺點是很難覆蓋競品的情況下對競品情況的了解,我們會選擇第三方監測,包括基調、博瑞,以及海外的同行。通過購買第三方監測服務來覆蓋我們在競品測監測數據,同時也保證了客觀性。

陳曦洋:百度資深運維工程師,近3年作為主要技術負責人,處理網頁搜索的可達性,訪問速度,安全搜索等方向事務。

Golang和HTTPS在網站前端接入里的作用

InfoQ:可否介紹一下目前HTTPS在業界的適用范圍?使用前后的效果對比是怎樣的?

陳:需要保護隱私,防止劫持和嗅探,和錢/賬戶打交道的都應該優先上。在這些領域,對用戶流量的劫持已經讓用戶難以忍受,甚至一些臨時工寫出來的劫持代碼會直接讓頁面功能不可用,可以從用戶反饋渠道看到大量的抱怨。另外一方面,一些非法的行為會直接嗅探用戶瀏覽網頁的的隱私,獲得用戶需求信息,甚至直接電話騷擾用戶。不安全的瀏覽會給壞人可趁之機,入侵用戶賬戶,造成財產或者名譽等損失。

百度在上線HTTPS之后,用戶反饋的頁面由于劫持而造成的功能問題減少了一個數量級。之前大家沒有上線HTTPS,很多是在顧忌復雜性,資源成本,和訪問延遲。這些問題都會逐漸得到解決,建議大家盡量都改造為HTTPS。另外看看今年上線HTTPS有哪些網站就知道效果如何了。

InfoQ:HTTPS目前在百度的使用場景有哪些?能不能做到完完全全的安全?

陳:HTTPS目前在百度主要在搜索支付金融賬戶等業務,也正在推進支持所有的產品。使用HTTPS代表不了完完全全的安全,但是能解決很多問題,也極大的增加了攻擊者的成本。但沒有“完全的安全”這個說法。一個實際使用中的完整系統總是非常的復雜,用戶瀏覽網頁的過程也是一樣,在很多環節上,都有各種各樣的風險。

網上有清華大學段海新教授對網銀及其他使用HTTPS網站的攻擊演示。光是百度部署HTTPS,也沒有辦法完整的保護瀏覽的整個環節,因為你最終還是要通過百度訪問到你感興趣的網站上去的。而我們發現有些網站為了獲取用戶的信息,會購買一些非法的服務,可以拿到你的大量信息,甚至電話號碼。

而在第61期百度技術沙龍現場活動中,陳曦洋還會跟大家分享百度在使用HTTPS安全協議之初,都曾遇到過哪些問題,使用了什么樣的解決方案等精彩內容!

</div>

來自: http://www.infoq.com/cn/news/2016/01/go-and-https-in-frontend

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!