写点什么

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

  • 2016-01-03
  • 本文字数:2291 字

    阅读完需:约 8 分钟

网站前端架构技术一直在不断的优化,而要做到全栈优化,就必须要运维、后端架构研发、前端模板渲染研发、系统和网络等各个部门的协作。同时,安全又是网站建设话题中避不开的梗,从 2015 年年初开始,HTTPS 安全协议就已经遍布各大网站的网址里了,而百度是国内第一家推行全站 HTTPS 的大型网站,这其中就有很多关于站内优化和站内安全的经验分享。以下内容是对第61 期百度技术沙龙的三位资深运维工程师的采访。

陶春华:百度资深运维工程师,百度Golang 委员会成员 & Code Master,工作中主要方向在百度接入的Go 项目。

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,服务一段时间后,其他进程替换工作。

许霞:百度资深运维工程师。曾负责反作弊、超链分析、用户行为分析等离线计算系统维护工作。最近两年来专注于网页搜索无线访问速度与接入体验方向。

InfoQ:如何跟后端架构研发、前端模板和渲染研发、系统和网络等各个部门之间进行协作,才能实现整个网站全栈优化的效果?

许:网站速度的提升在公司内部是一个主题方向,并且有一个独立的项目组进行工作开展。项目组中包括网络、服务器、搜索架构等基础技术的工程师,也包括前端渲染、交互设计方向的工程师。整个项目组会整体对网站的优化进行负责,从而实现从各个层面进行速度的优化。而运维部作为一个衔接基础技术和业务的技术部门,就承担了整体分析设计与驱动全栈优化的角色。

InfoQ:百度在 WPO(Web Performance Optimization)上做了哪些措施?对各种监测手段的使用如何抉择?

许:网站性能的监测手段选择主要是两方面的。

首先是基于 JS 的监测数据,这部分数据优点是数据规模大,数据可以根据目的性进行自定义。当然缺点是很难覆盖竞品的情况下对竞品情况的了解,我们会选择第三方监测,包括基调、博瑞,以及海外的同行。通过购买第三方监测服务来覆盖我们在竞品测监测数据,同时也保证了客观性。

陈曦洋:百度资深运维工程师,近 3 年作为主要技术负责人,处理网页搜索的可达性,访问速度,安全搜索等方向事务。

InfoQ:可否介绍一下目前 HTTPS 在业界的适用范围?使用前后的效果对比是怎样的?

陈:需要保护隐私,防止劫持和嗅探,和钱 / 账户打交道的都应该优先上。在这些领域,对用户流量的劫持已经让用户难以忍受,甚至一些临时工写出来的劫持代码会直接让页面功能不可用,可以从用户反馈渠道看到大量的抱怨。另外一方面,一些非法的行为会直接嗅探用户浏览网页的的隐私,获得用户需求信息,甚至直接电话骚扰用户。不安全的浏览会给坏人可趁之机,入侵用户账户,造成财产或者名誉等损失。

百度在上线 HTTPS 之后,用户反馈的页面由于劫持而造成的功能问题减少了一个数量级。之前大家没有上线 HTTPS,很多是在顾忌复杂性,资源成本,和访问延迟。这些问题都会逐渐得到解决,建议大家尽量都改造为 HTTPS。另外看看今年上线 HTTPS 有哪些网站就知道效果如何了。

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

陈:HTTPS 目前在百度主要在搜索支付金融账户等业务,也正在推进支持所有的产品。使用 HTTPS 代表不了完完全全的安全,但是能解决很多问题,也极大的增加了攻击者的成本。但没有“完全的安全”这个说法。一个实际使用中的完整系统总是非常的复杂,用户浏览网页的过程也是一样,在很多环节上,都有各种各样的风险。

网上有清华大学段海新教授对网银及其他使用 HTTPS 网站的攻击演示。光是百度部署 HTTPS,也没有办法完整的保护浏览的整个环节,因为你最终还是要通过百度访问到你感兴趣的网站上去的。而我们发现有些网站为了获取用户的信息,会购买一些非法的服务,可以拿到你的大量信息,甚至电话号码。

而在第 61 期百度技术沙龙现场活动中,陈曦洋还会跟大家分享百度在使用 HTTPS 安全协议之初,都曾遇到过哪些问题,使用了什么样的解决方案等精彩内容!

2016-01-03 18:563974
用户头像

发布了 181 篇内容, 共 100.9 次阅读, 收获喜欢 207 次。

关注

评论

发布
暂无评论
发现更多内容

干货分享丨玩转物联网IoTDA服务系列四-智能网关

华为云开发者联盟

物联网 智能设备 应用场景 华为云 mqtt

ARTS 第 5 周

乌拉里

推荐一款技术人必备的接口测试神器:Apifox

狂师

测试 测试驱动开发实战营 接口测试 测试框架

架构师那些不能碰的禁忌

曲水流觞TechRill

架构师

如何消灭飞机的“黑色十分钟”,AI来帮忙

华为云开发者联盟

华为 AI 智能时代 模型 华为云

一文带你了解Zookeeper所有核心概念

小隐乐乐

zookeeper 分布式 分布式架构

国产开源流媒体SRS4.0对视频监控GB28181的支持

潇湘落木

音视频 云直播 短视频 流媒体

HTTPS详解

Bruce Duan

https 对称加密 非对称加密

Go: 通过代码学习 Map 的设计 — Part II

陈思敏捷

map Go 语言

week8 作业

Shawn

API接口限流

Bruce Duan

分布式限流 单体限流 限流算法

正则表达式基础详解

懒猫

Java 正则表达式 大前端 正则

Kafka两个高性价比的参数调优

我是个bug

Java 大数据 kafka

[POJ 1002] 487-3279 C++解题报告

一直AC一直爽

POJ ACM

架构师训练营第八周作业

张明森

主宰操作系统的经典算法

苹果看辽宁体育

后端 操作系统

Nginx 限流配置

Bruce Duan

nginx

上海首批金融科技“监管沙盒”应用名单出炉 区块链技术备受青睐

CECBC

金融科技 金融监管 创新与安全 智能多元化

一个好用的工作生活平衡方式

霍太稳@极客邦科技

LeetCode 1052. Grumpy Bookstore Owner

liu_liu

算法 LeetCode

实战案例丨ModelArts在数据标注、数据过滤上的应用技巧:自动分组

华为云开发者联盟

人工智能 数据 图像识别 图片 分类

Linux服务器存在某进程CPU过高如何追溯其问题根源?

Nick

Java Linux centos

职场求生攻略答疑篇之 1 —— 加班沉思录

臧萌

程序员 加班

7个获取访问者真实IP的方法,速学!!!

华为云开发者联盟

nginx 大前端 网站 IP 服务器

IO系列——UNIX五种IO模型

Java联盟

io 多路复用 异步IO

一文了解JDK12 13 14 GC调优秘籍-附PDF下载

程序那些事

GC JDK14 秘籍 JDK12 JDK13

节约60%成本!虎牙直播云端大数据是怎么做到的?

腾讯云大数据

Spring Boot + Vue前后端分离项目,Maven自动打包整合

xcbeyond

maven 前后端分离 springboot 部署

Redis系列(七):缓存只是读写回种这么简单吗?如果是,那么请你一定看看这篇文章!

z小赵

redis 分布式 高并发系统设计

Java架构-Java代码规范那些事

我是苞谷

Java

华为云FusionInsight MRS融合大数据平台进阶之路

数据湖洞见

大数据 新特性 FusionInsight 华为云 智能数据湖

Golang和HTTPS在网站前端接入里的作用_语言 & 开发_Xue Liang_InfoQ精选文章