[英]Scaling microservices using Docker
我已经创建了一个Node.js(Meteor)应用程序,我正在研究未来处理扩展的策略。 我将我的应用程序设计为一组微服务,我现在正在考虑在生产中实现它。
然而,我想要做的是在一个服务器实例上运行许多微服务,以便在使用少量资源时最大限度地利用资源。 我知道容器对此很有用,但我很好奇是否有办法创建一个动态扩展的容器集合,我可以:
我已经研究过AWS EC2,Docker Compose和nginx,但我不确定我是否正朝着正确的方向前进。
调查Kubernetes和/或Mesos,你永远不会回头。 它们是根据您的目标量身定制的。 您应该关注的两个组件是:
服务发现:这允许相互依赖的服务(微服务“A”呼叫“B”)相互“发现”。 它通常使用DNS完成,但在其上面具有注册功能,可以处理在实例缩放时发生的情况。
调度:在Docker-land中,调度不是关于CRON作业,它意味着容器如何按各种方式扩展和“打包”到服务器中,以最大限度地有效利用可用资源。
实际上有几十个选项:Docker Swarm,Rancher等也是竞争对手。 像亚马逊这样的许多云供应商也提供具有这些功能的专用服务(例如ECS)。 但是Kubernetes和Mesos正在成为标准选择,所以如果你至少从那里开始,你就会成为一个好公司。
度量标准可以通过Docker API (以及很酷的博客文章 )收集,并且通常用于此。 修补DAPI和docker堆栈工具(compose / swarm / machine)可以提供很多工具来有效地扩展微服务架构。
我可以建议赞成Consul在这种资源感知系统中管理发现。
我们使用AWS来托管我们的miroservices应用程序,并使用ECS(AWS docker service)来容纳不同的API。
在此背景下,我们使用AWS自动缩放功能来管理规模和扩展。 检查一下 。
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.