BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Google弹性可伸缩云解决方案详细架构

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 刘振涛 关注 23 他的粉丝 发布于 2015年4月17日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Google最近发布一组论文,提供了一个创建运行在Google云平台上的弹性可伸缩解决方案的架构指南。本文摘自每个组件的详述论文,提取了主要的概念和建议,对这些指南稍作改动即可应用于在其它云平台部署web应用。

下面这张图表展示出一个弹性可伸缩应用的主要组件,图片下方是每个组件的描述:

地区(Region– 论文仅讨论了单一地区多区域的方案,尽管应用可以被部署到多个地区。

区域(Zone– 地区内部的一个位置。区域之间的网络连接迟延很低,且具有很强的妥善处理节点间通信的能力。

负载均衡器(Load Balancer– 对客户端而言相当于请求的入口,可以在不同实例间均衡地分发请求。如果必要的话,一个负载均衡器可以在多个地区间传播请求。

实例(Instance– 一个运行在GAE上的特殊虚拟机。

实例组-在某个区域内部聚合到一起的实例,并且由其中一个实例负责创建和关闭实例的组管理者

自动伸缩器Autoscaler,未在图示中列出)- 这个组件根据当前负载状况指示组管理者创建或停止实例。自动伸缩器利用一个基于CPU利用率、一个云监控指标,抑或实例每秒接收的请求数的策略实现自动伸缩的功能。

云SQL-通过地区级的管理,这个SQL存储解决方案可以自动地在区域之间被复制。

云存储-这个存储解决方案为所有的实例保留对象(通常是文件),状态数据和上传的文件应该被保存在这里。

以上提及的组件对于一个可伸缩的解决方案来说至关重要。为了保持弹性,有必要提供启动实例以及在一些实例失去响应时进行重启并重新配置它们的方法,你可以利用以下组件来实现:

启动脚本-启动脚本是一些常驻在实例、云存储中或通过一个指定的URL获得的脚本,在实例启动或重启的时候被执行,负责设置实例并确保所有本地服务成功运行。这些脚本可以安装软件或执行更新操作。

正常运行检查-这是一个负责在实例上运行检查来查看它们是否正常运行的GAE组件,所有请求只被发往健康运行的实例。

后端服务-这是一个与正常运行检查和实例组相关的组件,中转来自负载均衡器的请求。

这篇论文提供了设置并部署Redmine的指南。Redmine是一个基于Ruby on Rails的项目管理应用,相关内容请访问 Github项目

论文也包含了如何基于页面浏览、请求、页面大小以及其它指标的平均值计算运行一个web应用的开销的建议。

查看英文原文:The Architecture of a Scalable and Resilient Google Cloud Solution


感谢邵思华对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT