说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Clay.io基于AWS、Docker、HAProxy等的10X架构打造

HTML文档下载 WORD文档下载 PDF文档下载
当下基于云的部署大大缩短了应用的发布周期,让机构可以将更多精力投入到产品特性设计上。然而,大规模应用架构从来都不是件容易的事情。从本文起,我们将带大家领略Clay.io的10X架构,首先关注的则是技术上的选择。

近日,Clay.io的Zoli Kahan开始了“10X”系列博文的撰写。通过这个系列博文,Zoli将分享如何只使用一个很小的团队支撑Clay.io的大规模应用。首期分享则是对Clay.io所使用技术的盘点。

下为译文


云方面

CloudFlare

CloudFlare主要负责支撑DNS,并作为一个防护DDoS攻击的缓存代理,同时CloudFlare还负责处理SSL。

Amazon EC2 + VPC + NAT服务器

基本上Clay.io的所有服务器都是Amazon EC2类型,其中大部分是中大型实例。同时,我们还使用Amazon VPC将所有服务器托管在一个私有网络,从而这些服务器很难在外网访问。为了访问这些私有网络,我们还配置了一个NAT服务器,它同时也作为一个VPN终端,用以内部网络使用。

Amazon S3

我们使用Amazon S3作为应用的CDN后端,它托管了Clay.io的所有静态内容。为了安全和性能因素,我们为之配置一个独立的域名——cdn.wtf,一个cookie-less域名。

HAProxy

HAProxy是一个非常高性能的反向代理,我们使用它将流量路由到不同的服务。基于Clay.io的性质和平台所需支撑的内容(比如遗留代码),HAProxy意义重大。在以后文章中,我将对这点进行深入讨论。

当下,Clay.io使用的是一个配置了m3.medium的HAProxy服务器。在流量增加后,HAProxy必将迎来一次无可避免的升级。此外我们还会在前端增加一个Amazon ELB,在需要时进行横向扩展。


应用服务器——Docker

Docker用于管理Linux容器,类似于轻量级的Virtual Machines(同时还省略了隔离和安全保障)。Docker的好处是可以做代码封装,并且忽略底层服务器特性做任意的代码重用/移植,在下文我们将详细介绍。

演示应用服务器——Docker

在Clay.io,演示环境服务器和应用程序服务器相同,并且和生产环境运行相同的二进制Docker文件。对于防止不必要的生产系统破坏和宕机,这种设置环境非常重要。

数据存储

MySQL

MySQL是一个久经沙场的关系型SQL数据库,当下Clay.io的数据大部分都依赖一个主从设置的MySQL集群。在这个集群中,一个主节点和两个从节点服务器支撑了大部分的用户查询。当然,在未来我们可能需要对主节点进行分片。但是期望不要太早,因为我们正在考量其他数据库。

Logstash

Logstash是个日志聚合工具,通过Kibana进行分析。当下,它基本上负责了Clay.io所有的应用程序日志,以备系统发生错误时使用。使用Kibana,我们避免了必须SSH到一个机器进行日志检查。

MongoDB

MongoDB是个NoSQL文档存储数据库,当下MongoDB为我们的一些开发端点和A/B测试框架Flak Cannon提供服务。

Memcached

Memcached使用了键值存储类型,非常类似于Redis。Memcached在Clay.io主要负责一些遗留Web应用,用以缓存MySQL的查询结果。毫无疑问,随着系统的迭代,最终它将完全被Redis取代。

DevOps

Ansible 

在我们系统中,Ansible被作为服务器管理工具的一个选择。对于大部分开发者来说,它非常易于学习和使用,Ansible可以帮助许多日常DevOps的自动化处理,由一个专门的运营团队负责。

其他服务

GitHub

GitHub——无需多言,这是个非常强大的源代码管理工具。

Uptime Robot

Uptime Robot是个免费的监测服务,我们使用它来监测健康检查和端点。如果有问题发生,它可以在5分钟内给我们发送电子邮件和文本消息。

Drone.io

