初识DevOps

天翼云开发者社区
• 阅读 73

基本概念和延伸的思考

DevOps,是Development(开发)和Operations(运维)组成的复合词,一般译为“开发运维一体化”。 初识DevOps

看到这个概念,首先会产生几个问题: 开发是什么,哪些环节是开发? 运维是什么,哪些环节是运维? 开发人员写好代码在本地调试,环境出问题了自己来调整,这是开发工作还是运维工作? 系统故障后,运维人员发现是配置文件内容出错了就改成了正确的信息,这是运维还是开发工作? 这些问题不正是说明本身开发和运维本来就是一体的吗,为何还要进行开发运维一体化?

每个切身参与到开发和运维的员工,日常工作一定经常遇到各种界限不清晰的问题。面对这类问题,应对策略和解决方法,大致分为如下两个方向: 1、从管理角度,制定工作环节和流程的规章制度,规范人员行为,确保开发和运维环节的衔接。 2、从技术研发角度,研究开发过程的管理工具,减少人工的环节,从而减少问题出现的机会。

敏捷管理

管理角度上,从瀑布式开发到敏捷开发,人们一直在面对的是软件不断发生变更的需求场景,从而被动衍生出来一套应对频繁变化,快速迭代的管理模式。

传统的瀑布开发流程是: · 需求人员收集客户需求; · 进行需求分析,输出需求规格说明书; · 召集开发部门宣讲需求,开发人员开始编写代码; · 写好代码以后,进行后续的代码构建、测试环境部署; · 经过测试部门测试,通过后交给实施部门; · 实施部门进行生产环境部署。 在瀑布模式和敏捷开发共同出现的语境中,人们经常认为瀑布模式是一种过时的技术,缺点很多的技术。而通过上述的流程可以看出,瀑布模式清晰的定义出了各个环节的职责范围,保障软件开发工作无偏差、高质量的完成。

而敏捷开发出现不是为了颠覆瀑布模式,而是弥补瀑布模式周期较长不够灵活这一缺点。 初识DevOps 敏捷开发并没有抛弃瀑布开发的工作环节,而是在经常发生变更的场景下,进行灵活的工作调整,来实现在变化中迭代的效果。

丰富的工具

技术角度上,开发过程的各个环节,都已经诞生出多种适用于各种不同场景的工具。有开源、有商用,供各类不同的用户选择。

初识DevOps 一些常见的技术: 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go 容器平台:Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/天翼云) 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat 日志管理:Logstash、CollectD、StatsD 监控,警告&分析:Prometheus、Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana

可以看到工具不仅仅局限在开发环节,构建、测试、部署、运维工具也均发展出了优秀的软件和技术。

优秀的开发管理模式和成熟的技术的相融合,形成了今天我们看到的DevOps模式。 实践DevOps的原则 那么现在技术已经具备了,优秀的开发管理模式也具备了。如何结合两者,形成一个借助工具来快速、自动化的完成整个开发生命周期的模式呢? 答案就是DevOps。

但需要注意的是,DevOps并非一套通用方法来做技术和流程的结合。而是技术和流程结合这一实践过程中,不断调整、探索,最终达到一个适合自己的模式。

每个开发者或者企业都有个性的工作和管理模式。没有一个标准的方案能够适用于每个企业,企业在践行DevOps时应该充分考虑这样一些原则:

1、基础设施即代码(Infrastructure as Code) DeveOps的基础是将重复的事情使用自动化脚本或软件来实现,例如Docker(容器化)、Jenkins(持续集成)、Puppet(基础架构构建)、Vagrant(虚拟化平台)等。

2、持续交付(Continuous Delivery) 持续交付是在生产环境发布可靠的软件并交付给用户使用。而持续部署则不一定交付给用户使用。涉及到2个时间,TTR(Time to Repair)修复时间,TTM(Time To Marketing)产品上线时间。要做到高效交付可靠的软件,需要尽可能的减少这2个时间。部署可以有多种方式,比如蓝绿部署、金丝雀部署等。

3、协同工作(Culture of Collaboration) 开发者和运维人员必须定期进行密切的合作。开发应该把运维角色理解成软件的另一个用户群体。协作有几个的建议:1、自动化(减少不必要的协作);2、小范围(每次修改的内容不宜过多,减少发布的风险);3、统一信息集散地(如wiki,让双方能够共享信息);4、标准化协作工具(比如jenkins)。

高效便捷的DevOps体验----天翼云EasyCoding敏捷开发平台

阐述了这些概念之后,有没有快速实践DevOps的方法呢? 市面上目前已经出现大量成熟的DevOps平台供用户挑选了,很多平台都能够进行试用,让用户尝试DevOps,体验DevOps带来的进步。

