在非容器环境中实现DevOps

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

采用DevOps方式实现软件交付的原因之一是为了消除生产部署过程中的瓶颈,对于服务器端软件,通常涉及以下部分:

应用程序环境,如操作系统参数第三方组件,如应用程序服务器,web服务器和数据库顶部运行的应用软件

为了消除部署瓶颈,DevOps旨在打破开发人员和IT运营人员之间的障碍(也是DevOps得名的原因),以促进协作的工作环境。因此,需要确保生产环境与开发环境保持同步,并且所有部署过程一起执行。实现这一目标的方式之一是通过使用容器,如Docker或Kubernetes。事实上,很多人将容器和DevOps理解成了同义词,并且将这两者建立了依赖的关系。


但是,这两者不需要依赖关系:完全可以在非容器环境下实现DevOps。

为什么容器很重要

容器是管理运行软件的操作系统的轻量级的抽象,它能够将进程彼此隔离,对资源使用加以限制,并帮助打包软件依赖。容器不会替代虚拟化,因为容器的操作更接近应用程序级别,而不是物理级别。

容器的高效率使得它应用非常广泛,通过容器用户可以快速部署并实现软件组件联机,与虚拟化相比它能够以较低的成本启动新的应用案例,用户可以更紧密地控制应用程序环境。例如,如果开发人员在容器中编写和构建软件,则容器及其中的一切都可以被打包并传输到生产服务器。效率和自动化使得DevOps和云运行良好。

容器中好的DevOps用例始终围绕着快速上线新服务器连接的需求,这通常是微服务部署的案例。容器可以非常有效地快速启动和破坏微服务和开发/测试环境,除此以外,在DevOps中使用容器更多的是一个选择,而不是一个需求,DevOps远不止目前这些。

非容器环境下无痛部署

不管容器能带来多少好处,有很多理由支持我们不采用容器化的方法来进行软件部署。包括:

缺乏容器技能或相关知识特殊应用性能要求(即实时系统)实用软件环境下不支持的硬件(即嵌入式系统,专用或传统操作系统)公有云部署等等

不依赖容器来实现DevOps的成功,需要关注以下3点:

1、自动化:通过工具尽可能地实现自动化,无论是大型机应用程序还是微服务,都可以通过工具来减少手动工作量及其失误。

2、持续集成:连续测试软件模块、组件、服务等,不要等到开发结束之后才集成和部署系统。

3、连续测试:通过持续集成,确保系统始终可用、可测试且理论上可释放,测试开发工作的结果是反馈循环的一部分。

特定的构建和部署工具是有帮助的,并且通常需要达到使部署简化的自动化水平。然而,DevOps的最大成就主要来自于三个方向的努力:

持续开发构建和测试周期更频繁地部署到生产服务器直接和即时反馈给开发人员

通过这三个努力,软件永远不会被孤立地构建,组件不断地进行集成,而且每个人都能知道需要改进的地方一切正常。因此,开发和IT部门可以保证正在构建的内容将按照预期的方式进行部署和运行。业务上线的过程中就在不断地突破瓶颈,因为在部署过程和生产环境中伴随着软件的测试,因此在开发周期结束时可以正常使用。

人员是DevOps成功的关键

成功的关键不是工具集,而是人员、沟通和度量。因为使用DevOps实践,当开发新版本的软件时间被限制在几周或者几个月内,在最终期限到来的时候,用户不用担心软件的部署对生产造成的影响,因为在开发过程中一直在进行测试。

这就是为什么它被称为DevOps实践,而不是DevOps过程、DevOps组、DevOps工具集或DevOps环境。容器可是成为DevOps实践的一个补充,帮助管理生产环境,但它不应该是DevOps必须的。相反,专注于DevOps实践,并在这个过程中使用容器才有意义。 


  

本文转自d1net(转载)


目录
相关文章
|
2月前
|
Kubernetes 供应链 安全
云原生环境下的容器安全与最佳实践
云原生时代,容器与 Kubernetes 成为企业应用核心基础设施,但安全挑战日益突出。本文探讨容器安全现状与对策,涵盖镜像安全、运行时防护、编排系统风险及供应链安全,提出最小权限、漏洞扫描、网络控制等最佳实践,并结合阿里云 ACK、ACR 等服务提供全链路解决方案,展望零信任、AI 安全与 DevSecOps 融合趋势。
114 4
|
3月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
264 16
|
4月前
|
存储 缓存 Serverless
【Azure Container App】如何在Consumption类型的容器应用环境中缓存Docker镜像
在 Azure 容器应用的 Consumption 模式下,容器每次启动均需重新拉取镜像,导致冷启动延迟。本文分析该机制,并提出优化方案:使用 ACR 区域复制加速镜像拉取、优化镜像体积、设置最小副本数减少冷启动频率,或切换至 Dedicated 模式实现镜像缓存,以提升容器启动效率和应用响应速度。
125 0
|
6月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
217 0
|
10月前
|
运维 监控 Devops
如何理解DevOps在IT环境中的应用及价值
本文介绍DevOps的定义、适用团队、实施步骤及常用工具链,帮助初创公司实现自动化流程、持续集成与交付,增强灵活性和产品质量,快速响应市场需求。
375 0
如何理解DevOps在IT环境中的应用及价值
|
11月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
351 3
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
743 30
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
存储 监控 Shell
docker的底层原理二:容器运行时环境
本文深入探讨了Docker容器运行时环境的关键技术,包括命名空间、控制组、联合文件系统、容器运行时以及分离的进程树,这些技术共同确保了容器的隔离性、资源控制和可移植性。
271 5