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

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(编译/童阳 责编/仲浩)
腾讯推出零流量地图 离线实现公交步行导航 Atmel 1.4亿美元收购Newport Media 巩固物联网产品线 微信大会首批议程出炉 深度解析招行服务号是如何炼成的? 指尖上的阅读:MIT开发盲人专用设备FingerReader 从桌面到移动:异构计算翻天覆地的技术变革 《近匠》Blueware何晓阳,不做中国的New Relic 全球最杰出的14位程序员 Microsoft、RedHat、IBM、Docker等公司加入Kubernetes社区 Intel携手三星、博通等 建立物联网联盟OIC 一周消息树:微软半年内将终止对Win 7、Office 2010 SP1等产品的支持 深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用 浪潮通软GSP将打造开放平台 吸引更多ISV加入生态系统 国外安全产品再遭信任危机 安全产品国产化步伐加快 最终幻想XIV的重生--SQUARE ENIX《最终幻想14》制作人吉田直树介绍 如何打造百万级自然增长的微信HTML5应用 听邵海杨聊聊1000+台服务器背后的故事 借助Facebook、Twitter等社交平台API打造超炫酷的那些应用 Unity中Shader的开发运用实战详解,开放报名! 我从独立游戏开发学到的6件事儿 果断Mark!Searchcode——源代码搜索利器 《近匠》图灵机器人:App和移动硬件的智慧大脑 极路由发布HiWiFi OS及应用开放平台 Loom SDK框架:命令行快速开发跨平台2D游戏 安全管家Q2移动安全数据报告:窃取隐私最多 Project Adam vs. Artificial Brain,微软与谷歌角力人工智能 “微信公众平台优秀开发商”征集评选活动正式启动 移动数据库新疆界:开源、Swift、可穿戴... Chromebook侵蚀微软商用PC市场,成绩喜人 2014微信开发者大会议程公布 8月1日前购票8折优惠并赠书 四火的唠叨:也谈谈全栈工程师 图形化与集成趋势 协同软件致远发新品V5.1 在ASP中如何执行ORACLE对象表中的函数??? 我配置的apache+mysql+php怎么不能,显示网站入口flash??? 我如何使用一个全局struct,我用的是extern,但每个extern时都要把结构写全,有没有简单的方法? 请问全国计算机等级考试广州在哪报考? 请问哪里可以找到<Delphi 6 Developer's Guide>这本书? 万网又4机32小时了,累计4机300小时。 我要送分,要分的快来抢.....晚了就没有。分明天会兑现。我说的一定算数。 研究一下ado与Oracle数据库连接的实现 各位高手看过来》》》》 怎么做一个弹出菜单? 请问VC++的编译器开关是怎么回事? 为什么我把IIS配置好后,当我在一台客户机上游览的时候所有链接都不能用呢?请教如何解决? 在DOS下会死机吗? 何为A片?(搞笑 ) vc中执行 select count(*) from table 如何得到返回的数值? 非绑定的,能编辑的网格控件,是什么? SQL 2000 Text数据类型的问题 北京又起沙尘暴了。 我的RED HAT LINUX 的文件系统出了错误,怎样解结?谢谢! 100分请教ActivX控件的注册问题? 如何获得按钮的位置(x y) 请问“GetVolumeInformation( )”函数所获取的“序列号”,在用FORMAT格式化后是否会发生变化? 怎么建立XML树状目录? 救命啊 我也很着急,拜托~~~~~~~~~(关于发布和订阅的简单问题) 在pb中如何自激动窗口,急! 遍了一个简单的servlet,编译时提示:package javax.servlet does not exist! 怎样统计新闻发布系统的新闻点击数 小弟是新手,用GCC编译了一个源文件,生成一个叫a.out的文件,好像是可执行文件,但不知怎样执行,请告知!!! 请问怎样才能用MainFrame类中的函数来控制同一项目中的视(View类)的操作??? 搞个调查:在杭州的程序员年薪有多少K? 请问大虾,Active Dictroy有什么作用,另外到什么地方可以下载? 请问各位仁兄,珠海的2002年程序员考试在哪里报名?谢谢! 如何绕过禁止IP?请指点? 小和尚想开网吧!请问各位高手!网吧应该用什么样的的配置比较好!扩朴方式那总比较好! Question:有没有_获取“视频采集卡”的AV信号 的控件? win98下能安装oracle8i吗? 如何在ASP页面中对XML文档进行询?(问题较多) Insert into TableName values(?,?,?,?,?) 为何写入中文时数据库会是乱码??? 有几个技术问题求助!!!! 有人要去参加Visual studio.net发布会吗 失落中 如何打开被屏蔽的“运行”窗口、注册表编辑器?? 小和尚想开网吧!请问各位高手!网吧应该用什么样的的配置比较好!扩朴方式那总比较好! 哪位能给个简单的dll例子吗?我不知怎样写。 简单问题:谁知道改变屏幕的一块区域的颜色的函数是什末? 有关数字视频监控系统的问题!!! 改错误 打算用PB做个Oracle管理器,请给点意见参考参考 如何在APPLET中读入 HTTP中将其他网页的内容 小女子求教!对您可能非常easy的问题! 验电器与静电计的工作原理是什么 硬质合金刀与白钢刀哪个更硬 两个不固定点电荷A和B各带电-q和-4q,相距为d,如何选择和放置第三个点电荷C才能使点电荷C处于平衡状是不固定的,顺便问下该类题解法. 55cr/9crv的材料用什么样的合金刀头好? 硬质合金刀和白钢刀的区别 两个自由点电荷A和B各带电-q和4q相距为d,如何选择和放置第三个点电荷C才能处于平衡状态? .一个正八面体两个相对的顶点分别为A和B,一个点从A出发,沿八面体的棱移动到B位置,其中任何顶点最多到达1次,且全程必须走过所有8个面的至少1条边,问有多少种不同的走法?( )A.8 B 加工中心铣削不锈钢碳钢件时选用什么材质的铣刀啊?白钢刀?合金刀?或是什么样的立铣刀啊 为什么说“问题是科学研究的起点”? 这个正八面体,有几个顶点 求详细解释公式C=εS/4πkdS,k,ε都是啥啊- - 科学研究的起点和科学的起点分别是什么?二者的区别在哪非常感谢 误差的平方差和立方差咋算?例,有一个立方体,测得它每个边的长度是20.05cm.如果它的边长的真实值是20.00cm,测得的变长的误差是( ),每个面的面积误差是( ),体积误差是( ).请写出方法. 计算.1)7的2立方 2)(-6)的3立方 3)(-3分之2)的3立方 4)-3的2立方 5)-5分之2的3立方计算.1)7的2立方 2)(-6)的3立方 3)(-3分之2)的3立方 4)-3的2立方 5)-5分之2的3立方 6)-(-4分之3)的3立方 点电荷的场强是怎么算的?E=KQ/r²是怎么推出来的?不是F=KQ/r²吗? 算个圆柱立方圆柱周长0.6米高5米 计算.1)-(3分之2)的4立方 2)(5分之4)的2立方 r接近零,E场强不是接近无限大吗? 有立方的!请高手算出结果给我!说明!图片要查看大图,然后下载到电脑就可以看得清楚了! MG眼膜含重金属吗 水平面上相距L的点电荷A,B带电量别为-4Q和+Q,引另个点电荷C,使点电荷都平衡,则C的电量和位置是? 正方形的立方面积怎算? 电荷定向移动的速率等于电流的传导速率导体中的电流是正电荷定向移动形成的这两句话对吗 水平面上有相距为L的点电荷A,B带电量别为-4Q和+Q,引另个点电荷C,使点电荷都平衡,则C的电量和位置是? 硬质合金刀片 yc35与YS25有什么区别 哪个适合加工不锈钢材料加工不锈钢301 的铣削厚度3毫米左右的 用什么刀片好 医院污水污染大还是重金属工业废水污染大 地球科学有逻辑起点吗 武士刀铜装铁装合金装什么意思 A.电流表示电荷移动的快慢 并联电路电流公式 请问:“已知一个凸八面体共有8个面,且有6个顶点,它有多少条棱? 除去工业废水中的重金属离子通常采用什么方法? 两个固定带正电的点电荷AB,电荷量分别为q和4q,相距d,如何选择和防止第三个点电荷C才能使电荷C处于平衡?答案是距离A的d/3 处、 怎样区分黄金与铜或铜的合金 求第二问答案半径为R的球形体内均匀带电总带电量为Q求 (1) 电场强度和电势随半径的分布 (2) 如果在球内离球心R/2处挖去一半径为R/2的小球球体其余部分带电不 真空中有两个相距R的点电荷A,B,带电量分别为Q1=-Q,Q2=-4Q,若AB不 固定,要使它们都处于平衡状态对Q3的电荷量及电性有何要求?为什么答案说首先Q3不能是一个负电荷,若是负电荷,Q1、Q2都不能平衡, 正8面体有几个面,几条棱?几个顶点? 粒子快速通过氢分子中心,其轨迹垂直于两核的连线,两核的距离为d,如图7-44所示.问粒子在何处受到的力最大?假定粒子穿过氢分子中心时两核无多大移动,同时忽略分子中电子的电场.(提示: 一块棱长是12厘米的正方体木块 让它慢慢浸入一个放墨水的水池里,它入水的深度是棱长的一半,求这块正方体的木块染上红墨水的面积. [化学有机]关于甲烷密度计算隔绝空气强热甲烷,可分解成C2H2和H2.若1mol甲烷有80%按上述形式分解,所得混合气体的密度比相同条件下氦气密度的倍数是?A.2 B.2.22 C.3.46 D.4.44 请问该如何思考此题? 相距为𠃊的点电荷a和b带电量分别为正4q和负q,今引入第三个点电荷c,使三个点电荷都处于平衡状态,则c电量和放置的位置是 用125个边长为1厘米的正方体拼成一个边长为5厘米的正方体,要拼成一个边长为8厘米的正方体,需增加边长为1厘米的正方体多少个? 2.64亿用英语怎样表示 有一边长为10cm的正方体铁块,放在水平桌面的中央,若桌子的表面积为1m².⑴铁块的重(铁的密度有一边长为10cm的正方体铁块,放在水平桌面的中央,若桌子的表面积为1m².⑴铁块的重(铁 在匀强电场中E=U/d,这条公式是怎样得来? 请问我国高射炮大多是近炸引信还是压力引信? 64%怎么用英文表示 小逻辑的逻辑起点和历史起点是什么或者说黑格尔的逻辑学的逻辑起点和历史起点是什么黑格尔说逻辑学的开端是纯有,这个纯有是逻辑起点吗?开端是逻辑起点吗?理念呢?理念和纯有哪一个是 鸦片战争中的那种圆圆的炮弹为什么在击中目标后可以爆炸,是用什么原理?难道里面装有引信? 北京哪里可以铝合金加工制作?要能做阳极氧化的、我给出个塑料模型、仿照做就可以、 相距L的点电荷A,B的带电荷量分别为+4Q和-Q,要引入第三个点电荷C,使三个点电荷都处平衡,求C电荷量和位置 鸦片战争中的那种圆圆的炮弹为什么在击中目标后可以爆炸,是用什么原理?难道那时候就有引信了?1856年?是因为炸弹当遇到强烈的碰撞后引起的爆炸,就像过年时候的摔炮一个原理 难道炮弹发 5052 铝合金加工我有一块2毫米厚,直径60公分的圆形铝合金板材(5052),想加工成圆弧形锅盖的形状,请问应该怎么加工? 逻辑起点跟逻辑前提的区别 匀强电场方向水平向右,场强大小为匀强电场方向水平向右,场强大小为E=300N/C. 一个m=0.1g的带电小球用长度为L=0.4的丝线系住.丝线的另一端固定于电场中的O点,带电小球静止时,悬线于竖直方向 关于英语练习1-26请写出判断依据 跪求高中物理所有守恒定律和公式,如机械能守恒,能量守恒,动量守恒之类的! 【关于静电计的原理】如图,我想问一下,接地后,平行板电容器的负极板上还有负电荷吗?如果没了,那平行板间的的电势差有没有变化?如果还有,那接地的作用是不是就是为了将负极板的电势看 白钢刀和不锈钢哪个做刀材料好?想自己用油石打磨一个短刀玩,哪个材料好? 高中物理电荷及其守恒定律1.真空中有两个大小相同的带电金属球A和B,带电量分别为 -q和2q.现有一个不带电的金属球C,大小与A和B相同,当C跟依次跟A和B接触一次后拿开,则此时A和B的带电量分别
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