如何将微服务从AWS撤走

日期:2016-1-12作者:George Lawton翻译:boxi来源:TechTarget中国 英文

微服务   AWS   

【TechTarget中国原创】

为了降低成本、改善可伸缩性,大部分组织都搬迁到了AWS上。但通过搬到AWS上,至少有一家公司发现这既能节省成本、改进控制,还能维持一个健壮的服务器基础设施。在旧金山举行的KubeCon大会上,Vonli的CTO Paolo Kinney解释了他们在自动化Kubernetes基础设施来促进这一过程中所学到的东西。

Vinli是个车联网平台,能把数据从联网的智能汽车上传到云端。该公司让开发者可以通过一组API来访问这一数据,从而简化了为消费者创建应用的过程。开发者可以利用低级的遥测API以及安全、旅行、汽车分析以及行为服务等方面的高级API。

Kinney说Vinli决定用托管于Docker容器的微服务来部署整个后端基础设施以便进行定制化。所有的后端逻辑和前端模块都是基于容器发布的。因此该公司每天都要在自己的基础设施上加载和卸载数百个Docker镜像。

从AWS撤走

他们的微服务架构原来是部署在AWS Elastic Beanstalk上的。它运转得很好,但Kinney说随着后端增长超过15到20项服务而需要负载均衡时,成本就开始变得很高。后来由于Vinli必须负载均衡的服务数接近200,成本开始失去控制。

Kinney决定试用Kubernetes作为服务基础设施编排的手段。一个周末,他跟一支小规模团队重构了整个微服务架构,让它在Kubernetes上面跑。该基础设施包含有跨4个软件栈的大约45个应用、服务和Worker等。

这种过渡的关键部分是基于Kubernetes基元开发最后一层的应用管理层。简化Vinli内部团队开发工作的策略之一是保持需求的简单性。开发者实现其代码进Docker容器,而这些容器是可以命名并迅速发布出去的。开发者和设计师唯一的内部需求是通知运营团队有新服务了,并让他们进行应用级的健康检查。

像农夫一样思考

Vinli为自己的基础设施开发了若干简单的Kubernetes基元来优化集群管理器。它们的命名都跟农场运营有关:牧羊人(Shepherd)、领班(Foreman)、农夫(Farmer)、Burn(烧除草木)和屠夫(Butcher)。Kinney说整个编排基础设施实际上相当简单。所有这些独立的流程大概用200行代码就跑完了。它们从观察服务间的共性开始,然后在围绕着这些共性来开发工具。

Shepherd可以简化和加速把现有服务推到新的更新的过程。Kinney说标准的Kubectl集群控制工具只用30秒来做出新服务。Shepherd主要替Vinli的基础设施优化了服务的转换,用时只需要5秒钟。这使得Vinli可以移动容器时不需要担心从一个栈移到另一个栈的配置和管理。

Worker是Kubernetes内部的微服务进程,可帮助编排应用容器的加载和停转。这些需要以不同的节奏进行伸缩以配合不断变化的应用负载。Vinli创建了另一个叫做Foreman的内部工具来管理编排其他Docker进程的worker容器的生命周期。它还可以配合另一款叫做Famer的工具来增加或减少Docker容器的复制数,从而对服务负载做出响应。

Vinli总是会删除Kubernetes容器的pod。“我们扔掉pod只是为了让新的pod能上来,”Kinney说:“这能够帮助我们避免长时间的运行日志或内存问题。”名为Burn的工具会根据需要把一组里面的所有的pod都干掉、配合Butcher一起工作还可以杀死一个或多个pod,处理cron jobs(周期性指令),发布更新到开发者和运营团队使用的内部Slack IRC源。

定期剔除集群来保持新鲜

每天Vinli都要把所有的pod干掉一遍,几秒钟之内整个基础设施都会备份并重新运行。Kinney说,“有了Kubernetes,一切都变得可以极度地随便舍弃。我们希望让东西能够自我刷新。”

另一个关键是让应用基础设施尽可能一次性使用来消除微服务架构的持久性。所有的持久层数据都用Redis和Elasticsearch保存在服务外面。这确保了新容器或新配置推送到生产环境时不会有任何数据丢失。“这让我们保持敏捷,”Kinney说。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

