一、架构介绍
1.1 为什么要进行网络优化
进入跨境电商行业以来,国内到海外网络问题算是一个比较头痛的问题,之前也想过许多办法,比如在香港增加中转节点,但国内到香港这段问题还是比较严重,特别是有开大会期间,网络不稳定更是严重,印象中最严重一次丢包率达到了80%+都发生过。后来咨询机房是否能够为我们提供国际加速,有是有啊,但国际加速成本费用是一笔不小的支出,同时机房为我们提供的国际出口并不是特别稳定,当出线路出现问题时,只能人工介入。基于成本与稳定性考虑,必须找替代方案了,于是有了此文。这篇文章只是探讨更多的可能性,并不是说是最优方案,这只不过是目前阶段最适合我们的方案,供被同问题困扰的同学提供一个种解决思路。
1.2 内网互联
我们主要借用一家云提供商的一个特性,他们各个数据中心内网可以互联,包括香港云主机,也就是说,我购买2台云主机,一台在国内,一台在香港,那么这二台主机可以通过内网互联。基于这点玩法就有多了。比如VPN,Proxy等,我们是基于TCP Proxy设计的方案
1.3 工作原理
Otter-Node节点部署在云主机上,国内与香港各部署一个节点,它们的通信方式就能通过内网互联,这就基本解决了node网络传输问题。那这里的HAProxy是用来干什么的呢,这是为了让node节点读写DB数据啊,一般公司DB是不会有外网的,那咋办?这里就引入了HAProxy TCP代理,在机房有外网IP的服务器部署HAProxy,然后通过HAProxy访问内网的MySQL服务,这样整个链路都通实现互通了。最后127.0.0.1:3306用于解决什么问题呢,我们有些机房并不支持VIP漂移,通过本地TCP代理解决机房HAProxy高可用问题,这也算是一个去中心化的思想吧。
1.4 有什么优缺点呢
带来的好处
1. 成本可控。云主机费用并不高,相当于买云主机送国际专线。
2. 高可用,整个环节无单点。
3. otter-node端对端内网传输。
4. HAProxy去中心化。
5. 对于Otter基本无侵入。
6. MySQL主机无需外网支持。
缺点
整个架构主要增加了HAProxy,而且还需要维护多个HAProxy服务,不过这对我来说,也不是什么大问题哈,运维发展到今天,上自动化工具吧,我就是用Salt来解决这个问题,部署及配置全自动化。
二、Salt自动化部署及配置管理
有空了补上,有了思路实现有许多方法。