只有程序员才能读懂的西游记
我佛造经传极乐话说我佛如来为度化天下苍生有三藏真经可劝人为善。就如图中所示真经所藏之处在于云端。佛祖所管辖之下有四个区域Region称为四大部洲 一是东胜神洲二是南赡部洲三是西牛贺洲四是北俱卢洲。我佛所在西牛贺洲是主站点。在每个区域Region为保证真经永固设置多个藏经楼称为可用区Available Zone。每个藏经楼里面是一排一排的柜子称为机柜里面有一排一排的格子称为服务器经文就摆放在格子中。在藏经楼中柜子根据经文分门别类的组织起来由不同的神仙进行管理管理一个柜子的经文的神仙访问这里面经文的钥匙就在他手里称为接入层神仙接入层交换机。多个接入层神仙被一组汇聚层神仙汇聚层交换机管着多个汇聚层的神仙被一组核心层神仙核心交换机管着。神仙体系组织严格层次分明不同的接入层神仙交换经文要通过汇聚层神仙同意不同的汇聚层神仙交换经文需要核心层神仙同意。经文的看守要万无一失因而每一层都是分组看护互相监督互相备份称为堆叠。虽说每个柜子里面放满了经文为了防止经文被偷听偷看经文的内容是被仙术封装在一个虚拟的私密空间里面虽然有人可能会偷到物质的经文但是没有仙术打开这个私密空间看到的经文如同空白的一样。这个虚拟的私密空间称为VPC。要解读经文需要使用每一格中一个不起眼的法宝就是称为Openvswitch的虚拟交换机顾名思义就是起到经文在虚拟私密空间和物理空间之间的转换作用。Openvswitch如何转换呢使用的是一种称为VXLAN的封装技术但是必须要事先知道芝麻开门的ID也即VXLAN ID才能看到经文的真正内容。在虚拟的空间中放着真正可以解读的真经。真经有法一藏谈天论一藏说地经一藏度鬼三藏共计三十五部该一万五千一百四十四卷乃是修真之径正善之门。看来已经前中后台分离分为基础服务层组合服务层Controller层共三十五个模块一万五千多个服务真是微服务架构啊。如何能够不要迷失在这个一万五千卷经文中也是很有挑战的事情需要一个索引和指南这就是常说的RPC框架和服务注册与发现中心。为了方便诸多僧侣前来取经灵山脚下会有一个统一的入口地址这里有一个神仙称为金顶大仙专门来接应取经人的。由于前来取经的人很多同时经文也很多所以金顶大仙多起到负载均衡的作用将不同的取经人引领到不同的藏经楼访问不同的经文。金顶大仙所在的灵山脚下是一个世界知名的地址称为外网IP地址这个地址是全球可定位的所有的取经人都先到这个地方金顶大仙通过NAT规则将外网IP地址变成藏经楼的私有IP地址例如2号藏经楼三楼4号藏经楼五楼等。在灵山藏经楼里面是通过私有IP地址定位的。真经已经准备好就差东土取经人了。二、观音奉旨上长安可是佛祖愁啊是这样说的我待要送上东土叵耐那方众生愚蠢毁谤真言不识我法门之要旨怠慢了瑜迦之正宗。怎么得一个有法力的去东土寻一个善信教他苦历千山远经万水到我处求取真经永传东土劝他众生却乃是个山大的福缘海深的善庆、谁肯去走一遭来真经就在灵山可以东土之人愚钝不知道灵山咋办呢要一个法力无边的人告诉他们呀。而且最好能够告诉全世界灵山这里有真经。好在有观音菩萨道“弟子不才愿上东土寻一个取经人来也。”观音菩萨有什么法力呢当然是BGP协议了。刚才那张图画的是一个可用区的情况对于多个可用区的情况我们可以隐去计算节点的情况将外网访问区域放大。外网IP是放在虚拟网关的外网网口上的这个IP如何让全世界知道呢在核心交换外面是安全设备然后就是边界路由器。边界路由器会和多个运营商连接从而每个运营商都能够访问到这个网站。边界路由器可以通过BGP协议将自己数据中心里面的外网IP向外广播也就是告诉全世界如果要访问这些外网IP都来我这里。每个运营商也有很多的路由器、很多的点于是就可以将如何到达这些IP地址的路由信息广播到全国乃至全世界。厉害吧这是我佛如来告诉观音菩萨的“这一去。要踏看路道不许在霄汉中行须是要半云半雾目过山水谨记程途远近之数叮咛那取经人。“就是说你去东土的路上经过了哪些道路要记住路径要记住远近才能告诉取经人这一路应该怎么走。三、玄奘秉诚建大会当观音菩萨来到东土大唐正看到玄奘法师正坐在高台上带领众人诵经念一会《受生度亡经》谈一会《安邦天宝篆》又宣一会《劝修功卷》。菩萨近前来叫道“那和尚你只会谈小乘教法可会谈大乘么”玄奘闻言心中大喜翻身跳下台来对菩萨起手道“老师父弟子失瞻多罪。见前的盖众僧人都讲的是小乘教法却不知大乘教法如何。”菩萨道“你这小乘教法度不得亡者超升只可浑俗和光而已。我有大乘佛法三藏能超亡者升天能度难人脱苦能修无量寿身能作无来无去。”你看在西方极乐净土我佛已经有了更牛的佛经遥远的东方还在读本土的僧人早期从西方传过来的经。这种模式称为CDN。我们部署应用的时候一般会把静态资源保存在两个地方一个是nginx后面的varnish缓存里面一般是静态页面对于比较大的、不经常更新的静态图片会保存在对象存储里面。这两个地方的静态资源都会配置CDN将资源下发到边缘节点。最初佛祖传经都是口口相传经文都会记在高僧大德的心里随着高僧云游天下随着庙宇遍布天下佛经从而遍布天下。这就相当于将佛经缓存在边缘节点。配置了CDN之后权威DNS服务器上会为静态资源设置一个CNAME别名指向另外一个域名cdn.com返回给本地DNS服务器。当本地DNS服务器拿到这个新的域名时需要继续解析这个新的域名。这个时候再访问的时候就不是原来的权威DNS服务器了而是 cdn.com 的权威DNS服务器。这是CDN自己的权威DNS服务器。在这个服务器上还是会设置一个CNAME指向另外一个域名也即CDN网络的全局负载均衡器。本地DNS服务器去请求CDN的全局负载均衡器解析域名全局负载均衡器会为用户选择一台合适的缓存服务器提供服务将IP返回给客户端客户端去访问这个边缘节点下载资源。缓存服务器响应用户请求将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容那么这台服务器就要向它的上一级缓存服务器请求内容直至追溯到网站的源服务器将内容拉到本地。CDN的全局负载均衡策略就相当于当僧人们想读佛经的时候不必要都去西天而是可以就近去问周围有没有庙宇然后向庙宇的师傅去请教佛经。然而缓存的佛经当然是比不上西天取到的经文更新所以东土由于离西天较远缓存的还是小乘佛教要读大乘佛教就要去西天取经称为回源。四、观音显像化金蝉观音菩萨打算度化玄奘法师回源去西天取经。可是怎么去呢地址在哪里呢玄奘法师只听说西天不知道具体的地址这就要问观音菩萨了。这个时候大家才知道西天在灵山大雷音寺距此十万八千里。这个过程称为DNS解析。当在手机上面打开一个App的时候首先要做的事情就是解析这个网站的域名。在手机运营商所在的互联网区域里有一个本地的DNS手机会向这个DNS请求解析DNS。当这个DNS本地有缓存则直接返回如果没有缓存本地DNS才需要递归地从根DNS服务器查到.com的顶级域名服务器最终查到权威DNS服务器。如果你使用云平台的时候配置了智能DNS和全局负载均衡在权威DNS服务中一般是通过配置CNAME的方式我们可以起一个别名例如 vip.yourcomany.com 然后告诉本地DNS服务器让它请求GSLB解析这个域名GSLB就可以在解析这个域名的过程中通过自己的策略实现负载均衡。GSLB通过查看请求它的本地DNS服务器所在的运营商和地址就知道用户所在的运营商和地址然后将距离用户位置比较近的Region里面将三个本地负载均衡的公网IP地址返回给本地DNS服务器。本地DNS解析器将结果缓存后返回给客户端。对于手机APP来说可以绕过刚才的传统DNS解析机制直接只要HTTPDNS服务通过直接调用HTTPDNS服务器得到这三个本地负载均衡的公网IP地址。这个公网IP地址就是金顶大仙所在的位置。其实这个时候金顶大仙已经在等待了。这个时候李世民突然开始说话了曰“谁肯领朕旨意上西天拜佛求经“ 并愿意买下观音手中的两件宝物“锦澜袈裟”一领“九环锡杖”一根佛祖说过”若有取经人坚心来此穿我的袈裟免堕轮回持我的锡枚不遭毒害。“