George Lawton
George Lawton

TechTarget中国特约作者

SOA开发>更多

  • 故障注入注定要成为软件专业人士的必备技能

    尽管云改善了企业迅速发布高质量、高能力应用的能力,但专家警告说要小心这些应用会变得太复杂,难以进行人工测试。

  • 容器与微服务要“联姻” 你对它们够了解吗?

    在虚拟化和云计算领域,容器大概是发展最快、最广为令人兴奋的技术了,微服务则紧随其后。如果把这两大技术结合起来会碰撞出怎样的火花呢?

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • HTML5促进企业移动化服务走向极致

    在企业困扰于传统移动化方式过于复杂时, HTML5凭借其天然的跨平台特性,乘势而起并逐渐得到企业的关注。可是,由于HMTL5标准建立时间不长,展示性能及稳定性更是需要和浏览器有一个良好的兼容,除此之外企业更是缺乏实际应用经验,所以基于HTML5技术的企业级服务市场还处于一片初创状态。

相关推荐

  • 容器与微服务要“联姻” 你对它们够了解吗?

    在虚拟化和云计算领域,容器大概是发展最快、最广为令人兴奋的技术了,微服务则紧随其后。如果把这两大技术结合起来会碰撞出怎样的火花呢?

  • 你的微服务设计支持可重用并避免冗余吗?

    微服务是代码小型的功能捆绑,旨在通过适当的使用来促进可重用并改善QoE以及可用性。如果使用不恰当的话,它们就会成为应用生命周期管理和资源效率的“噩梦”。

  • Red Hat披露更加架构驱动的BPM模型愿景

    Red Hat的一个更加结构化的BPM设计方案有望搭设应用开发界与业务流程管理的桥梁,让企业架构师、开发者和业务侧的人更快速更容易地实时新的业务流程。

  • 中国市场DevOps应用趋势分析

    为了解决开发人员与运维之间的协作问题,从而提升工作效率,DevOps方法论应运而生。几年的发展,DevOps现在国内市场的应用情况如何?如何才能取得DevOps实施的成功?

技术手册>更多

  • 2011年SOA精彩内容汇总

    时光飞逝,转瞬已经步入2012年,在十二月份,SesrchSOA.com.cn对于相关的一些领域做出了总结和展望,希望对于读者具有一定的指导意义。同时,编者也在这段时间内,对于过去一年中网站上的原创内容进行了一次全面的回顾,为大家总结了一些较为实用的技巧和分析,内容涉及SOA现状以及发展、SOA实操技巧、热门话题云计算以及Web服务。下面我们就来看看这些内容。

  • SAML技术手册

    安全是所有Web项目在设计时都要考虑的一个重要因素。无论是选择最短口令,决定何时使用SSL加密HTTP会话,还是通过自动登录cookie来识别用户,都经常要付出重大的设计努力,以保护用户的身份信息和他们可能存放于Web站点的其他资料。糟糕的安全性可能带来公关灾难。下面我们就来具体看一下SAML在这里所起到的重要作用。

  • REST开发者RESTful资源指南

    维基百科把表述性状态转移(Representational State Transfer ,REST)定义为“分布式超媒体系统、如万维网的一种软件架构形式”。Web服务的RESTful方案被广泛视为SOAP的一个更简单的替代方案。许多大型的Web服务提供商如亚马逊、Twitter和谷歌都在广泛地使用它。在这本技术手册中,我们将为您提供一些RESTful资源和技巧。

  • 开源PaaS技术手册

    开源业界向来不太平,关于诸多技术的开源未来足以让很多粉丝兴奋躁动起来。商业软件开始揉进开源技术,开源技术也成为IT大佬们得基础架构,这一种趋势蔓延的缓慢有有力。在广告漫天飞得云计算中,开源的分量有多重?是否走向云端就意味着走向开源?开源的PaaS如何选择?如何为开源项目选择PaaS厂商?哪些服务平台值得我们关注,下面我们一一来揭晓。

TechTarget

最新资源
  • 安全
  • 存储
  • CIO
  • 数据库
  • 服务器
  • 云计算