EXIN DevOps Master培训有感

Stella981
• 阅读 670

EXIN DevOps Master培训有感

这几天有幸参加了高维社区组织的EXIN DevOps Master国际认证课程,有理论学习,有沙盘模拟,还有真实的考试,可谓紧张而充实,接触到的一些经验和理论,还是值得在实际工作中,借鉴以及落地。

DevOps这词儿不是最近,才开始流行起来,一些互联网巨头Google、Facebook、Amazon、LinkedIn、Netflix、Airbnb,传统软件公司Adobe、IBM、Microsoft、SAP等,亦或是苹果、星巴克等都在采用DevOps或提供相关支持产品,国内则有各种互联网公司,甚至一些传统的企业,都在进行着各种实践,特别是Google SRE这本书引入之后,DevOps就像成为了标配,但实际上,对于DevOps,可能还有不少的误解,甚至炒作。

究竟什么是DevOps?

这问题有很多大牛的解释,官方专业的回答,各位可以自行google。

对于DevOps这词的由来,可以参考http://www.jianshu.com/p/f40209023006。简单讲就是DevOps之父Patrick,2009年在比利时举办一个类似Velocity的大会,受众是开发和运维工程师,会议的名称是DevOpsDays。但是由于Twitter上140个字符的限制,因此在Twitter上讨论的时候,去掉了DevOps中的Days,保留DevOps。

以下则是wiki对于DevOps的解释,可以看出,他强调了DevOps其实是一种软件工程的文化以及实践,目标就是统一“软件开发”,以及“软件维护”,DevOps不是一门单独的技术,旨在增强自动化以及监控整个软件创建的过程,从集成、测试、发布,到开发和基础设置管理,目标就是为了,缩短开发周期、提高部署频率和独立的发布,和商业目标能紧密结合。

DevOps (a clipped compound of "development" and "operations") is a software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops). The main characteristic of the DevOps movement is to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management. DevOps aims at shorter development cycles, increased deployment frequency, more dependable releases, in close alignment with business objectives.

如果从字面含义来看,DevOps是Development开发和Operation运维的缩写,但正如赵班长所说的,DevOps既不是开发运维,也不是运维开发,就是“开发”和“运维”,两者互不为对方的形容词,之所以这么说,我认为强调的是,开发和运维相互之间的融合,InfoQ上木环有篇文章,里面有张图片,很有意思,

EXIN DevOps Master培训有感

以往开发和运维,如图中所说的,即使属于同一个部门,可能之间还是有堵墙,原因就是各自的目标不同,开发的目标就是,按照需求,按时按量完成开发任务,运维的目标则是,保障线上应用的稳定,从各自角度看,没有对错,但从整体来看,由于目标的不同,有时候就会形成矛盾,开发写出的代码,可能不具备“可运营性”,给运维设置各种各样的坑,运维则为了保证线上,给开发设置各种要求,”阻止“其进行各种危险的上线。但往往受限于业务的压力,不具备”可运营“的代码,依旧需要上线,随之带来的则是各种,故障-堵窟窿-背锅,矛盾更深。

对于开发和运维来说,实际的需求则是,开发想让自己的代码,尽快上线,而运维则想让自己维护的系统更加具备“可维护性”,从这一角度看,其实双方有一些共同点,开发在写代码的过程中,其实可以将一些运维的考虑加入系统设计当中,让其更具“可维护”,满足运维的基本需求,运维同样可以通过自动化,实现一些开发可以自服务、自诊断的工具,将运维要考虑的地方,封装起来,让开发人员使用,同时可以利用持续集成、自动化部署上线,一系列方法提高部署频率,满足业务和开发的需求。

某种意义上可以这么说,DevOps强调开发运维一体化,之前阿里曾为了全面践行DevOps,分拆整个应用运维团队,合并至每一个BU开发团队,从组织结构上,打通了开发和运维的关系。

当然不能说开发和运维,属于同一个部门,就一定是DevOps,就一定能是DevOps最佳实践,重要的是开发和运维,能否为了同一个目标,利用各种技术、工具,保证开发质量的前提下,高效、可靠、频繁地进行线上部署和运维,即实现软件产品交付过程中各环节和团队的打通,使得各个团队减少时间损耗,更加高效地协同工作。

