Docker是实施DevOps的加速器

Stella981
• 阅读 180

Docker是实施DevOps的加速器

DevOps的目的是通过自动化手段提高软件部署的速度和频率,不断的给用户交付价值。之前在实施DevOps时,针对环境管理和发布部署这部分,估计是好多运维人员的恶梦。

环境的无法弹性供给以及因环境配置导致部署的应用出现各种各样的问题,导致为了测试某一个具体的场景,搭环境就需要一周时间,效率从何谈起?应用程序部署上去,不能用,开发人员、测试人员、运维人员相互甩锅,最后发现是环境配置不一样导致的,测试时并没有提前发现问题。这些问题都很常见,不仅浪费了大量的时间和人力,最主要的是会影响产品投放市场的时间,有可能会错过一个关键的机会,被竞争对手捷足先登。

随着容器技术和云计算的快速发展,特别是最近几年,以Docker为代表的现代容器技术和以Kubernetes为代表的容器编排技术,已经占据了云计算的半壁江山。以阿里云,百度云,华为云为代表的公有云平台,已经越来越成熟,未来软件上云已经是不可改变的趋势。

容器技术的发展如此之快,是因为解决了开发人员和企业的痛点。先简单介绍一下Docker,Docker是一个开源的应用容器引擎,开发者可以将他们的应用及依赖包打包到一个可移植的容器中,然后发布到任何流行的Linux机器上,并能够通过容器管理平台,根据实际需求进行弹性供给,可以节约大量的硬件资源,降低企业运营的成本。

Docker的出现加速了DevOps的发展进程,是DevOps实施的加速器。主要原因是:

1、Docker使得软件交付标准化。docker将应用程序及所需要的依赖环境打包成一个镜像,这个镜像可以运行在装有docker的机器上,不管是测试环境和生产环境使用的都是同一个镜像,不会因为环境配置的不同导致服务不可用。

2、Docker使得环境快速供给。docker将一套系统的不同应用服务打包成不同的镜像,通过dockerfile文件编排不同服务的依赖关系以及容器启动的配置,当需要一套环境用于测试时,可以通过dockerfile快速创建,达到分钟级供给。

3、Docker使得企业运营成本降低。docker能够提高硬件资源的利用率,根据业务需求,访问流量实现动态伸缩,相比物理机和其他虚机来说,降低企业成本是最直接的价值,也会得到企业领导层的大力支持。

Docker在交付上标准化,屏蔽了不同应用程序和环境的差异,通过镜像的启动而启动应用服务。同时,容器管理平台标准化的API接口使得应用程序从代码到镜像,从镜像到部署实现自动化,通过将镜像的版本与代码的版本一一对应,实现镜像的版本控制,在应用程序测试,问题分析和问题修复时都能快速定位。Docker自身的发展也带动了Docker生态的发展,目前在开源社区已经有很多围绕docker中服务进行运维的工具,能够保障docker服务的不间断运行。

本文分享自微信公众号 - DevOps探索者(devopsagile)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
秃头王路飞 秃头王路飞
2个月前
webpack5手撸vue2脚手架
webpack5手撸vue相信工作个12年的小伙伴们在面试的时候多多少少怕被问到关于webpack方面的知识,本菜鸟最近闲来无事,就尝试了手撸了下vue2的脚手架,第一次发帖实在是没有经验,望海涵。 language JavaScript "name": "vuecliversion2", "version": "1.0.0", "desc
技术小男生 技术小男生
2个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi /etc/profile2:按字母键i进入编辑模式,在最底部添加内容: JAVAHOME/opt/jdk1.8.0152 CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jar PATH$JAVAHOME/bin:$PATH3:生效配置
刚刚好 刚刚好
2个月前
css问题
1、 在IOS中图片不显示(给图片加了圆角或者img没有父级) <div<img src""/</div div {width: 20px; height: 20px; borderradius: 20px; overflow: h
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录 问题 用navicat导入数据时,报错: 原因这是因为当前的MySQL不支持datetime为0的情况。 解决修改sql\mode: sql\mode:SQL Mode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。 全局s
小森森 小森森
2个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本 欢迎添加左边的微信一起探讨!项目地址:](https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n) \2. Bug修复更新日历 2. 情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意), \ \ 和 注意
晴空闲云 晴空闲云
2个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。 盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
1个月前
快速入门|使用MemFire Cloud构建React Native应用程序
> MemFire Cloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Stella981 Stella981
1年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置 1、virsh edit centos7 找到“memory”和“vcpu”标签,将 <name>centos7</name> <uuid>2220a6d1-a36a-4fbb-8523-e078b3dfe795</uuid>
Easter79 Easter79
1年前
Twitter的分布式自增ID算法snowflake (Java版)
概述 == 分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。 有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
1年前
MySQL查询按照指定规则排序
1.按照指定(单个)字段排序 select * from table_name order id desc; 2.按照指定(多个)字段排序 select * from table_name order id desc,status desc; 3.按照指定字段和规则排序 selec
helloworld_28799839 helloworld_28799839
2个月前
常用知识整理
# Javascript ## 判断对象是否为空 ```js Object.keys(myObject).length === 0 ``` ## 经常使用的三元运算 > 我们经常遇到处理表格列状态字段如 `status` 的时候可以用到 ``` vue