Drone.io是一个连续的集成服务,我们使用它为各种项目连续不断的运行测试集。它非常类似于TravisCI,近日我们还释放了一个开源的自托管版本。

Docker Registry

当下,我们使用官方的Docker Registry来管理Docker容器,它类似于Docker专用的GitHub。

New Relic

New Relic是个服务器和应用程序监视服务,主要用于服务器监视,在磁盘和内存满载时进行提醒。

Google Analytics

Google Analytics是我们主要的网站分析跟踪工具,用于跟踪网站具体功能,我们使用了定制事件特性。

Google Apps

Google Apps为我们clay.io域名提供邮件,并为机构提供了一个共享的Google Drive设置。

Last Pass

Last Pass是一个密码管理服务,它允许我们便捷的在所有团队共享公司认证信息。

未来

虽然我们对当下的设置已经比较满意,但是我们仍然期望在数个月内对系统的某些方面进行升级。审视最初的基础设施版本,有许多地方并没有花大量的时间去设计。而就是这些地方,成了未来系统扩展时必须面对的瓶颈。

  • Kubernetes在大规模Docker容器管理上表现出了惊人的潜力,也是我们重点跟踪的项目之一。毫无疑问,在该项目成熟时,必将成为我们生产环境的一部分。
  • Amazon Glacier,用于数据库备份,是我们未来的一个实现目标。
  • RethinkDB,虽然当下还非常不成熟,但其潜力不容忽视。和Docker一样,我们将紧跟这个项目的发展。在未来弃用MySQL时,它将是一个不错的选择。
