2020-09-23 11:10:01
龙岩网站建设谈谈谷歌服务为什么如此强大?谷歌服务在全球互联网行业有稳定的立足点。无论是搜索业务还是其他业务,即使在退出中国几年后,我们仍然感受到了它的实力。Google是怎么做到的?
对于身处墙外,自带科学互联网技能的你们,还记得上次在Google上尝试搜索,网页崩溃的情景吗?
关于建站,事实是,这个答案本身并不成立,因为谷歌好像一直都在,除非你连不上互联网,否则它永远不会倒闭。除了搜索引擎,谷歌提供的各种在线服务,无论是Gmail、GoogleDocs还是其他,似乎都同样稳定可靠。根据谷歌提供的统计,在2015年全年,99.97%的时间里,你可以畅通无阻地使用包括Gmail和Docs在内的全套谷歌应用。
似乎全世界的用户都习惯了,但可以说是一个很大的成就,但使用Google的人却很少去想这家公司是如何把“奇迹”变成日常生活的。
谷歌只用三个简短的词来解释:网站可靠性工程(SRE)。
听起来并不伟大,但谷歌在十多年前就提出了这个影响深远的想法。事实上,这种管理哲学具有深刻的含义和广泛的应用。简而言之,它可以归结为这样一个中心思想:
不要让擅长管理网络服务的IT人员来管理你公司的网络服务。让写软件的程序员自己管理。
通过这样做,程序员将开发他们自己的工具来帮助程序运行,而不需要别人去寻找错误。
“我们期待着没有人需要任何管理的那一天。”
——谷歌网站可靠性总监TODDUNDERWOOD。
谷歌工程副总裁BenTreynorSloss在近的一篇文章中写道:“我们的方法的效果是,整个团队的成员会很快厌倦手动执行任务,所以他们都有能力编写程序,而不是以前的手动操作。”
对硅谷的许多人来说,这并不是什么新鲜事。或者说,从亚马逊到Box.com,整个科技界基本都是这样做的。人们称之为DevOps,即开发与运营相结合,将程序员的技术与系统管理员的目标融为一体。然而,尽管这一DevOps运动的发展源于谷歌内部的SRE管理系统和亚马逊内部的类似管理原则,但它是完全不同和自成一体的。只是谷歌一直保密,就像当人们好奇如何实现谷歌高效的在线运营维护时,依然保持低调。
关于免费网站模板,但是谷歌已经进入了一个新的时代,现在比以前更愿意直接讨论这类话题。很大一部分原因是谷歌希望推广自己的云服务,引入更多的外部公司在谷歌的数据和机器网络上运行他们的软件,甚至出版了一本专门针对SRE内部心理学的书,名为《网站可靠性工程》。
系统管理或者运维是计算机技术领域无聊的方面,无论是科技从业者还是圈外的每一个白人。然而,负责谷歌日常运营的副总裁斯洛斯却不这么认为。相反,他认为网站可靠性是“任何产品基本的特征”。毕竟“如果没人能用,这个系统就没用了。”
从零开始的SRE。
被认为是这场SRE运动的“发起者”。起初,谷歌聘请他负责运营和维护,后来是他提出了SRE这个词。"“SRE的意思是,你请软件工程师设计一个操作和维护团队,”他说我假设我是一个SRE系统,并以这种方式设计和管理我的团队。"
对托德伍德来说,公司雇佣像斯洛斯这样的程序员是很自然的。他告诉《连线》杂志,“在谷歌还处于初创阶段的时候,其实还有很多其他优秀的软件工程师,他们更清楚问题可能会如何出现,以及如何把整个项目做好。但是没有人真的想亲手去实施。"
这是一个非常“谷歌”的现象。配置管理工具Chef的AdamJacob同意安德伍德的观点,并解释说,当在线运营增长到足够大的规模时,这是一个预期的转变。"讨论软件开发和实际操作的结合是很自然的,甚至可以说是密不可分。全面看问题才能有更好的产出。"
如果你觉得开发和运维本来就是两个“冤家对头”,这个转型就特别有意思。开发团队想开发新的软件,让大众尽快获得不同的体验,而运维人员想保证一切就绪,无错。较好的办法就是尽量减少改动。
“这是两个不相称的目标。”
诀窍就是把开发和运维结合起来,消除这种对立。
称之为“黑格尔式的主题——反主题情结”。他还承认,没有人会真的为这种说法买单,因为“没有人会再读黑格尔了”,他开玩笑说。然而这种说法恰恰是对的。在这一理念的指导下,谷歌整合了其他业务,加快了整个SRE的转型进程。
预算出错的概率。
关于自助建站,重要的一点是,为了减少开发和运维的冲突,公司不会要求100%的正常运行时间。斯洛斯在文章中写道,真正的情况是用户不需要网络服务100%可用。退一步说,用户分不清100%和99.999%正常运行时间的区别(笔记本电脑、WiFi、电源、ISP的停机概率可以远远大于0.001%)。如果你设定一个合理的正常运行时间低于100%的目标,也就是“错误的预算”,你就有更多的空间来调整变化和进行实验。
“引入‘错误预算’解决了发展和SRE目标之间的结构性冲突,”斯洛斯写道。
“‘停电’不再是一件坏事,而是创新过程中可预见的一部分。开发团队和SRE团队能够无所畏惧地进行管理,这也是正常现象。”
与此同时,谷歌还开发了一个支持系统,以确保新的SRE成员不会退化为以前的系统管理员角色。一般来说,谷歌规定SRE会员不能将超过一半的时间用于开发以外的传统操作。如果运营开始大于开发,Google会把一些运营工作交给一般只负责开发软件的团队,也就是软件工程师。"自觉维护运营与开发的平衡,可以保证SRE团队的工作带宽,可以投入到创意自动化工程的开发中,可以保留手机在运营维护中获得的经验和智慧。"斯洛斯写道。
厨师公司的雅各布认为50%没那么重要,但他喜欢这种态度。他说:“这就是经济学。运营中的破事我们总需要有人去做,人总会有运营商能解决的没完没了的破事。所以,对这些破事设限是完全合理的。"
谷歌甚至发布了招聘SRE员工的严格指导方针。大约50%到60%的SRE人员是通过工程师的招聘过程进来的,而其他人则具有同样的“85%到99%”的技术能力,加上“大多数软件工程师缺乏但对SRE工作非常有用的技术技能”,比如对UNIX操作系统内部原理或硬件联网协议的深入了解。这也是为了保证开发和运营之间的适当平衡。
登月计划的启示。
在很多方面,这是一种新的管理原则。但是在进一步的阐述中,谷歌团队使用了一个非常古老的案例。
谷歌SRE原理的精神祖先实际上是玛格丽特·汉密尔顿,麻省理工学院的程序员,数学和计算机科学的先驱。她在20世纪60年代为阿波罗登月计划开发了程序。汉密尔顿描述说,阿波罗计划的文化之一是“向每个人和每件事学习,包括你不希望看到的人和事。”
作为一名技术人员,在操作和维护方面发挥了重要作用。当年,她经常带着小女儿劳伦去实验室。有一天劳伦不小心按下了一个按钮,结果,一个发射前为阿波罗准备的程序被输入到运行发射后程序的计算机中。这立即导致计算机崩溃。之后,汉密尔顿试图在系统中添加一个新的错误检查代码,以便在实际飞行中防止这种意外情况。老板反对她认为宇航员永远不会犯这样的错误的想法。然而,在阿波罗8号的飞行过程中,这种情况确实发生在宇航员身上。幸运的是,汉密尔顿在系统文档中添加了一个变通方法。在随后的传输中,她给系统添加了错误校验码。
关于免费模板,“只是指出‘它会崩溃’真的行不通。但是如果你说,‘它会坏的,我会告诉你怎么做’,这是非常了不起的。"是这样解释的。“她看到程序会崩溃,看到它会如何崩溃,然后设计了一个预防方案。”
这是用谷歌的话来说,是SRE。听起来没什么大不了的,但这是一个非常强大的想法。它成就了谷歌。然而,像安德伍德这样的哲学家有更大的野心。他们设想在未来的世界里,运维可以进一步成为代码的一部分。安德伍德说:“我们期待着没有人需要任何管理的那一天。”
谷歌的业务是如何发展到今天的,它的成功值得每个创业者深思。