2019年/第四篇 《DevOps原理、方法与实践》

一 什么是 DevOps


DevOps(Development和Operations)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合,从而达到快速交付有价值的产品的目的。

二 为什么是 DevOps


为什么是 DevOps?或者说为什么 DevOps 近几年才开始火起来呢?

其实 DevOps 是敏捷开发的延续,它将敏捷的精神延续到运维阶段。敏捷开发是为了响应变化,快速交付价值。随着互联网的不断发展,市场的变化也越来越快,敏捷开发的方式也开始被各大企业开始推广使用。但随之而来的遇到一个问题,在一个团队中,开发团队和运维团队是分开工作的,他们有不同的思维方式,并且彼此之间也都是坚守自身的利益。虽然采用了敏捷开发,开发团队可以采用很多敏捷方法,快速的做到持续集成,但后续的运维交付的步伐则非常慢,因为运维人员需要准备环境,各种数据,并手动的去做部署,整个流程将花费很多的时间,而且会面临部署失败的风险。所以对于运维人员来说会尽量低频率的做部署。这就好像是百米赛跑,前90米都是快速冲刺,而最后十米选择慢走,这对于整个价值交付并不能达到很好的效果。

三 DevOps 金字塔

DevOps

前面我们说到 DevOps 其实是将 敏捷延续到了运维。所以对与 DevOps 来说,其 价值观、原则、方法、实践基本都和敏捷一样,最大的不同是运维自动化工具的使用。
其价值观和敏捷价值观一样引导具体的实践,避免生搬硬套,为了使用而使
用。DevOps原则相对于敏捷原则多了一条“基础设施是代码,应该同样进行开发和管理”。DevOps 工具则包含了 版本控制工具、CI、配置管理工具、虚拟基础架构、自动化工具等。

四 DevOps 现状

目前对 DevOps 的研究主要在以下几个方面

微服务

DevOps 和微服务架构两者逐渐呈现相互依存的态势。
在宏观层面:微服务架构为DevOps思想提供了理论支撑和工程策略。在一个微服务系统中,每一个独立的微服务的每一次独立交付都会对整个系统做一次迭代交付和价值实现;
在微观层面:DevOps 为可以作为独立软件的微服务提供了持续交付的指导思想和方法论。

持续集成、持续部署、持续交付

持续交付是持续集成的下一步,力图通过自动化、可靠、可重复的方式将产品交付到产品环境上,从而减少部署风险,降低成本。

那持续部署和持续交付是什么关系呢?
有两种解释:

  1. 持续交付只是将集成好的代自动化的部署到类生产环境上,而持续部署则是会完全部署到生产环境上。
  2. 持续部署是将通过自动化测试的变动自动的部署到生产环境上。而持续交付需要通过手动方式部署到生产环境上。(这种解释更为普遍)
自动化工具

主要是 CI工具、CD(Deploy)工具

五 微服务软件架构

软件架构发展史

1. 单体架构
2. 分层架构

分层架构也叫 N 层架构,一般会根据自身情况进行分层。一般分为四层:

  • 展示层(presentation layer):用户界面,负责视觉及用户互动
  • 业务层(business layer):实现业务逻辑
  • 持久层(persistence layer):提供数据,SQL语句一般写在这
  • 数据库层(database layer):保存数据

分层架构很好的一点就是做到了 关注点分离,使得整个结构简单,易于开发,测试。但缺点还是和单体架构一样,部署比较麻烦,拓展性差。

3. SOA架构
面向服务的体系架构(SOA)是构造分布式计算的应用程序的方法。将应用程序作为服务发送给用户或其它服务。SOA架构会使用企业消息总线(ESB)和服务编排,将不同协议的接口编排起来,最后满足特定的需求。

4. 分布式架构
分布式系统由于建立在网络之上的软件系统,所以具有了高度的内聚性和透明性。其核心理念是让多台服务器协同工作,完成单台服务器无法处理的任务,这样就可以做到 廉价高效,弹性拓展。

5. 微服务架构

微服务架构是将单体程序系统划分为众多小而自治的服务进行开发的方式,其中每个服务都有自己的进程并利用轻量化机制进行通信,服务以业务边界进行分解,可凭借自动化部署机制实现独立部署,不同服务可基于不同技术使用不同编程语言实现并使用不同的数据存储技术。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • 前言 DevOps方案实施在互联网行业中已经相对成熟了,而在游戏行业中还处在起步的初级阶段(据个人了解的身边游戏公...
    云时代构架杨彪阅读 2,521评论 0 8
  • 何为DevOps,知乎的漫画 链接:https://www.zhihu.com/question/24413538...
    生活的探路者阅读 1,477评论 0 8
  • 什么是DevOps及其误区? DevOps概念从2009年提出已有8个年头。可是在8年前的那个时候,为什么DevO...
    Saxon_323e阅读 2,656评论 0 14
  • 收获:虽然认为很有道理,但感觉和自己没关系,从而不重视。那么,再好的观念和思想都与你无缘。 联想:当你发现一把“万...
    邢慧宇阅读 155评论 1 1
  • 在设置文件中,我们一般将信息事件设置成如下形式: 其中,interval代表时间间隔,size代表信息大小,pre...
    ShawnCaffeine阅读 371评论 0 2