写点什么

微服务的冷热部署

  • 2022-12-03
    北京
  • 本文字数:689 字

    阅读完需:约 2 分钟

微服务的冷热部署

在企业的实际场景中,有的微服务调用非常高频,有的非常低频;有的是 CPU 密集,有的是 I/O 密集。最常见的是大数据应用与业务应用,大数据应用是典型的 CPU 密集型应用,大量计算非常消耗 CPU 资源。相反,业务应用大部分是内存密集型,非常消耗内存。


由于业务特性,大数据应用一般都是在业务低峰期(通常是凌晨)执行离线任务,因此在线业务与离线业务的业务高峰期基本不存在交集,通常在夜间时段,在线业务的服务器利用率非常低,而此时却有大量的离线业务需要执行,希望找到一种方法,让离线业务能在在线业务低峰期时去使用空余资源,从而提升资源使用率。


方案 1:虚拟机弹性虚拟化

通过 OpenStack 类虚拟化技术,在业务低峰期弹性扩容出虚拟机供 Hadoop 集群使用。

  • 优势:方案实施简单,从 Hadoop 集群视角来看虚拟机就是一台独立 Node。业界大多使用该方案,有足够多的成功案例供参考。

  • 劣势:需要 IaaS 层有足够完善的虚拟化及弹性扩容基础。


方案 2:手动调度 KVM 或胖容器

在没有弹性虚拟化平台的现状下,可以手动划分一批物理机资源,通过临时拉起 KVM 或 Docker 方式启动 Node-Manager。

  • 优势:同方案 1。

  • 劣势:资源调度不够灵活,无法根据物理机负载灵活分配资源。自动化程度不高,依赖人工运维。胖容器方式可能存在与 YARN Cgroup 冲突的问题。


方案 3:扩展 YARN 调度器

通过扩展 YARN 调度器,将作业以 Kubernetes Job 方式运行。

  • 优势:充分利用 Kubernetes 灵活的细粒度资源调度能力,资源利用率提升度最高。

  • 劣势:业界未看到类似方案,不确定实际可行性。需要对 YARN 做扩展,实现成本及难度较大。


目前来看方案 2 最具可行性,可以在短期内进行可行性测试。从长远来看,方案 3 也具备一定的可行性,并且资源利用率最高。


发布于: 刚刚阅读数: 4
用户头像

InfoQ签约作者 2018-11-30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
微服务的冷热部署_微服务_穿过生命散发芬芳_InfoQ写作社区