天翼云EasyCoding敏捷开发平台就是这样一款产品,以产品价值在线化,交付价值自动化为设计理念,提供敏捷开发SaaS服务,助力大中型企业高价值、高质量、高效率发布产品,开启高效研发之旅。

天翼云EasyCoding平台具有这些优势: · 灵活的编排能力 可灵活编排的工作项界面、流程和规则,支持各种复杂的业务,可编排的流水线。 · 灵活的扩展能力 支持应用、单据、属性、事件多级扩展机制,实现无代码或低代码的扩展 · 完善的开放生态 可基于丰富的前端组件和后端API、易用的公共服务定制开发衍生应用 · 快速稳定的响应 基于搜索引擎的读写分离,保障高并发、大数据量场景下稳定的性能 · 前瞻性的管理思想 交易流程在线,业务活动在线,端到端全程可视跟踪业务活动 · 稳定安全的研发环境 基于天翼云的接入安全、数据安全管理,多副本容灾架构设计

下期我们将介绍天翼云EasyCoding的基本使用方法,带您一步步走入DevOps。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
1年前
DevOps简介
DevOps是一个完整的面向IT运维的工作流,以IT自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。DevOps的概念DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和
Stella981 Stella981
1年前
DevOps第一讲:什么是DevOps
DevOps概念早先升温于2009年的欧洲,因传统模式的运维之痛而生。!(https://static.oschina.net/uploads/img/201707/22121051_DBdW.jpg)DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。不过DevOps其实包含了四个部分:产品、开发、测试和运维。!
Stella981 Stella981
1年前
DevOps背景下的分合之事
DevOps倡导“谁开发,谁运维”和开发运维一体化。那么是不是简单地把开发和运维人员放在一起就完事了呢?01—“插队”的故事小明入职时是运维专员,原来隶属于运维部门,负责某业务线系统的应用维护工作。一旦系统的生产环境出现任何故障,或者业务人员在生产环境上有任何请求,都是由小明所在的运维部门先处理,处理不了的,再联系该系
一个关于SDWAN单臂部署方案验证的实验
假设有这样一张网络,其中RTA和PCA表示某公司的A分支,通过中国电信CT路由器接入互联网ISP;RTB和PCB表示某公司的B分支,通过中国联通CU路由器接入互联网ISP。DNS(8.8.8.8)表示某互联网应用。为实现A分支私网192.168.2.0/24和B分支私网192.168.3.0/24的互通,现计划使用某厂商的SDWAN方案进打通两个内网,像下图
高性能API网关Kong介绍
本文关键词:高性能、API网关、Kong、微服务1.Introduction是随着微服务(Microservice)概念兴起的一种架构模式。原本一个庞大的单体应用(Allinone)业务系统被拆分成许多微服务(Microservice)系统进行独立的维护和部署,服务拆分带来的变化是API的规模成倍增长,API的管理难度也在日益增加,使用API网关发布和管
SPDK对接Ceph性能优化
关键词:SPDK、NVMeOF、Ceph、CPU负载均衡SPDK是intel公司主导开发的一套存储高性能开发套件,提供了一组工具和库,用于编写高性能、可扩展和用户态存储应用。它通过使用一些关键技术实现了高性能:1.将所有必需的驱动程序移到用户空间,以避免系统调用并且支持零拷贝访问2.IO的完成通过轮询硬件而不是依赖中断,以降低时延3.使用消息传递,以避免IO
3A网络 3A网络
5个月前
理解 virt、res、shr 之间的关系(linux 系统篇)
理解virt、res、shr之间的关系(linux系统篇)前言想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过t
3A网络 3A网络
5个月前
开发一个不需要重写成 Hive QL 的大数据 SQL 引擎
开发一个不需要重写成HiveQL的大数据SQL引擎学习大数据技术的核心原理,掌握一些高效的思考和思维方式,构建自己的技术知识体系。明白了原理,有时甚至不需要学习,顺着原理就可以推导出各种实现细节。各种知识表象看杂乱无章,若只是学习
SPDK QOS机制解析
本文关键词:intelspdkbdevqos序:intelspdk软件在存储领域应用广泛。因其可以高效管理linux系统的nvmessd盘,又支持vhostuser协议可以对接qemu虚拟机,在云计算领域通常被用来做本地盘云主机的存储管理软件。如此优秀的一款软件,有必要仔细分析其内部的实现机制,本篇文章主要介绍spdkqos机制。spdk
天翼云高可用虚拟IP(HAVIP)实践
(一)产品概述天翼云高可用虚拟IP(HighAvailabilityVirtualIPAddress,简称HAVIP)是一种可用独立创建和删除的私有网络IP地址资源。通过在VIPCIDR中申请一个私有网络IP地址,然后与高可用软件(如高可用软件Keepalived)配合使用,可用在VPC中搭建高可用的主备集群服务,提高VPC中服务的可用性。限制和说明
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
278
文章
0
粉丝
1
获赞