来自Google、Amazon和Facebook等7大知名互联网的系统扩展经验
2019-02-26 来源:多智时代
本文出自澳大利亚一位ID为Dodgy Coder的程序员2012年4月的博客文章。他从High Scalability上整理和总结了Google、YouTube、Twitter、Amazon、Ebay、Facebook和Instagram等7家知名互联网的系统扩展经验。值得注意的是,有些资料时过境迁,已经不再反映最新情况,但是核心的理念和许多具体经验还是非常宝贵的学习资料,值得一读。
不难发现,这7个公司都有以下共同的6大理念:
1.保持简单——随着时间推移,复杂性会自然出现。
2.自动化一切——包括灾难恢复。
3.不断迭代——想扩展到更高水平?必须准备好忍痛弃用现在能工作的某个组件。
4.选择合适的工具——但也不怕自己动手打造。
5.使用缓存——在适当的地方。
6.根据场景,在数据的一致性和可用性之间做取舍。
下面来分别看一下7大公司的经验吧。
可靠、可扩展的存储基本上是任何应用程序的核心。GFS(Google File System)是Google的核心存储平台——它是一个大型分布式结构化的日志文件系统,Google在其中存放了大量的数据。为什么会自建系统,而不是使用其他已有的产品?因为Google需要对系统有绝对的掌控力,同时这个平台也正是Google之所以成为Google的地方。GFS使他们获得了跨数据中心的高可靠性、扩展到数以千计个节点的能力、提供巨大的读写带宽、支持以GB为单位的大数据块处理和跨节点分布操作以降低瓶颈的高效技术。
Google可以更快、更便宜并且在规模上罕有匹敌地发布新的互联网服务。许多公司与Google的想法并不相同,他们把基础设施看成负担,花钱的事儿。新旧两类公司使用的技术完全不同,在系统开发上也少有共识。
大平台方式有一个经常被忽略的优势,就是初级开发者也能很快并自信地开发健壮的应用程序。如果每个项目都需要建立分布式基础设施,那么你很快将会陷入困境,因为懂得这么去做的开发者非常少。协同效应并不总是空谈,从整个系统上着眼改善,可以帮助到建立在这个系统上的所有应用程序或项目。比如:改善了文件系统就可以让所有项目都立即而且透明地(指上层开发者和使用者都无需操心)获益。如果每个项目都使用不同的文件系统,那么在整个技术栈上的改进将不会带来持续不断的增益。
自动化和恢复
建立自管理系统,让工作不需要停机进行。这样允许你更容易地进行以下操作:在多台服务器间重新调配资源、动态添加容量、将机器下线以及从容地处理升级。
并行地执行一个耗时(CPU绑定的)操作,并取优胜者。这尤其适合在CPU富余而IO不足的情况。
学术界有很多很棒的思想,只不过还没有进入生产环境。你现在看到Google所做的事情其实都并不新鲜,只是没有大规模部署而已。
当由许多机器组成的大型集群受限于IO时,压缩不失为一良策。
在不久的将来,云计算一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏云计算,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!
标签: Google 大数据 服务器 互联网 互联网服务 开发者 云计算
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。