原文链接:How Clay.Io Built Their 10x Architecture Using AWS, Docker, HAProxy, And Lots More(编译/童阳 责编/仲浩)
看Java技术基础的eBay如何评价他们的Node.js首次尝鲜 Jolla发布首款Sailfish系统手机 无缝兼容Android应用 NPD:全球智能手机出货量2013年将首次超过功能手机 聚合数据左磊:不走寻常路 做国内最好的数据聚合平台 从程序员到软件商 需要注意些什么? 共享软件海外营销策略与实战(上海站) 直接拿来用!最火的Android开源项目(完结篇) 一步加入云生态系统 参加第五届中国云计算大会的十大理由 传苹果iOS7将深度整合Flickr 用户受益最大 Chrome 27来了:页面加载快5% 可同步数据到Google Drive 微软发布新一代游戏主机Xbox One 搭配全新Kinect 2.0体感系统 Unity游戏引擎向iOS与Android开发者免费 Twitter获“下拉刷新”专利 开发者仍可自由使用 复杂产品的响应式设计【流程篇】 使用Javassist库为Bytecode Instrumentation开发JVM Agent 内容解析创业公司Stremor推出4款API 2013中国云计算榜单之三:174家云应用服务商,繁花似锦! 盘点各大云服务提供商:麦当劳=AWS,汉堡王=? BlackBerry Jam亚洲开发者大会9月将在香港开幕 把服务器搬进来:Splashtop在中国搭建Bridging Cloud Web框架全对比第五期 新增Windows环境 前Tumblr首席开发者回忆录:一个人也能开发出好产品 测试者和开发者,为何我们不能友好地相处? 讲师秀之11:何刚谈京东的云机遇 讲师秀之10:武汉大学张焕国教授,可信计算是云计算之成败关键 【上海直播】Windows Azure+世纪互联:中国云计算“烈火烹油” 最新版Chrome浏览器推出全新语音搜索功能 惠普第二财季净利润同比下滑32% PC和服务器销售不佳 讲师秀之11:网易汪源的成长故事 PPT集萃(三):六位国内技术大牛分享巨型平台的打造与应用 聚焦全球移动市场:创新以色列 科技巨头的倾慕之地 jbuilder8 & sqlserver2000 数据库连接问题 编译例子代码出错 如何把动态生成的表里的内容保存下来? 请问如何修改weblogic服务检测信息? sql语句问题 在线听mp3,怎样实现歌曲连续播放? 这么常见的问题为什么没人回答?(EJB--分布式数据库) Zez、大家都来帮我看看,还没解决呢!?!??!?!? 如何跟踪应用程序在数据库中的执行? c#中,有没有“浏览控件”??? 如何在9x和NT系统下不通过额外的软件隐藏驱动器和文件夹? 可以这样理解Container吗? datagrid分页问题 求助?Microsoft Visual Studio .NET 2003 开发软件问题? dbgrid的数据表中怎样实现多行记录的删除? windows 2000 网络问题 一个循环查询的存储过程问题 数据转换的中文乱码问题 jive安装数据库配置问题? 哪里错了?好像和游标有关系。 我的ComboBox用的是Drop List模式,为什么会出现List Box拉不下来的情况? 如何将exe的安装文件转成msi格式 关于sql语句出错信息 gei fen 用过winrunner的高手请进,100征求解答 一个问题 如何将以pdf为扩展名的文件里的文字转换成可以编辑的文字 为什么中文可以换行显示,英文不可以呢? 全局函数放在那里 大家聊聊远程控制的优缺点!!!! 怎样用jsp做广播通知?--在线等 如何用不是SA的账户去激活SA级的作业? 关于execl向数据库复制的问题 >一起学习:VFP右键功能!< Tdatabase组件的应用 请问这个检索的SQL语句怎么写? 这样是否就一定安全了,高手进 为什么直接删除不行 asp.net问题,马上给分 在线请教各位一个简单的问题--请问oracle8哪里有的下栽,急!!!!!!! 谁给我Beyond 2003演唱会下载地址! 为什么同一存储文件的程序在win2000个人版下出现:"存储文件时的共享违例"但是在win2000 server下没有,请教各位大师 用什么程序,把用户的安全性调到最低(可以出现警告对话框)??? 在线等待,马上揭贴 谁知到哪里有下载Jbuilder啊。。 如何在Win2000下注册服务程序呢?分不够再加 请问:如何解决“JDBC 服务器”配置不受支持的问题。 万分火急!请大侠指教(100分立即给) 如何在窗体上动态加载图标? MM明天生日放分庆祝(一) 如何进入Java的门? APS.NET下Excel调用:如何让服务器端只运行一个Excel实例?如何结束Excel进程? Can you lease advise i am a boy 我搞不懂英语用法的 位置 告诉我 语法书里那里有 哪个讲解i am a boy 我搞不懂英语用法的 位置 告诉我 语法书里那里有 位置的讲解 是 动词句型吗? bi qie mie san jie na在蒙古语中是什么意思 a chinese government building的中文 I'll never no regret to choose you,becayse you are my all 有暑假打算去北京新东方学外语的吗 select的 名词与形容词,fluent的名词与动词,approve的名词与形容词,nature的形容词与动词要简洁! 2004哪个中国国家领导人逝世? 为什么中央领导人去世后,遗体都要放在青松翠柏丛中?有什么象征意义吗? lifeline .是什么意思?谢谢阿 , 我刚刚学了定于从句,需要很多定于从句的练习,附加答案,谢谢最好要简单一点的 女子给骗子汇钱逼停出租车 的哥及时中杭州国际人才交流与合作大会明天开幕 多项违纪 孙杨被处停赛、停训、暂停一浙江杭州等地连续雾霾 “最美马拉松”“海龟”与“土鳖”结合 浙江发展关键金华房地产投资增速连续七个月居全省首张高丽在上海浙江调研:东部地区要带头杭州欲从钱塘江引风进城吹走灰霾“国家记忆”美国档案馆二战缅印战场影浙江省政协公开征集2014年重点履职日空自航空展开幕 蓝色冲击波进行飞行资讯 | 如何把一部“炮灰”电影做到资讯 | 05超女三甲启动芒果TV 告诉你五个方法,一眼辨别出烂片解析卫视跨年战:TFBOYS、冰晨恋成年人必看10大职场技法最悲催首富、最奇葩公告、最慷慨同学,重磅!中国军方大动作 意味着什么?iPhone 7 Plus的规格、功为什么程序猿喜欢在深夜工作?原因万万100个人里面只有3个人能看出来,你25岁上下的你,现在混得怎么样?豆瓣
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