应用(Application)部署容器化演进之路

news2024/11/27 3:50:17

目录

一、应用程序部署痛点

1.1 应用程序部署流程

1.2 应用程序扩缩容

1.3 应用程序多环境部署

二、 计算资源应用演进过程

2.1 使用物理服务器痛点

2.2 使用虚拟机优点与缺点

2.2.1 使用虚拟机优秀点

2.2.2 使用虚拟机缺点

2.3 使用容器的优点与缺点

2.3.1 使用容器的优点

2.3.2 使用容器的缺点

三、 What is a Container?

3.1 容器定义

3.2 容器功能

3.3 容器解决了什么问题

四、使用容器步骤


一、应用程序部署痛点

1.1 应用程序部署流程

举例:部署一个JAVA编程语言开发的Web应用,以War包放入Tomcat方式部署。

  • 部署过程如下:

    • 服务器配置运行环境:JAVA代码运行环境,例如JDK或JRE

    • 服务器上安装Tomcat web中间件,用于运行War包

    • 把JAVA Web对应的War包放置于Tomcat对应目录

    • 在服务器上启动Tomcat应用

    • 可选:涉及数据库(MySQL)或缓存系统(Redis)等都需要逐一部署。

1.2 应用程序扩缩容

  • 涉及多台服务器部署相同的上述环境

  • 痛点:上述环境部署要重新实施一遍,较浪费人力与物力成本

1.3 应用程序多环境部署

  • 环境:本地测试环境、预发布环境、生产环境

  • 在本地测试环境运行没有问题,但在预发布环境中出现了问题,甚至上面2种环境都没有问题,到了生产环境就有问题了。

  • 需求:一次成功,可到处运行。

二、 计算资源应用演进过程

2.1 使用物理服务器痛点

  • 从物理服务器自身管理角度

    • 物理服务器环境部署人力成本大,特别是在自动化手段不足的情况下,依靠人肉运维的方式解决。

    • 当物理服务器出现宕机后,服务器重启时间过长,短则1-2分钟,长则3-5分钟,有背于服务器在线时长达到99.999999999%标准的要求

    • 物理服务器在应用程序运行期间硬件出现故障,解决较麻烦

    • 物理服务器计算资源不能有效调度使用,无法发挥其充足资源的优势

  • 从物理服务器部署应用程序角度

    • 物理服务器环境部署浪费时间,没有自动化运维手段,时间是成倍增加的

    • 在物理服务器上进行应用程序配置变更,需要重新实施前述步骤

2.2 使用虚拟机优点与缺点

2.2.1 使用虚拟机优秀点

  • 从虚拟机本身管理角度

    • 虚拟机较物理服务器轻量,可借助虚拟机模板实现虚拟机快捷生成及应用

    • 虚拟机中部署应用与物理服务器一样可控性强,且当虚拟机出现故障时,可直接使用新的虚拟机代替

    • 在物理服务器中使用虚拟机可高效使用物理服务器的资源

    • 虚拟机与物理服务器一样可达到良好的应用程序运行环境的隔离

  • 从在虚拟机中部署应用程序角度

    • 在虚拟机中部署应用,容易扩容及缩容实现

    • 与物理服务器相比较,当部署应用程序的虚拟机出现宕机时,可以快速启动,时间通常可达秒级,10秒或20秒即可启动,应用程序可以继续提供服务

    • 应用程序迁移方便

2.2.2 使用虚拟机缺点

  • 虚拟机管理软件本身占用物理服务器计算资源较多,例如:VMware Workstation Pro就会占用物理服务器大量资源,所以一般在企业应用中使用KVM虚拟机较多。

  • 虚拟机底层硬件消耗物理服务器资源较大,例如:虚拟机操作系统硬盘,会直接占用大量物理服务器硬盘空间

  • 相较于容器技术,虚拟机启动时间过长,容器启动可按毫秒级计算

  • 虚拟机对物理服务器硬件资源调用添加了调链条,存在浪费时间的现象,所以虚拟机性能弱于物理服务器

  • 由于应用程序是直接部署在虚拟机硬盘上,应用程序迁移时,需要连同虚拟机硬盘中的操作系统一同迁移,会导致迁移文件过大,浪费更多的存储空间及时间消耗过长

2.3 使用容器的优点与缺点

2.3.1 使用容器的优点

  • 不需要为容器安装操作系统,可以节约大量时间

  • 不需要通过手动的方式在容器中部署应用程序的运行环境,直接部署应用就可以了

  • 不需要管理容器网络,以自动调用的方式访问容器中应用提供的服务

  • 方便分享与构建应用容器,一次构建,到处运行

  • 毫秒级启动

  • 容器可直接使用物理服务器硬件资源,物理服务器硬件资源利用率高,性能较好。

2.3.2 使用容器的缺点

对于对使用物理服务器、虚拟机已成为习惯的小伙伴来说,容器化可控性不强,最直观的就是对容器管理访问,总想按物理服务器或虚拟机的方式去管理它,其实容器与物理服务器、虚拟机管理方式上有着本质的区别的,最好不要管理。

三、 What is a Container?

3.1 容器定义

  • 虚拟机

    • 采用虚拟化技术手段实现物理服务器计算资源打包的方式,为应用程序提供类物理服务器运行环境

    • 能够实现应用程序与应用程序之间的隔离

    • 使用自动化技术部署应用程序及应用程序迁移较方便

    • 可横向扩展

  • 容器

    • 容器是轻量级物理服务器计算资源的打包方式,即轻量级虚拟机,为应用程序提供类虚拟机运行环境。

    • 可在物理服务器中实现高密度部署

  • 容器与虚拟机对比

对比属性容器(Container)虚拟机(VM)
隔离性基于进程隔离提供资源的完全隔离
启动时间毫秒级或秒级秒级或分钟级
内核共用宿主机内核使用独立内核
占用资源MB级GB级
系统支持容量(同级别)支持上千个容器几十台虚拟机

3.2 容器功能

  • 安装容器管理工具,例如Docker,Containerd等,把应用以容器化的方式运行

  • 应用在自己的容器中运行,实现应用程序间隔离

  • 应用程序运行的容器可以生成应用程序模板文件,即容器镜像(Image),其不可变,即为云原生代表技术基础设施不可变,且可以在其它的物理服务器中运行。

3.3 容器解决了什么问题

  • 快速交付和部署应用 (镜像与容器)

  • 资源的高效利用和隔离 (在物理机上实现高密度部署)

  • 便捷迁移和扩缩容(一次构建,多处运行)

四、使用容器步骤

  • 安装容器管理工具

    • Docker (Docker公司)

    • Containerd (2017年docker捐给CNCF云原生计算基金会)

    • Pouch (阿里云)

  • 搜索/下载容器镜像(Image)

  • 使用容器镜像生成容器(容器镜像中的应用程序启动)

  • 终端用户(互联网用户或其它应用程序)访问

  • 迁移部署(可直接把正在运行的容器打包成新的容器镜像,在其它主机上运行即可。)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中国提出FastSAM:在RTX3090上提升了ViT-H E(32×32) 50倍速度

文章目录 1. Abstract2. 背景介绍3. 框架详情 (Methodology)3.1 Overview3.2 All-instance Segmentation3.3 Prompt-guided Selection4. Experiments4.1 Run-time Efficiency Evaluation4.2 Zero-Shot Edge Detection4.2.1 BSDS5004.2.2 Sobel filtering4.2.3 NMS4.3 Zero-Shot…

最优化方法——Matlab实现黄金分割法一维搜索

文章目录 黄金分割法一维搜索原理算法流程: Matlab代码命令行窗口结果打印:《最优化方法》教材上写成表的答案:黄金分割法的一些性质 黄金分割法一维搜索原理 若保留区间为[x1,b],我们得到的结果是一致的. 该方法称为黄金分割法,实际计算取近…

编译工具:CMake(七) | cmake 常用变量和常用环境变量

编译工具:CMake(七) | cmake 常用变量和常用环境变量 cmake 变量引用方式cmake 自定义变量的方式cmake 常用变量总结 cmake 变量引用方式 cmake使用${}进行变量的引用。 在 IF 等语句中,是直接使用变量名而不通过${}取值 cmake…

京东全店商品采集教程(详解京东店铺所有商品数据采集步骤方法和代码示例)

随着电商行业的快速发展,京东已成为国内的电商平台之一,拥有着海量的商品资源。对于一些需要大量商品数据的商家或者需求方来说,京东全店采集是非常必要的。本文将详细介绍京东全店采集的步骤和技巧,帮助大家更好地完成数据采集任…

基于Spark的K-means快速聚类算法的优化

摘要 1 引言 2 相关研究 2.1 Spark计算框架 2.2 K-means算法 2.3 K-means++算法

Python异步编程高并发执行爬虫采集,用回调函数解析响应

