【微服务架构】服务发现与容器编排:优化容器化应用部署体验

作者:禅与计算机程序设计艺术

云计算的到来已经成为软件行业的新宠,开发者不得不面对复杂的分布式系统架构设计与服务发现等诸多挑战,如何为容器化应用提供高可用、弹性可伸缩、易于管理的服务发现机制,成为了一个巨大的课题。目前市场上已有很多基于开源项目实现的服务发现机制,如Kubernetes中的kube-dns、consul、etcd、zookeeper等,但这些解决方案存在以下缺点:

  • 不支持异构环境的服务发现,容器集群中存在多个不同环境的应用,如测试环境、预发布环境、正式环境等;
  • 服务发现依赖硬件或虚拟IP地址,存在单点故障问题;
  • 支持的服务类型少且不全,如没有支持负载均衡器类型的服务发现机制;
  • 监控体系复杂、运维容易出错,需要重复的配置、手动脚本开发等。
    因此,如何构建具备多种服务发现机制的通用模式并将其集成到现有的容器集群管理工具中是一个重要的课题。而在容器编排领域也逐渐出现了一些新的服务发现机制,如基于docker swarm模式下的built-in service discovery、基于Apache Zookeeper/Consul的client-side service discovery以及基于Hashicorp Consul Template进行模板化配置的动态服务发现。但这些都不是一个完美的解决方案,因为它们都局限于特定的容器编排平台,难以跨平台复用。

本文将提出一种基于Apache Mesos Frameworks API的服务发现机制的设计,这种机制可以支持各种不同的服务发现机制,并通过Mesos调度系统与其他组件无缝集成,同时兼容各个容器编排框架。其设计目标如下:

  • 支持跨平台的服务发现机制;
  • 提供统一的接口和模型,便于编程与扩展

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/131820929