前言
近日,据英国广播公司(BBC)报道,数十名特斯拉车主在社交媒体上抱怨,他们在手机应用程序上收到错误提示“故障代码500”,无法连接到自己的汽车。这种问题该如何避免或者优化?阿里云网络给出了答案。英国《卫报》称,来自美国、加拿大的车主率先报告这一问题,欧洲和亚洲的车主也发现了类似状况。据网络状况监控网站DownDetector的数据显示,在美东时间19日16时40分左右,约500名用户报告该问题,而到当日21时20分左右,仍有60份问题报告。(新闻内容源于网络)
随着特斯拉“断网”事件的发酵,很多人逐渐将目光移到了这次全球范围故障的原因上,比如那个“故障代码500”的错误提示。这个代码是http协议中常见的错误码提示,代表服务器由于遇到错误而不能及时处理用户的http请求,或者说应用程序的高可用出现了问题。
没有高可用的智能,极大可能变"智障"
在没有今天这样的事件发生以前,大家往往都会认为,特斯拉汽车高度智能化,将汽车解锁,启动等车钥匙的功能都集成进入了一张小小的卡片,或是用户手机上的一款APP,这样无需带实体钥匙,便可实现车辆的解锁与启动,方便快捷,体验感拉满。但是我们必须注意到这样的便捷不是没有代价的,其背后有着一套复杂的云端业务处理系统在时刻不间断的提供服务,从而创造出便捷的用户体验。但假如这套系统没有高可用保障,时不时出现各种故障,可真就不如最传统的机械钥匙来的靠谱了,“智能”就变成了“智障”。
如何构建云端应用的高可用?
通常云端应用都需要构建4级高可用架构,即:应用级、集群级、可用区级以及地域级;
应用级高可用:客户端一般都会具备高可用逻辑,有各种重试机制保护,而服务端则要提供相应的服务探活能力,也被称为健康检查。当某个服务实例出现不可用情况,要及时将其从服务链路中隔离,避免请求分发到不可用的服务实体;
集群级高可用:一般云端应用多分集群部署,避免单机故障,某一台机器因为各种意外出现不可用情况时,还有其他机器可以接替服务;
可用区高可用:当代云端应用通常都会把服务部署在多个不同可用区,不同可用区之间是物理隔离的机房,有着独立的供电与网络连接,确保在某一个机房出现整体故障时,服务依然可续;
地域级高可用:在金融、能源等核心关键领域,对高可用有着更高要求,往往还会要求多地域容灾能力建设,即在某一个地域发生洪水、地震等不可抗力的灾难时,服务依然要能够永续。
阿里云应用型负载均衡ALB
要构建上述4级高可用,就离不开负载均衡。阿里云应用型负载均衡ALB可以提供完整的4级高可用能力,确保业务Always Online;
在今年的云栖大会上,应用型负载均衡ALB进行了重磅升级,SLA提升至99.995%!
性能超强的ALB可以处理高达100万QPS的业务请求,拥有极其丰富的高级路由能力,可替代自建3方负载均衡,支持业界领先的可编程能力,ALB不仅与阿里云云原生相关服务深度集成(ACK/ASK/SAE/FC等),还支持原生K8S,