查看原文
其他

万台服务器,单台只装一个Docker,世界级浏览器IT架构之旅

王立恒 K8S中文社区 2019-12-18

点击上方“K8S中文社区”,选择“置顶公众号”

关键时刻,第一时间送达!


CloudMosa创办人、CEO沈修平(摄影/洪政伟)


网页浏览器间的战争,可以从上世纪末90年代的网景Netscape与微软IE说起,当时两大公司角逐谁才是浏览器霸主,而在局势已定的20多年后,每每有人得知CloudMosa创办人沈修平仍要继续投入浏览器开发时,「他们都跟我说:『老兄,War is over。』」他笑着说,虽然现阶段局势看似趋于稳定,但浏览器扮演的角色,始终非常重要。

 

而沈修平表示,现在主流浏览器的使用体验,都相当依赖客户端的硬件规格,导致本机设备的处理器、内存成为网页应用执行的瓶颈,我们需要一个完全不一样的浏览器,才有办法突破僵局,赢得胜利。他举例,在第一次世界大战的壕沟战模式,各国就陷入僵持战,但是在英国发明坦克之后,很快大战就画上终点。

 

而对比现今浏览器市场的竞争,他认为,当多数人都认为浏览器已经不再有重大突破之时,这对CloudMosa是个非常好的机会。也因此,CloudMosa决定押注远程浏览器的营运模式,重点是打造一个良好的云端环境,利用云端随需使用的观念来打造浏览器,不需要仰赖使用者自己的设备,而是依靠CloudMosa数据中心的运算力,创造更好的浏览体验,由于每个使用者仅使用短暂的时间,因此单台服务器至少可以处理100个使用者的浏览需求。该公司的Puffin浏览器,下载次数已经超过8,000万次,每月活跃使用人数(MAU)超过了1,200万人

 

在CloudMosa初期,IT架构完全仰赖公有云。沈修平也解释该选择的原因,初创公司的失败机率很高,而公有云可以降低失败的成本。反之,使用VM技术自建数据中心,需要更专业人才。他开玩笑着说,一家初创公司,寻找资金与构思战略才是重点,在使用流量不多时,IT基础架构并不是重点,万一失败,自建机房会带来很大的失败成本。

 

Rackspace公有云服务允许用户使用闲置运算资源


当初CloudMosa是使用Rackspace而非AWS,使用Rackspace架构,可以让我们使用更多运算资源。他解释,这两家公云服务商最大的区别在于,AWS会将单一台服务器划分成数台VM,但是未使用完全的资源,企业不能自由运用,反之,Rackspace则允许用户自由运用闲置资源

 

当邻近的VM资源未有人使用时,CloudMosa可以使用那些运算资源,沈修平笑着说,就跟脸书游戏开心农场的偷菜一样有趣。

 

但随着运营规模成长,偷菜用法却让CloudMosa开始承受痛点。当流量增加需要更多运算资源时,加开服务器也没有效果,原因在于,过去已习惯使用超载资源,这使得增加资源变成一件非常不可预期的事情。

 

偷菜模式导致运算资源难以预测,提高营运风险


在此阶段我们发现,如果企业规模不大,仅有20至30台服务器时,使用Rackspace的服务就非常划算,但是当规模开始扩充至100至500台服务器时,就已经达到Rackspace的极限,(偷菜仍然有风险。)而要稳定运营一家企业,势必要降低风险。

 

所以,CloudMosa开始转移至AWS,最初1个月支付费用为1,000美元。而随着使用人数增加,很快费用水涨船高,公有云月租费马上增至5,000美元,甚至还飙高至5万美元,(5万美元对于规模不大的企业仍是一笔支出。)我们认为,初创公司的确可以仰赖公有云,但是一旦事业开始顺利,企业就应该开始自建私有云

 

这也让我们开始思考,如何利用自建数据中心降低营运成本。我们的目标是在1个月内建立起数据中心,在AWS环境每多待一天,都是更多的额外花费。

根据CloudMosa需求,租用单台服务器的价格是720美元,但如果自行购买,价格为1,200美元,(只需要一个半月就会回本。)

 

VM可以提升容错度、备援能力,但不能解决所有问题


开始自建数据中心后,起初实体服务器的数量不多,CloudMosa先利用VM技术加强资源的利用率。而当规模达到50台之后,CloudMosa开始评估是否继续使用VM的必要。我们认为,一台机器要提高4倍的效能,不只要花上4倍的成本,(如果真有需求,何必要把资源划分为4份?)

 

就如,裸机服务器就像一颗大钻石,利用虚拟化技术,切成4颗小钻石便不合理。因此,在某种程度上,虚拟化技术不全然可以解决所有问题,只有符合某些条件之下,像是企业的需求可以靠一台实体服务器满足,这时使用VM就非常恰当。

 

不需浪费成本将过多服务部署在公有云


随着CloudMosa服务量成长到一定规模,因不同任务需求,也开始进行服务器角色的分工。第一种角色是工蜂(Worker bee),也因此,CloudMosa在自建数据中心的服务器,主要都是以裸机为主,仅有少数服务器为虚拟机。

 

每一台服务器都有特定用途,而裸机部署才可以让实体服务器拥有最好的资源使用率,(工作节点都一律使用裸机部署,我们称这些服务器为工蜂。)

 

CloudMosa也开始设计负载均衡机制,将流量导引至不同的工蜂服务器,此时每一台服务器的重要性就大幅降低,即便其中一台服务器当机,仍然有其他设备会接手。

 

