万台服务器,单台只装一个Docker,世界级浏览器IT架构之旅
点击上方“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基础架构并不是重点,万一失败,自建机房会带来很大的失败成本。
当初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美元,(只需要一个半月就会回本。)
开始自建数据中心后,起初实体服务器的数量不多,CloudMosa先利用VM技术加强资源的利用率。而当规模达到50台之后,CloudMosa开始评估是否继续使用VM的必要。我们认为,一台机器要提高4倍的效能,不只要花上4倍的成本,(如果真有需求,何必要把资源划分为4份?)
就如,裸机服务器就像一颗大钻石,利用虚拟化技术,切成4颗小钻石便不合理。因此,在某种程度上,虚拟化技术不全然可以解决所有问题,只有符合某些条件之下,像是企业的需求可以靠一台实体服务器满足,这时使用VM就非常恰当。
随着CloudMosa服务量成长到一定规模,因不同任务需求,也开始进行服务器角色的分工。第一种角色是工蜂(Worker bee),也因此,CloudMosa在自建数据中心的服务器,主要都是以裸机为主,仅有少数服务器为虚拟机。
每一台服务器都有特定用途,而裸机部署才可以让实体服务器拥有最好的资源使用率,(工作节点都一律使用裸机部署,我们称这些服务器为工蜂。)
CloudMosa也开始设计负载均衡机制,将流量导引至不同的工蜂服务器,此时每一台服务器的重要性就大幅降低,即便其中一台服务器当机,仍然有其他设备会接手。
相比工蜂服务器,某些不耗费过多资源的应用程序,便可在VM环境中执行,(这些是我们重要的应用程序。)这些应用程序为圣牛(Sacred Cow),万一这些系统当机,公司就会倒闭。也因此,才将这些应用程序部署在公有云,利用公有云服务,才可以确保降低应用当机、无法存取服务。
解决问题才是重点,不要为了追赶潮流而用,把技术视为炫耀。
CloudMosa创办人即CEO 沈修平(摄影/洪政伟)
归纳搭配公有云服务及自建数据中心的心得,我们认为,最佳的作法是将少数的重要应用程序留在AWS,但大多数的服务器都部署在自家机房内,自建可以节省成本,但相对较不稳定,(还好我们并不特别在意自建机房中服务器的运作。)
此外,公有云也可以做为安全网,可以分担突如其来的爆量服务需求,使用公有云分担这些流量。CloudMosa也有一套目前还未启动过的备援方案,一旦天塌下来,就不需要再想如何省钱,重点是要活下去。他笑着说,花一天昂贵的租金解决存亡之事,是笔非常划算的花费。
而当CloudMosa最后成长至3,000台服务器,接着又开始面临到下一个问题,就是服务器规模过于庞大,如何快速部署?(因此CloudMosa开始使用刀锋服务器),刀锋服务器的机箱内可以容纳多台独立的服务器,同一个机箱内的服务器可以共享网络资源,不需要每一台服务器都与网络连接。采用刀锋服务器后,无论是部署密度、速度,及维护工作都有相当程度的改善,(之后就完全转移至刀锋服务器。)
同时CloudMosa也采用Network booting,当一台服务器开机时,也不需要安装虚拟化平台,与网络连接后,安装该机器所需要的组态设定,之后便会自动加入正式环境。
不过当规模继续扩增之后,如果要同时部署多台服务器,也会对负责执行部署工作的服务器造成相当的工作负载。原先Master节点只需要负责数台服务器的部署工作,但要部署上千台服务器的工作就非常耗时。
为了节省成本,CloudMosa也开始使用便宜的服务器,(但每次重新启动时,就有无法开机的风险,硬件失败率开始提高了。)CloudMosa定期会执行重启的维护工作,或是更新应用程序时,都需要服务器重启。这也让IT团队每次重启都很担心,这就是CloudMosa要解决的下一个考验。
因应快速更新、重启、重新部署的需求,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技术交流微信群
推荐阅读