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

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(编译/童阳 责编/仲浩)
中国 vs. 非洲:移动医疗的前世今生 Java大数据框架初创企业Concurrent获400万美元融资 基于Edge Animate开发CSS3 Animations 后端服务商Firebase发布全新iOS SDK [爆料]百度云或在秘密打造实时移动Web App开发框架 打造最佳开发团队的几点建议 Facebook与开发者交恶 扼杀第三方应用 负载大逃亡:四十二路怪兽联军及七条逃生法则 那些年,MIT技术男们奇妙的黑客作品 深度分析:腾讯3.3亿美元收购Epic股份值吗? 传下一代iOS或将推行扁平化设计 iOS开发者注意:苹果将拒绝访问UDID的应用上架 领先Google、Amazon、Dropbox,Apple云存储用户最多 传IBM重新设计晶体管 预计五至七年内成熟 快讯:云计算大会6月召开 云计算概念企业股票飙升 集成开发环境:Qt Creator 2.7.0发布 移动周报:“今日头条”CEO,爱冒险的技术宅 从China Daily的iPad版,看中国纸媒如何摆脱“旧情结” 天睿推出大数据探索平台:“开箱即用”的数据分析 Basho开源Riak CS,与AWS S3兼容的云存储架构 MongoDB Days北京杂记 VMware携手亿阳信通 铺垫混合服务 行业应用,移动优先:移动难七大痛点剖析 HTML5开发必备:游戏开发资源合集 老而弥坚:65岁传奇Android工程师谈开发 2013中国云计算有奖大调查,每周大奖等你拿! Google Reader之死另一个不为人知的原因 小团队谈推广:豆果、金山、微博易、面包旅行 敏捷实战:如何让团队迭代交付周期缩短一半 移动设备管理初创公司AirWatch:首轮融资2亿美元 New Relic:不等应用崩溃,实时监控你的App! 帮帮忙,我急需有关ERWIN的书籍资料,请能在哪里下载?急啊!先说声谢谢! 500分求助!!!如何打印MSCHART控件画出的折线图 请问网上有没有关于UI线程比较好的例子?如果有的话,发一个网址给我,在线等待,谢了! 一道选择题 局域网,一方可以ping通一方,怎么解决?? 装了WIN2K后,如何再装LIUNIX实现双启动? TQuery的简单用法,高分大放送! 如何将controls对话框中不用的控件去掉 请问怎么用coff2omf,把Strmiids.lib、Quartz.lib、Strmbase.lib转化成BCB可以接受的格式 JDBC for mysql 的使用 -------问题 偶有重回delphi修炼了,当年偶的师傅还在吗?老千,老鱼,chech,小新,老鬼,你们过的怎样?? 你现在正在看的这种页面如何实现? 我很喜欢delphi,但老板要我转学单片机,请兄弟们说几句,是福是祸?up、gz有分! vb的安装问题 请问如何在两个数据库之间进行联合查询? 迷 !!!!!! 天使的旁边是魔鬼 数据集排序问题 哪里有 MS viso 下载,谢! 用DATAREPORT设计报表,这个怎样设计? ASP写的计数器程序问题 天女散分:process basename 中文叫什么,进程什么名? 数据库句柄清除问题 请问我用JBuilder + weblogic61 编写的 EJB,在我拿到别的地方部署,是不是只拿 XEjb.jar和客户端 就行了? 如何让两个byte类型的变量a和b进行异或(^)操作,然后将结果存入另一个byte中? 我也来一个关于ACCESS的问题,高分请教。在线等待 CDC问题:怎样从屏幕尺寸转换到厘米呢?反之呢? VC中如何给动态产生的控件写事件方法?在线等! 》》怎么没有人解决这个问题呀,谁解决,我给分!!!!! 为什么快捷方式不能用? ★★★有没有像“delphi属性编辑框”一样的控件或是源码(100-1000分)★★★ 谁有RealPlay格式详细信息 500分求救! 请问大家那里有jrun 4下载 如何自己析构单文档模板? MASM32中标号的疑问 这个错误该如何改 关于在OUTLOOK中如何自创模板的问题? com系列丛书那里有卖 一个关于鼠标事件的简单问题 为什么我在JSP中能得到TEXT文本中的数据,却得不到在SELECT中的数据呢? 求救!为什么我的ACESS数据库文件会莫名其妙的达到25M,我还没输任何数据呢?而生成MDE后只有500K? 我要一个功能强大的弹出日历 Viva La Costa Rica! 我再也不看Chinese Team的比赛了! 如何做jar包呢?还有如何做bak呢?大家救救我吧。 《inside the c++ object model》问题 这句是什么意思??? 问一个Win2000Server域用户客户端登陆问题。 小问题:在线等待:) 如何删除一个ini文件中的关键项目?急 求救!为什么我的ACESS数据库文件会莫名其妙的达到25M,我还没输任何数据呢?而生成MDE后只有500K? 秦朝灭亡后西汉建立前这段时间叫什么?为何字典上不记载这一时间段?当时是项羽的势力最大吗?为何他不改国号 化学问题H2S和NaOH反应生成什么?H2S和NaOH反应生成什么?几种情况都写下过量和不足H2Na只是一个还有什么情况 什么是石灰是熟化?生石灰熟化方法有那两种? 在KCl和CaCl2所组成的混合物中,KCl和CaCl2的物质的量的比为2比1,求1mol氯离子的该混合物的质量? H2S和氢氧化钠反应...为什么H2S和氢氧化钠反应生成的不是盐和水? 宗法制为什么是分封制中的血缘纽带?宗法制为什么是分封制的政治体现形式? 同学为证明NaOH溶液与稀盐酸发生了中和反应,从不同角度设计了如下方案,进行实验.方案一:先用PH试纸测定NaOH溶液的PH,再滴加盐酸,并不断振荡溶液,同时测定混合溶液的PH,如果(1)简述“强 周朝建立时,世界各国都处在什么阶段 为什么说分封制是宗法制在政治制度方面的体现?难道宗法制不是政治制度吗? 请大家来看看 这是个什么昆虫,叫什么名字,好漂亮哦 H2S + NAOH = 为了方便回答者准确理解,请您对问题标题或内容进行补充 秦朝郡县制郡与县的关系是什么?如题.郡县存在隶属关系吗?哪个大那个小?直接搜到就往上粘的答案就算了,表浪费我流量,回答满意给全分哦 韩国灭亡时间周朝啊 周朝是由谁所建立的啊? 我国传统经济发展方式是什么? 周朝时候.“中国”指什么A是周天子的直辖地区 B中原地区 C华夏族的诸侯国 D首都 是谁建立的周朝 向久置的氢氧化钠溶液中加入稀盐酸 怎么反应?久置的氢氧化钠 是全部变质还是部分变质?、 周朝的建立时间回答 大禹是周朝的建立者吗 写出稀盐酸与氢氧化钠溶液反应的化学方程式是什么?. 在KCl和CaCl2所组成的某混合物中,K离子和Ca离子的物质的量之比为2:1,则该混合物中含CaCl2的质量分数为 只求最后一空,要详细的阶段过程. 向一定量的氢氧化钠溶液中加入一定量的稀盐酸后,混合液PH范围取混合溶液滴加酚酞试液,溶液无色,能否证明酸碱中恰好反应,理由 如要证明上述酸碱之间确实发生了反应,这混合溶液的PH值范 稀盐酸和氢氧化钠溶液能反应吗?现象是什么? 在KCl和CaCl2的混合物中K离子和Ca离子物质的量之比2:1,则该混合物中含CaCl2的质量分数为___,含1molCl离子的该混合物的质量是__g(写出过程) 现在又 KCL和CaCL2 组成的某混合物,其中K+ 和Ca+ 的物质的量之比为2:1若将该混合物溶于水得到500ML溶液.且 C(K+)为1.0MOL/L(1) 含有1MOL CL- 的该固体混合物的质量为?CL- 物质的量浓度为?溶液中 氢氧化钠溶液能够与稀盐酸反应的理由RT kcl,cacl2组成的某种混合溶液中,k离子与ca离子物质的量之比2:1,求混合物中cacl2的质量分数? 在KCl和CaCl2的混合物中,K+和Ca2+物质的量之比为2︰1则该混合物中含CaCl2的质量分数为__________,含1mol Cl-的该混合物的质量是__________g.思路清晰一点, 向久置的氢氧化钠溶液中加入稀盐酸 怎么反应?久置的氢氧化钠 是全部变质还是部分变质?、 在KCl和CaCl2的混合溶液中K离子Ca离子的物质的量之比为2比1,KCl和CaCl2的物质的量之比为?质量之比为?还有一问,若要取出1mol氯离子的该混合物,应取该混合物的质量为? 生石灰加水熟化会有什么现象产生?生石灰在使用前为什么要陈伏两周以上?为什么陈伏时需在表面保留一层水? 血缘关系维系的宗法制的内容 工地上使用生石灰时,为什么要进行熟化?熟化时,为什么必须进行陈伏? 贞观之治,文景之治,开元盛世,康乾盛世的皇帝分别是谁? 了解宗法制和分封制的基本内容,认识中国早期政治制度的特点1.宗族关系从此成为基本的政治关系开始于______(朝代)2.商代贵族以血缘关系为纽带,实行_____,各个宗族都是政治实体.商代政治 中国历史上的盛世有多少个?到底哪个最“盛”?比如,仁宣之治,康乾盛世,贞观之治. 生石灰熟化的体积膨胀系数与生石灰块沫比之间的关系? “宗法制衰落的实质是政治关系中的地缘关系取代血缘关系”怎么理解? 盛世的内涵? 中国历史上有哪些盛世 从文景之治,贞观之治,开元盛世中得到什么启示? 宗法制得以维系的重要因素是血缘关系的题目9.宗法制得以维系的重要因素是血缘关系.最能证明这一点的材料是( )A.孔子说:“周因于殷礼,所损益,可知也……” B.《说文解字》载: 中国历史上的盛世之治有哪些?比如:贞观之治开元盛世等......只列举名称和朝代即可 在我国古代历史上曾出现过许多经济繁荣的时期,如文景之治、贞观之治、开元盛世等等.它们能够出现的共在我国古代历史上曾出现过许多经济繁荣的时期,如文景之治、贞观之治、开元盛世 浓醋酸加水和冰醋酸加水导电能力变化有什么区别吗? 中国历史上有哪些盛世 理解文景之治,贞观之治,开元盛世出现的原因和意义 冰醋酸加水稀释时为什么导电能力是0 生石灰熟化时为什么必须进行陈伏 秦朝是怎么灭亡的?四个小问题:1.秦始皇何时登基,在位多少年?2.秦朝用了多长时间灭六国最后统一全国,秦朝统治持续了多少年?3.秦始皇怎么死的,死后由谁继位,秦朝最终是怎么灭亡的?4.秦朝 向一定质量的冰醋酸中加水,导电能力先增后减.老师讲的是最初电离占主导因素,加水电离增大,离子浓度增大,导电能力增大.然后溶解完后,加水在稀释溶液,整体离子浓度减小,导电能力减弱.我 请问中国历史上41个盛世是哪41个我想说的是 我只是初中生 目前我总结出来的有27个真心想不出来了 只是这次期末考试要写四个我在试题纸上写了27个在那边选 但我看到说有41个我很好奇剩 在kcl和CaCl2所组成的某混合物中,K+和Ca2+的物质的量之比为2:1,该物质混和物中CaCl2的质量分数为多少,KCl和CaCl2的物质的量之比为多少,含1molCl-的该混和物的质量是多少g? 人吃了水银会怎么样 一般的通讯干燥剂,哪有的卖? 如何将块状生石灰熟化成石灰膏? 在kcl和cacl2所组成的某混合物中,k+与ca2+的物质的量的比为2:1,则该混合物中含cacl2的质量分数为 ,kcl与cacl2的物质的量的比为 ,含1molcl-的该混合物的质量是 克. 从秦朝灭亡至西汉建立,其间到底发生了什么 H2S和NaOH如何反应如题 在KCl和CaCl2组成的某混合物中,K+和Ca2+的物质的量的比是2:1,则KCl与CaCl2的物质的量之比是?能否告诉我为什么是2;1?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