云计算和互联网
Internet构造出了一个虚拟的网络世界,将全世界的人们都连接在了一起,形成了地球村,并且深刻的改变了人们的生产和生活方式。
云计算的愿景是要向全世界的用户提供服务,要实现这个愿景则必然要通过互联网对外提供服务。
但互联网在很多时候更像一个黑盒,充满了不确定性。
这个对用户是好事,因为不需要关心复杂的网络的技术细节,只需要输入需求就可以得到想要的结果。
但对开发和运维同学来说会比较头疼,网络出了问题定位和排查会十分困难。
云计算一方面要面向最终用户提供服务,让用户获得更好的公网使用体验。
另外一方面也还要兼顾开发者和运维人员的使用体验,减少互联网的不确定性进而构筑确定性网络,并且将黑盒的互联网变成白盒。
互联网的不确定性
互联网的设计之初的理念就是”尽力而为”,或者换句话说叫”不是太靠谱”。
而当今很多关键的金融,政务的应用和服务都已上云并通过互联网对外提供确定的和靠谱的服务,这本身就是一个奇迹。
这个背后肯定是有很多很多隐含的秘密的,事实上云计算领域的工程师付出了很多很多的努力把原本不确定和不可靠的互联网逐步变得确定和可靠。
我们今天就揭秘和科普一下这个冰山之下的那部分内容。
首先需要搞清楚互联网都存在哪些不确定性。
不确定的服务质量
类似于之前寄信有可能丢,互联网的数据包也有可能丢。不同的是现在的快递很不容易丢,但互联网的丢包还是比较常见的。
第一个问题是:互联网为什么会丢包?
答案是:因为互联网链路的拥塞。
在现实的物理世界中道路的拥堵会让车趴窝,在互联网的虚拟世界中链路拥塞后,数据包就直接被丢弃了,像掉入了黑洞一样。
第二个问题是:具体是哪部分链路容易拥塞呢?
答案是:运营商之间的互联的链路最容易拥塞。
运营商本地网络和内部的骨干网的带宽都是比较充足的,以国内运营商为例,很多都是百Tbps的带宽,很少会出现拥塞的问题。
但运营商之间的互联带宽,国内的运营商间的出口带宽约20Tbps左右,国际运营商的出口带宽2Tbps左右。还是比较有限的,容易出现拥堵的问题。
这种情况相当于现实世界中的从多车道直接变成了单车道,这种道路变窄的地方是最容易堵车的。
不确定的网络路径
前面提到了互联网是一个全球范围的网络,将全球的国家和人们都连接到了一起,是一个超复杂的基础设施。
互联网厉害的地方在于,我们只需要把数据包扔给它,它会自动的通过自身的路由和转发策略,把数据包送到该送达的目的地。
但默认情况下互联网是做不到像高德地图那样实时的告诉用户从一个地方到一个地方最优的路径是什么,次优的路径是什么,花费的时间是多少,花费的金钱是多少的。
而且一般情况下用户不能选择控制具体的网络转发路径。
另外互联网的转发路径也不是固定的,相同的起点和终点,一分钟前是一条路径,一分钟之后可能就是另外一条路径了。
这种网络路径的不确定性,造成了转发时延的波动和不确定,会对上层应用的体验会造成比较大的负面影响。
不安全的网络环境
互联网是一个开放的环境,在这个环境里面除了遵纪守法的正常用户和业务外,还存在钻漏洞和不守法的黑灰色产业链。
黑灰产最常见的手法是通过DDOS攻击,使用户的业务无法正常的对外提供服务,进而实现勒索赎金或获取非法所得的目的。
这就相当于现实世界中,一群不法分子去一家餐厅,把所有餐位都占住但不点餐,让餐厅也无法正常对外营业。
云计算让互联网变得确定和可靠
云计算的的网络工程师做的很厉害的事情是让不确定不靠谱的互联网变得尽可能的确定和靠谱。
确定的和靠谱的网络
既然我们知道严重的丢包和转发路径的不可控会影响服务质量和服务体验,那么我们就需要降低丢包率让网络转发路径更确定,进而为上层应用提供更靠谱的网络服务,为用户提供更好的使用体验。
我们知道同区域内运营商间互联链路和跨国运营商间的互联链路上均容易拥塞和丢包,那么我们就可以有的放矢的去解决问题,整体上就是让云计算到最终用户的流量尽可能的少跨运营商,尽可能减少整个路径的跳数。
区域内和多个运营商建直连线路
要实现云计算上的云服务到最终用户的流量不跨运营商,绕过运营商间容易拥塞的互联链路,进而减少丢包的目标,当前最有效也最简单的做法是云计算和多个运营商建立直连链路。
之后我们通过BGP协议将同一个IP在多个运营商的链路上广播和宣告给对应的运营商。这样不同运营商里的不同用户通过一个相同的公网IP就可以访问云上的服务,而且流量会限定在一个运营内部,转发路径也比较短,不会出现流量跨运营商的情况。
区域间流量尽可能多走专线
跨国运营商间的链路拥塞和丢包要远比同区域和同国家内运营商间的严重。
为了解决跨国运营商链路的拥塞进而导致用户体验下降的问题,业界最有效的解决方案是让跨国流量就近接入到POP点并尽可能多的走专线网络到达目的地。
以中国周边的亚太区域为例,比如一款游戏业务部署在新加坡,越南的玩家在对战的时候,如果全部走公网,公网路径可能是先走到日本,再从日本走到新加坡,中间会跨越3个以上的运营商。这会产生比较高的丢包问题,进而影响玩家的游戏体验。
如果要提升越南区域玩家的用户体验,可以通过在越南部署一个就近的网络接入点,并连接到越南本地运营商的骨干网,同时将公网IP在越南本地公网运营商广播和发布。
这样越南本地的玩家就可以就可以从越南接入点上车,通过专线到达新加坡服务器。这种模型给玩家的感受和没有跨运营商一样,用户体验比走跨国的公网要好很多。
边缘接入点通过专线连接到核心Reigon接入点。
所有Region之间通过物理专线互联。
安全的网络环境
为了构筑更安全的网络环境,云计算的安全团队安全团队在积累了大量的攻防经验,在云上构架安全的网络环境,将安全能力以服务化的方式供云上用户的使用,通过遍布全球的云清洗网络,分散瓦解攻击洪流。同时,通过云计算独有的协同防御和威胁情报共享,在AI技术的加持下,自动化高效的完成秒级自动处置和防御。
云计算上的安全产品就像是武艺高强和火眼金睛的大内高手,当恶意的黑灰流量到达阿里云网络边界的时候,就可以被迅速的识别出来,并被轰走赶跑。
这样就可以保障到云内部的都是干净的,正常的业务流量,进而让云上的应用和业务安全稳定的运行。
可管理和可编程的开放网络
业务数据化实现网络可管理
前面提到整个互联网像是一个黑盒,其实不仅仅互联网是个黑盒,在业务数据化能力欠缺的前提下,整体的业务和应用对运营人员来说也可能是一个黑盒。比如一个游戏业务,在没有做业务数据化的时候可能不知道其玩家的具体的地域分布和相关的网络质量情况。
如果没有做业务数据化,就获取不到用户具体的信息和留存情况,更不要说做就制定差异化的运营策略和定向的体验优化了。
幸运的是,阿里云上提供了云原生的产品化的业务数据化能力和对应的大数据分析能力。
借助于产品化的业务数据化能力,可以将之前黑盒的上层业务流量进行数据化进而白盒化。通过云上的成熟的大数据分析能力,可以分析出用户的地域分布,掉线率,留存率等关键的运营指标和数据。
此外阿里云还提供了在线实时TraceRoute等网络实用工具,将原本黑盒的互联网的网络路径进行可视化。
网络能力服务化实现软件定义互联网
黑盒的互联网在很多场景下已经无法满足上层业务的蓬勃和快速发展,尤其是在越来越多的中国企业开始走出国门去拓展海外市场的大背景下。
云计算的优势之一是在国内和海外都具备丰富和完善的底层基础设施资源,尤其是互联网的网络基础设施资源,可以让企业快速部署业务形成爆发式发展,省去企业的重复建设的资金成本和时间成本。
在数据中心被软件定义(SD-DC/VDC/VPC),广域网被软件定义(SD-WAN)之后,越来越多的企业也希望云厂商开放互联网基础设施可编程的能力,实现互联网的白盒化,进而实现软件定义的互联网SD-Internet。
举个最简单的例子,对于出海的业务场景,比如说源站部署在新加坡用来覆盖东南亚的区域玩家的大区同服游戏业务,用户希望获取确定性的互联网转发路径和确定的公网质量。比如用户希望自行控制不同区域的用户的接入点,比如越南的玩家优先从越南接入点接入,中国台湾的玩家优先从台湾接入点接入。
而且还需要知道明确的网络质量信息,比如时延和丢包等关键指标。进而根据这些指标做一些互联网接入点的调整。
当前云计算已经具备了初步的SD-Internet的能力,后续还会继续完善这方面的能力,努力将原本黑盒的互联网作成让业务方可编程的白盒的互联网。
总结
互联网是二十一世纪伟大的发明之一,云计算借助互联网对全世界的人们提供服务。
云计算最厉害的地方之一就是通过资源建设和技术手段让不可靠和不靠谱的互联网变得尽可能的可靠和靠谱,从而让上层应用和业务快速和蓬勃的发展。
新的时代背景下,应用和业务对互联网提出了更高的开放化和可编程化的要求,原本黑盒的互联网被软件定义是大势所趋。