首页 > 其他分享 >容器云平台建设可行性分析报告

容器云平台建设可行性分析报告

时间:2024-09-12 15:02:05浏览次数:9  
标签:容器 可行性 平台 技术 应用 Docker 资源

一、项目背景和原因
   1.1 什么是容器云
   1.2 容器和虚拟机的区别
   1.3 为什么要建设容器云
   1.4 我们的建设目标
   1.5 建设过程可能存在的风险

二、容器云PaaS平台构建
   2.1 总体技术架构
   2.2 设计原则
   2.3 总计规划

三、容器云平台关键技术选型
   3.1 容器核心技术
   3.2 容器编排技术
   3.3 容器网络技术
   3.4 其他

四、可行性评估结果及建议

原创 橘右京 DevOps运维实践

一、项目背景和原因

目前我司开发测试环境是基于VMware技术完成的IaaS(Infrastructure as a Service)虚拟化建设,通过对基础架构资源的云化和池化,一定程度上降低了运维复杂性,提升了资源的使用率,但是这些资源并不能被直接消费,在日常使用使用过程中仍面临如下问题期待解决,也可以说是我司的痛点:
1.资源利用率问题;除了OS本身的资源占用,不同业务场景对资源需求也不一样,例如cpu密集型、内存密集型、网络密集型等。
2.扩缩容效率低;环境不易复制,搭建繁琐,无法满足大规模快速弹性部署的要求。
3.混合部署交叉影响;单台机器多个服务,可能存在互相影响。
4.测试环境不稳定;多个项目同时开发测试,造成测试环境不稳定。
5.不支持快速迭代,业务上线效率低;不支持在线应用环境申请和配置及切换、频繁发布升级浪费人力且低效。

随着容器技术的不断发展和完善,容器云的价值逐渐被发掘,使我们看到构建基于容器技术的轻量化PaaS--容器云平台的可行性。

1.1 什么是容器云

容器云,是轻量化PaaS平台的一种容器化实现方式,是基于容器技术、容器调度编排技术和支撑容器运行操作系统技术、分布式技术上构建的云计算平台。
从PaaS功能来说,容器云可以提供从应用的开发、部署,到运维的全流程生命周期管理,实现应用的自动伸缩、弹性扩展、灰度发布以及监控告警、故障分析、自动迁移、自动恢复;提供丰富的预集成服务, 把通用的软件能力服务化,使得应用能快速拥有分布式的高可用性、高可扩展性;通过对底层资源的抽象和资源层的隔离,尽可能地共享或平摊资源,以提高资源整体使用率,从而降低基础设施的投入。

1.2 容器和虚拟机的区别

容器虚拟化是在操作系统层面上实现的虚拟化,直接复用本地主机的操作系统;而传统虚拟机则在硬件层面上实现。
容器比虚拟机具有如下优点:

1)更快速的交付和部署,可以实现一处创建,处处使用;
2)更高效的虚拟化,属于内核级虚拟化,不需要额外的虚拟机管理器,性能和效率更高,启动时间为秒级;
3)更轻松的迁移和扩展,容器几乎可以在任意平台上运行,这种兼容性可以满足用户平台迁移和扩展的需求;
4)更简单的管理,容器中所有修改都是增量方式进行分发和更新,能够实现自动化的管理。

1.3 为什么要建设容器云

我们提出建设容器云平台也是基于现实的挑战,容器云可以从本质上更好的契合新形势下金融公司所面临的问题,给我们带来以下好处:

1.标准化应用的部署和交付:采用容器镜像的方式实现运行环境的标准化,屏蔽应用部署过程中针对不同环境需要的环境配置、安装步骤等复杂过程。
2.促进Devops的落地实施:容器build、ship、run的理念及其技术特点,更够更好的与CI/CD技术进行融合,促进CI/CD理念的落地。
3.有效整合现有资源:容器可实现对企业已有异构基础资源的统一化管理,屏蔽环境差异性,降低系统运维难度;
4.提升资源利用率:容器是基于操作系统的轻量级虚拟化技术,可有效节省操作系统级资源开销,通过容器密度的提升更好的利用资源;
5.微服务架构支持:提供微服务应用的应用注册中心、日志中心、监控中心、容器调度及编排服务,为客户中心、服务中心等这类按照微服务架构开发的应用提供基础环境支持。
6.加速企业软件资产积累:镜像仓库有利于更好的沉淀和积累企业软件资产,从而更加快速高效的提供各种运行环境。
7.可以让应用真正意义上弹性扩缩容。容器云环境下,应用和基础环境资源是解耦的,应用的扩缩容不需涉及基础环境资源的扩缩容,仅仅需要修改应用部署模板文件中的副本数,整个扩容或缩容流程可以在数秒到数十秒内完成。这样当应用面临突发业务量增长,需要紧急扩容的时候,就可以非常快的完成,实现了真正意义上的弹性扩容。