相比工蜂服务器,某些不耗费过多资源的应用程序,便可在VM环境中执行,(这些是我们重要的应用程序。)这些应用程序为圣牛(Sacred Cow),万一这些系统当机,公司就会倒闭。也因此,才将这些应用程序部署在公有云,利用公有云服务,才可以确保降低应用当机、无法存取服务。

 

解决问题才是重点,不要为了追赶潮流而用,把技术视为炫耀。

CloudMosa创办人即CEO 沈修平(摄影/洪政伟)

 

使用公有云作为安全网,重要应用部署在公有云环境即可


归纳搭配公有云服务及自建数据中心的心得,我们认为,最佳的作法是将少数的重要应用程序留在AWS,但大多数的服务器都部署在自家机房内,自建可以节省成本,但相对较不稳定,(还好我们并不特别在意自建机房中服务器的运作。)

 

此外,公有云也可以做为安全网,可以分担突如其来的爆量服务需求,使用公有云分担这些流量。CloudMosa也有一套目前还未启动过的备援方案,一旦天塌下来,就不需要再想如何省钱,重点是要活下去。他笑着说,花一天昂贵的租金解决存亡之事,是笔非常划算的花费。

 

导入刀锋服务器提升机台密度,同时还能改善IT维运工作

 

而当CloudMosa最后成长至3,000台服务器,接着又开始面临到下一个问题,就是服务器规模过于庞大,如何快速部署?(因此CloudMosa开始使用刀锋服务器),刀锋服务器的机箱内可以容纳多台独立的服务器,同一个机箱内的服务器可以共享网络资源,不需要每一台服务器都与网络连接。采用刀锋服务器后,无论是部署密度、速度,及维护工作都有相当程度的改善,(之后就完全转移至刀锋服务器。)

 

同时CloudMosa也采用Network booting,当一台服务器开机时,也不需要安装虚拟化平台,与网络连接后,安装该机器所需要的组态设定,之后便会自动加入正式环境。

 

不过当规模继续扩增之后,如果要同时部署多台服务器,也会对负责执行部署工作的服务器造成相当的工作负载。原先Master节点只需要负责数台服务器的部署工作,但要部署上千台服务器的工作就非常耗时。

 

为了节省成本,CloudMosa也开始使用便宜的服务器,(但每次重新启动时,就有无法开机的风险,硬件失败率开始提高了。)CloudMosa定期会执行重启的维护工作,或是更新应用程序时,都需要服务器重启。这也让IT团队每次重启都很担心,这就是CloudMosa要解决的下一个考验。

 

Docker是一个更好的裸机解决方案,加快部署速度


因应快速更新、重启、重新部署的需求,CloudMosa开始找寻新技术解决这些难题,(而Docker是一个更好的裸机。)他说,利用Docker容器作为服务器的部署机制,也解决IT团队头痛的维运工作。

 

Docker容器提供了一个更好的Network booting的解决方式,过去的更新、维运工作,必须要重启机器,但使用Docker之后,CloudMosa只要重启Docker就好。

 

首先,相比重启服务器,重启Docker的风险小许多,除了不会发生硬件无法开机的风险外,速度也快很多,重启一台服务器所需时间至少10分钟,但重启Docker只要几秒或几十秒。再者,更新也变得更为简单。准备好更新工作所需要的镜像后就可以开始,也让开发人员逐步降低更新的难度。

 

而CloudMosa使用Docker的方式也相当有趣,每一台服务器只会安装一个Docker,(我们不喜欢划分硬件资源。)将Docker视为取代VM的新技术,并非Docker的最大价值,反之,利用Docker作为一个运算单位,只要重启Docker,就等同于重启服务器,(我们非常喜欢这个点子。)

 

利用Docker,原先在3,000台服务器规模时,大概需要花上1整天的更新时间。但使用Docker之后,1万台服务器部署工作只需30分钟就可完成,这是我们认为Docker提供的最大价值。

 

没有任何观念永远正确、永远适用


CloudMosa的IT架构之旅,一路从纯公有云、混合云到开始使用Docker容器技术,(没有任何东西技术、观念永远正确,能解决问题才是最重要。)沈修平笑着说,无论是最新的Kubernetes、Swarm等容器调度技术,CloudMosa也都有进行研究,不过他仍再次强调,解决问题才是重点,不要为了追赶潮流而用,把技术视为炫耀。

 

同时,我们也在CloudMosa倡导,每个员工都得具备独立思考能力,对任何外来信息都要存疑,接触外界信息的重要性,在于扩大视野,重点仍是靠自己消化信息,找出一条最适合自己的路。

 

CTO小档案:

沈修平

CloudMosa创办人、CEO

学历:加州大学洛杉矶分校(UCLA)资讯工程博士

经历:在美国完成博士学位后,前后在美国微软、Google工作,在2009年创办CloudMosa,现为该公司CEO,带领CloudMosa从公有云演进至混合云,而现在内部IT架构已经全面Docker化


文章作者:王立恒

原文:

https://www.ithome.com.tw/people/120933



对Kubernetes、Docker、容器、微服务等云计算感兴趣的欢迎关注我们;

关注上方二维码: K8S中文社区,回复“ 加群 ”

加K8S技术交流微信群


推荐阅读

Kubernetes HA 1.9 高可用集群,本地离线部署

IBM微讲堂出品 | Kubernetes 内功修炼实战

说说Kubernetes是怎么来的,又是怎么没的

漫画:小黄人学 Kubernetes Service

40张技术图谱,架构师阶梯 (附高清下载)

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存