DevOps涉及了不少知识体系,例如CI持续集成、持续开发、持续部署、配置管理,还有一些日本制造业,创造的工程思想,例如JKK质量检查、PDCA、KaiZen持续改善、Lean精益,同时包含一些文化理念,例如blameless免责,当然还要务实,技术上会包括微服务、云计算等,下面这张图形象描述了,DevOps做到极致,需要经历怎样的阶段,

EXIN DevOps Master培训有感

只是务虚没意义,实现DevOps各环节技术栈一览,

(http://blog.csdn.net/FIRim/article/details/52681704)

版本控制&协作开发: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

监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana

我们正利用业余时间,研发一套系统,我们为其起名”Sherlock”,旨在让开发人员可以自服务,涉及的领域业界有成熟产品,但要么是太贵,要么是具体实现有偏差,至少我们公司,目前在这一领域,没有先河,因此算作尝试,待机会成熟时,再向各位介绍。

回到这次培训,EXIN DevOps Master。其中EXIN,全称Exam Institute for Information Science,国际信息科学考试学会,由荷兰经济事务部创办,现今已经从荷兰政府部门独立成立了EXIN基金会。EXIN是一家面向全球ICT从业人员的中立认证考试机构。听着可能陌生,但提到著名的“全球IT服务管理最佳实践知识体系-ITIL”,可能就有不少人,比较了解,EXIN就是其最初的创始机构之一。

以下是EXIN官方对于DevOps Master介绍,

EXIN DevOps Master is an advanced-level certification that teaches candidates a combination of principles, knowledge and practical skills. This enables them to introduce and promote DevOps in their organization in order to better manage application and service lifecycles whilst facilitating collaborative teamwork.

简单来讲,就是围绕DevOps的知识体系,结合一些案例和最佳实践,进行整体宣讲,涉及的领域很广,从项目管理、开发、测试到运维,从Scrum、Lean、KanBan到JKK,理论结合实践,灌输DevOps的思想理念,以及文化,但这其中,不会涉及一些技术细节。

这是EXIN DevOps Master认证考试的介绍,

(https://www.exin.com/en/certifications/exin-devops-master-exam)

EXIN DevOps Master培训有感

这次授课,是来自高维社区的三位牛人,做为讲师,第一天是业界著名的赵班长,从DevOps基础开始说起,介绍了整个DevOps理论体系,结合一些案例,让我们从感性到理性,对于DevOps有了认识。第二天则是景韵,做为敏捷教练,带着我们,进行了“凤凰项目”的沙盘模拟,可以说将DevOps理论,通过沙盘模拟,进行了一次落地的实践,加深我们对于DevOps中,一些理论的认识和应用。第三天是张乐,主要关注持续集成和流水线,经验也很丰富,理论和案例结合,让我们对于持续集成、DevOps理解有了新的体会和高度。另外,教务非常nice,无论是课程安排、午餐以及茶歇,非常到位,可以说和讲师们一起,践行了培训的"DevOps",非常感谢所有人的付出。

对于DevOps,总结一下,强调了开发和运维人员,做为一个整体,消除以往的隔阂,为了同一个目标,协同工作,但能否真正落地,一方面要看公司的文化,以及战略,只有一腔热忱,制度上有限制,白搭,另一方面需要技术的实现,空有各种理念,技术上无法支持,自然只能空谈,用Linus Torvalds一句话解释,“Talk is cheap, show me the code.”。

如果您觉得此篇文章对您有帮助,欢迎关注微信公众号:bisal的个人杂货铺,您的支持是对我最大的鼓励!共同学习,共同进步:)

EXIN DevOps Master培训有感

EXIN DevOps Master培训有感

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

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
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:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
2年前
DOIS 2019 DevOps国际峰会北京站来袭~
DevOps国际峰会是国内唯一的国际性DevOps技术峰会,由OSCAR 联盟指导、DevOps时代社区与高效运维社区联合主办,共邀全球80余名顶级专家畅谈DevOps体系与方法、过程与实践、工具与技术。会议召开时间:2019070508:00至2019070618:00结束会议召开地点:北京主办单位:DevOps
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这