与时俱进。

1.4 我们的建设目标

容器云的建设以服务应用开发为中心,将业务应用中的功能性需求如高可用、弹性伸缩、灰度发布、监控告警、日志存储等,通过容器云平台统一实现,并解决应用全生命周期管理、中间件云服务、基础资源利用率等问题,从而降低基础设施的投入。
最终,我们希望通过容器化平台的建设,一方面逐步建立标准化的开发、测试、运维环境,满足业务快速开发和迭代的需求,提升IT对业务变化需求的快速响应能力;另一方面通过采用标准化的容器技术和标准化的镜像输出,为开发测试提供一致性的环境,提升自动化运维的水平。

1.5 建设过程可能存在的风险

容器云虽有诸多好处,但采用和实施容器云也存在不少风险。
容器技术是近年新兴开源技术,发展变化快。

首先存在技术风险,因为容器云技术涉及众多的组件,众多的技术,不仅仅是Docker+ Kubernetes,网络、存储、日志、监控、安全、微服务等等,要想一下子全部掌握很难,存在一定的技术风险。

其次是人力风险,发展变化快意味着很多人可能跟不上技术的变化,技能和经验不足,缺乏深入的认知。

再者容器是弱安全的,在建设容器平台时,除了要具备市场上大多数容器平台产品的能力,还要重视满足金融行业严苛的监管和安全要求。

二、容器云PaaS平台构建

2.1 总体技术架构

2.2 设计原则

(1)先进性和成熟性
(2)开放性和标准化
(3)可靠性和安全性
(4)可维护性和易用性

2.3 总计规划

VMware虚拟和容器并存,按照试点先行、分步推进的原则,容器云平台建设计划分为4个阶段:
第一阶段:容器云基础平台建设。

架构设计、集群设计、资源分区 搭建容器云PaaS基础平台和容器云管理平台 打通容器云PaaS平台与IaaS层资源管理接口
第二阶段:中间件容器化改造

基础组件改造(redis、mysql、rabbitmq、zookeeper等)容器化设计、改造和迁移部署。
第三阶段:部分应用项目容器化改造、迁移

部分非核心非实时应用的容器化设计、改造 分批分阶段迁移和部署 验证运行稳定性,积累迁移经验 建立标准化的镜像打包规范,开发规范,管理规范,运维手册等
第四阶段:统一管理、持续运营

结合DevOps管理流程实现持续集成和持续部署。
通过对以上四个阶段的分步实施、效果评估和持续改进,为我们容器PaaS平台落地提供一个快速可行的路径。

三、容器云平台关键技术选型

3.1 容器核心技术

目前典型的容器虚拟化技术主要有Docker公司的docker引擎和CentOS的rkt引擎,rkt理论上在安全性和兼容性方面更好,但缺乏生产实践,目前用户大部分使用Docker,Docker社区也更活跃,目前大部分容器厂商都首选Docker支持,rkt的成熟度仍显不足,因此容器引擎我们选择Docker引擎。

3.2 容器编排技术

光有能装应用的容器还不够,如果还是人工管理那么多容器,那也发挥不出容器的优势,所以我们需要一个容器编排系统。容器编排能提供以下功能:

1.应用调度:应用部署、无缝升级、弹性扩展、自愈等。
2.资源管理:内存、CPU、存储空间、网络等。
3.服务管理:命名空间、负载均衡、健康检查等。
4.以及很多其他功能,如日志、监控、认证、授权等。

当前容器编排领域最主要的三个调度框架是:Docker Swarm、Mesos和Kubernetes。
Swarm:是Docker原厂编排引擎,但功能过于简陋,比较适合小型的集群管理。
Mesos + Marathon:是一个成熟的解决方案,但是社区不够活跃,而且使用起来需要熟悉两套框架,学习曲线过于陡峭;Kubernetes:k8s是专门针对容器技术提供的调度管理平台,更专一,社区非常活跃,配套的组件与解决方案较多,使用其的公司也越来越多,通过和一些公司沟通,他们也在逐步的将Docker应用从Mesos迁移到Kubernetes上。下面表格为我们关注点的一些对比情况:

通过以上对比,考虑到技术的快速变化和后期升级维护的需要,Kubernetes是目前最好的选择。

3.3 容器网络技术

网络模型是任何云环境都必须面对的问题,因为网络规模一旦扩大之后,会带来各种问题。网络选型这块,针对Docker和Kubernetes的特性,暂时对六种组网方式进行了对比,如下所示

根据集群规模,建议采用flannel或calico,或其他开源网络组件。

3.4 其他

四、可行性评估结果及建议

基于以上的分析评估,我们建议可以采用容器云技术实施容器云,以尽快搭建公司私有容器云基础设施平台,建设持续集成、持续部署、持续反馈的闭环应用研发流程。提升公司自主研发能力,提高对业务需求的响应能力。

Ps.本文大体完成于2020-2021年左右,文中引用到的技术可能已略显陈旧,请谨慎参考,及时技术迭代。

标签:容器,可行性,平台,技术,应用,Docker,资源
From: https://www.cnblogs.com/o-O-oO/p/18410210

相关文章

  • 云上攻防:云原生篇&Docker容器逃逸
    什么是DockerDocker简而言之就是一个容器技术,类似于VM虚拟机,别人环境封装好打包成一个镜像,使用docker技术就能快速把这个镜像环境还原出来。Docker容器与虚拟机类似,但二者在原理上不同,容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器......
  • 全国增值税发票查验接口平台-JavaScript发票验真api示例
    全国增值税发票查验接口平台旨在优化纳税服务,加强企业发票管理,确保税收工作的准确性。企业财务可以通过发票查验接口方便快捷的验证增值税发票管理系统开具发票的真伪,以实现发票的自动化管理,减少人工操作失误,提高识别、录入、查验的准确性和工作效率,从而有效防止税务欺诈和逃......
  • cross-plateform 跨平台应用程序-10-naitvescript 介绍
    跨平台系列cross-plateform跨平台应用程序-01-概览cross-plateform跨平台应用程序-02-有哪些主流技术栈?cross-plateform跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?cross-plateform跨平台应用程序-04-ReactNative介绍cross-plateform跨平台应用程序-05-Flut......
  • [开题报告]flask框架基于web安全的大学生心理教育平台(python+程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会的快速发展与变革,大学生群体面临着前所未有的学业压力、就业竞争、人际关系及自我认知等多方面的挑战,这些因素对大学生的心理健康......
  • KPaaS 业务集成扩展平台:微服务下的流程引擎
    随着科技的飞速发展和市场竞争的日益加剧,企业对于高效的业务集成和扩展平台的需求变得愈发迫切。在当今这个数字化时代,数字化转型已成为企业生存和发展的必由之路,在这个过程中,先进的技术架构和工具起着至关重要的作用。微服务架构作为一种新兴的架构模式,正逐渐在企业中广泛普及......
  • Dockerfile 实战指南:轻松掌握容器化部署!
    Dockerfile非常重要,在实际工作中,使用Docker绝不是敲敲一些常用命令即可。Dockerfile几乎贯穿微服务的全部内容,务必掌握。不要求能从头开始编写Dockerfile,至少如果有个Dockerfile的模板,我们能够修改。‍概述Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建......
  • cross-plateform 跨平台应用程序-09-phonegap/Apache Cordova 介绍
    跨平台系列cross-plateform跨平台应用程序-01-概览cross-plateform跨平台应用程序-02-有哪些主流技术栈?cross-plateform跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?cross-plateform跨平台应用程序-04-ReactNative介绍cross-plateform跨平台应用程序-05-Flut......
  • 【开源免费】基于SpringBoot+Vue.JS在线视频教育平台(JAVA毕业设计)
    本文项目编号T027,文末自助获取源码\color{red}{T027,文末自助获取源码}......
  • 开源低代码平台,JeecgBoot v3.7.1 大版本发布
    项目介绍JeecgBoot是一款企业级的低代码平台!前后端分离架构SpringBoot2.x,SpringCloud,AntDesign&Vue3,Mybatis-plus,Shiro,JWT支持微服务。强大的代码生成器让前后端代码一键生成!JeecgBoot引领低代码开发模式(OnlineCoding->代码生成->手工MERGE),帮助解决Java项目70%的重复......
  • 基于Springboot流浪动物之家平台【附源码+文档】
    ......