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

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(编译/童阳 责编/仲浩)
电影结束画面的卷动效果-VB资料 二进制操作截取VCD片断 -VB资料 非常VB测声卡 关闭屏幕保护功能,改变屏保等待时间 -VB资料 VB获取桌面窗口图象 红色警戒&amp;终级动员令-VB资料 检查是否安装声卡 -VB资料 将 .flc 动画档放在某一个 hWnd 之中播放 -VB资料 截取屏幕图像-VB资料 开机,自动更换墙纸 -VB资料 控制PC喇叭 -VB资料 利用VB测声卡 利用VB进行多媒体程序设计初步 利用Visual Basic设计多媒体应用程序 满屏播放AVI文件-VB资料 平铺贴图背景 -VB资料 破解WINDOWS屏幕保护密码 -VB资料 巧用VB编程使XMPLAYER自动播放VCD VB取得 WAV 文件信息 趣味撞球VB5应用程序一例 VB如何从&quot;SOUND.DRV&quot;中提取声音 VB如何设定墙纸的显示方式? VB如何用API及MMSYSTEM.DLL播放AVI文件 VB如何知道计算机是否安装声卡? 设计简单的屏幕保护程序 -VB资料 使机箱内的小喇叭发出不同的声音 -VB资料 使用VB设计具有「动感」的命令图标栏 五彩缤纷的清屏效果-VB资料 系统是否支持声音 -VB资料 一个实用的VB屏幕程序 一个自动更换墙纸的小软件-VB资料 我想编一个网页管理软件,有如下要求。。。 大家帮看一下,加注释的一句是什么意思 高分求救!!有关数据同步!! 北京的程序员薪水如何(6000/月)? 大放分﹗﹗即放即給﹗﹗ 关于WinSock通信 我用怎样得到过滤后有多少条记录呢? 存储过程问题,还有些小麻烦,帮帮忙呀,谢谢:) 急~~!关于ChildView类的问问题~~!!请大家帮助。谢谢。 怎么用Container Managed Persistence EntityBean实现对数据库的增删改,最好用jsp调用 如何知道光驱是打开的还是关闭的??? 程序运行一会儿,BDE 数据库引擎空间不够,什么原因?? 在asp.net里怎么引用word对象,和对它进行操作??? 这个问题不好弄! 讨论:关于使用UDP作为服务器主要协议会碰到的问题? 我安装的rh8.0中,/dev/里的东东怎么都是0字节啊?! 请教,有什么工具能把jpeg图片转换为mpeag1视频,使它能在vcd上观看 如何指定PB6.5访问oracle9 i的默认用户名 多线程资源释放的问题 高手救命!!用pb如何实现用热键调出程序的功能 浏览帖子的问题 高难度:列表视图的重绘问题 编写active控件的问题 报错:变量使用了一个VbScript中不支持的Automation类型oMail.send 青帮忙解释一下一段关于显示VARRAY中数据的PL/SQL语句? 有什么工具能转real ->wmv or wma? 有一点点难。 近来十分不爽。大家进来聊天吧 如何让CEdit控件可以输入希腊字母 如何在asp中实现报表打印的问题,急! 平生第一次看演唱会---张学友温州演唱会。张学友真的老了,满脸的沧桑,但诗歌还是唱得那么好…… 数据库中的<input>的问题 早班火车 蓝色心情 三笑大法 般若什么密忘光光啦~ 角落的青苔:射手无弓?混得好糗啊 jennyvenus JennyVenus 你们违约,哼!!!!!!!!!!!!!!!! 请问在jsp或别的java程序中如何调用Delphi做的com组件?问了很久,没人知道吗? 关于JSP支持问题。 求一小段代码! 我有一个点连接<a href="setup/XXXX.exe">下载</a>但我想点下后既要下载还想用用Response.Execute(XXX.asp)来执行一个页面,该怎么做? 请问Delphi的编辑框中,是不是没有自动感应的功能! 注册dll组件,除了regsvr32,还有其它方法吗? document.layers返回是个什么值呢??各位大哥指点一下吧 关于TCP通信 一个关于LyfUpload上传组件的小问题?请达人help me? 去掉数字中的逗号分隔符。急等 请问在jsp或别的java程序中如何调用Delphi做的com组件?问了很久,没人知道吗? 自己写的异常类的问题?谢谢!! 这个视图如何写? 请问在jsp或别的java程序中如何调用Delphi做的com组件?问了很久,没人知道吗? 如何实现对winform中,编写Label1双击事件? oracle8.0.5在unixware上安装问题。急!! 关于线程同步的问题 请问在jsp或别的java程序中如何调用Delphi做的com组件?问了很久,没人知道吗? 小问题! 四川载千余只活狗货车贵州遇“爱狗人士“二哥”李咏将调离央视 前往中国传媒杭州:盗窃团伙冲卡逃上高架 PTU前成都某女子监狱庆"三八节"服刑人员举情侣在非洲灌木丛中亲热 遭狮子攻击女刘诗诗剧组庆生 吴奇隆帅气指挥切蛋糕8岁男孩娶61岁老妇 南非男孩为已去窦靖童on the beach素颜自丽江大火铺天盖地 彩云之南遍地狼藉(郑州一超市女售货员被劫持 劫匪被控制记者暗访快捷酒店真相惊人 用洗脸毛巾南国花开艳 赏樱正当时90后大学生毕业一个月后成千万富翁(周楚楚全裸透视装露半臀被批没节操 个2013国际旅游小姐特训营美丽蜕变[沈阳9级大风刮落高楼墙体 被砸轿车面上海:樱花树下旗袍秀 风情pk清纯各彭丽媛参观俄罗斯孤儿学校:代表母亲来“炒房客”撤离 温州楼市“高台跳水”上海首创在废弃深坑建五星级酒店长沙“落井”女孩仍无音讯 居民称事发刚买的新“苹果”过了保修快一年房企运营公共服务配套出境游后退货数千元“蒸发”副市长陈翠芹到三合镇调研坪葵路何时撤掉“拦路虎”日本“购岛”周年 中日公务船对峙钓岛黄埔乌涌 浮起死鱼天宝路乱摆卖消失了恒大8月销售额达114亿欧亚达家居15日购家具建材返10%现排行榜扎鱼灯传承难 老艺人亲收徒LV的产品ZARA的价格 台商进内地8月二手房成交面积 环比降近两成涉嫌遗弃精神病患者 珠海医护被停职小车路上自燃 路人帮忙灭火最淡定的冠军精明眼遇“用电欠费”诈骗 可打95598查出国体检选择增多 3万到30万都能定十大措施加强14镇区6类车管控
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