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

news/2024/9/18 3:47:08/文章来源:https://www.cnblogs.com/o-O-oO/p/18410210
一、项目背景和原因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年左右,文中引用到的技术可能已略显陈旧,请谨慎参考,及时技术迭代。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796039.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习 - 课程笔记

线性回归 代价函数J,也被称为平方误差函数,用来描述假设函数值与真实值的误差大小。其中乘1/2是用于减少平均误差,并且后面求导会有一个2,可以消掉。线性回归的代价函数常用平方误差函数。假设函数的参数是x,代价函数的参数是θ。梯度下降法 要得到最小化代价函数的Θ0和Θ…

通过LiveGBS实现安防监控摄像头GB28181转成WebRTC流实现web浏览器网页无插件低延迟直播

@目录1、WebRTC超低延时直播2、WebRTC延时对比3、LiveGBS的低延时的WebRTC流4、分屏页面如何选择默认播放流5、无法播放Webrtc6、搭建GB28181视频直播平台 1、WebRTC超低延时直播 需要低延时的视频流监控播放,之前可以用rtmp的低延时播放(1秒左右),随着浏览器对rtmp的禁用,…

MUR3040CT-ASEMI快恢复二极管MUR3040CT

MUR3040CT-ASEMI快恢复二极管MUR3040CT编辑:ll MUR3040CT-ASEMI快恢复二极管MUR3040CT 型号:MUR3040CT 品牌:ASEMI 封装:TO-220AB 安装方式:插件 批号:最新 恢复时间:35ns 最大平均正向电流(IF):30A 最大循环峰值反向电压(VRRM):400V 最大正向电压(VF):0.95V~1…

Ros2 - Moveit2 - Grasps(抓握)

MoveIt Grasps 是一款用于抓取块或圆柱体等物体的抓取生成器,可用作 MoveIt 拾取和放置管道的替代品。MoveIt Grasps 提供基于可达性和接近、抬起和后退运动的笛卡尔规划来过滤抓取的功能。 抓握生成算法基于简单的长方体形状,不考虑摩擦锥或其他抓握动力。 MoveIt Grasps 可…

pbootcms模板后台登录页面在哪里修改

在PBootCMS中,如果你想修改后台登录页面的内容,比如文字和链接,可以通过编辑相应的HTML文件来实现。以下是具体的步骤: 修改后台登录页面备份文件:在修改任何文件之前,务必先备份相关文件,以防万一操作失误可以恢复。找到登录页面文件:打开你的PBootCMS安装目录,找到a…

一文总览 CES 升级新特性,全面了解云上的资源使用

摘要:使用云监控服务使您全面了解云上的资源使用情况、业务的运行状况,并及时收到异常告警做出反应,保证业务顺畅运行。1. 简介 云监控服务(CES)为用户提供一个针对弹性云服务器、带宽等资源的立体化监控平台,涵盖云基础设施、高阶服务、外网网络质量监控,是基于主机监控…

解读GaussDB(for MySQL) 冷热存储分离实现原理

摘要:GaussDB(for MySQL)冷热存储分离特性,支持用户直接针对Innodb的page进行归档和回迁操作,且无需调整上层业务即可访问冷数据。本文分享自华为云社区《GaussDB(for MySQL)新特性解读:冷热存储分离》,作者:GaussDB 数据库。 技术背景 业务长期运行,但随着时间推移,越…

WTF???

不是哥们,这紫了之后还能再升一遍?哦,喜闻乐见的 plagiarism 事件啊,那没事了

算法与数据结构——二分查找插入点

二分查找插入点 二分查找不仅可用于搜索目标元素,还可以解决许多变种问题,比如搜索目标元素的插入位置。 无重复元素情况Question 给定一个长度为n的有序数组nums和一个元素target,数组不存在重复元素。现将target插入数组nums中,并保持其有序性。若数组中已存在元素target…

2022 CSP-J 阅读程序3

1 2022 CSP-J 阅读程序3 阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 √,错误填;除特 殊说明外,判断题 1.5 分,选择题 3 分) 源代码 #include<iostream>using namespace std;int n,k;int solve1() {int l=0,r=n;while(l<=r){int mid=(l+r)/2;…

第二届熵密杯-广外女生青春版

晨曦初始谜题1 由源码可知,有固定的前缀,且长度为18,超过一个块的长度,可以通过求方程的形式先将key求出来,再将整个key带入解密函数得到加密前的字符串 求key # sage N_HEX = "FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123" N = Integer…

测评通义灵码,如何实现微信表情、 AI 语音笔记等小功能?

墨问西东是一家创业公司,很难一下子配齐像大公司那样的研发团队,这类 AI 编程辅助工具其实在一定程度上帮助我们的研发同学成长为全栈工程师,一个人就能顶上一个团队。内容来源 MacTalk 公众号,作者池建强 墨问西东是一家创业公司,很难一下子配齐像大公司那样的研发团队,…