一、问题:当发送API请求,读写数据库任务较重时,程序运行效率急剧下降。 异步技术是Python编程中对提升性能非常重要的一项技术。在实际应用,经常面临对外发送网络请求,调用外部接口,或者不断更新数据库或文…

位深bitdepth是什么

bitdepth bit depth/color depth到底是什么,其对视频有何影响? 数字数据比如数字视频、数字照片等,都是以二进制存储的,那么其一个最小的数据单元就是一位bit,比特位中只有0或1两种值。为了方便处理,把多…

McCabe度量法

概论: McCabe度量法是由 托马斯麦克凯 提出的一种基于程序控制流的复杂性度量方法。又称环路度量,循环复杂度(Cyclomatic complexity), 也称为条件复杂度或圈复杂度,是一种软件度量。它认为程序的复杂性很大程度上取决…

《计算机视觉中的多视图几何》笔记(5)

5 Algorithm Evaluation and Error Analysis 本章主要讲述对算法的验证和误差分析。 概述了两种计算这种不确定性(协方差)的方法。第一个基于线性近似值,涉及串联各种雅各布表达式,第二个是更容易实施蒙特卡洛方法。 文章目录 …

Soft-Serve小巧强大-轻量级Git服务

文章目录 前言一、Soft-Serve官方解释:我的要求 二、使用步骤我的环境公钥、私钥生成安装镜像参数解释: 配置config.yamlconfig 实操创建用户及绑定公钥创建代码仓库及添加合作者之后就是 git 基本操作了 总结 前言 用过 Gitlab, 也挺好用。 遇到几个问…

固定资产管理系统的作用有哪些

固定资产管理系统的功效原因很多。  它帮助企业更好地管理其固定资金,包括设备的采购、维护、更新和损坏。根据系统管理计划,企业可以更有效地节约成本,提高效率,降低风险。  资产管理系统可以实现企业资产共享与合作应用。在…

「聊设计模式」之中介者模式(Mediator)

🏆本文收录于《聊设计模式》专栏,专门攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎持续关注&&收藏&&订阅! 前言 在软件开发过程中,我们通常会遇到一个问题&…

北邮22级信通院数电:Verilog-FPGA(2)modelsim北邮信通专属下载、破解教程

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 1.下载 2.解压打开 3.modelsim初安装 4.…

控制器连接Profinet转Modbus RTU网关与精密数显温控仪通讯

Profinet是一种用于工业自动化领域的通信协议,而Modbus RTU则是一种常见的串行通信协议。由于生产现场中的控制器与精密数显温控仪通常采用不同的通信协议,因此需要借助Profinet转Modbus RTU网关(XD-MDPN100)完成通信的桥接与转换…

Markdown(MD)——Typora Markdown安装教程(2023九月亲测可用!!!)

目录 一、简介 1.Markdown简介 2.Markdown特点 3.Typora简介 二、安装教程 1.下载安装包 2.解压到文件夹 3.安装 4.破解 ​编辑5.激活 三、Markdown常用语法 1.常用语法 2.用于编辑LaTex公式 四、其他编辑器 一、简介 1.Markdown简介 Markdown 是一种轻量级标记语…

Java多线程篇(3)——线程池

文章目录 线程池ThreadPoolExecutor源码分析1、如何提交任务2、如何执行任务3、如何停止过期的非核心线程4、如何使用拒绝策略 ScheduledThreadPoolExecutor源码分析 线程池 快速过一遍基础知识 7大参数 corePoolSize : 核心线程数 maximumPoolSize: 最…

Docsify介绍—md文件直接生成网页的工具

Markdown是一种轻量级标记语言,它使用易读易写的纯文本格式,用于编写文档,如README,wiki,博客文章等。Markdown语言最初由约翰格鲁伯(John Gruber)和亚伦斯沃茨(Aaron Swartz&#x…

ssm637教材管理系统+vue

项目介绍 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前学校对于教材信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理模式已然落后。本…

YOLO系列

一、YOLOv1 Bbox使用开根号的原因: 小目标与大目标偏移相同尺度时,小目标检测效果差,那么公式中使用根号就会让小目标损失值更大了 V1网络的一些问题: 小目标检测效果差,当目标出现新配置也不行,目标定位…

红黑树插入的实现

红黑树: 1.概念: 红黑树的性质: 红黑树的插入操作: 其前面的插入和二叉搜索树的一模一样,只是后面需要判断是否满足红黑树的性质: 具体分为三种情况: 1.uncle节点存在且为红色的&#xff1a…