随着IT技术的不断发展,从传统的IT建设模型逐步向新型IT建设模型过渡,建设模式的改变,必然影响应用系统的全生命周期。应用系统的建设经过单体应用、SOA应用、逐步走向微服务应用,至于何为单体应用、SOA应用以及微服务应用,本文不做重点介绍,本文主要用于论述微服务与DevOps的关系。

为了避免枯燥的讨论抽象概念关系,接下来我将从一个日常生活场景开始讲起。对于一个正常人来说,每日的生活离不开吃住行,那么吃住行中吃排在首位,对于土生土长的北方人来说,提到吃就必须提到小麦,小麦从种子开始,经过播种、收割、碾压、风干、磨面、做成面包,每个过程阶段都需要不同的投入,播种前需要犁地、施肥、育种,播种后需要除草、施肥、光照、收割,收割后需要碾压、风干、磨面、做成面包,每个阶段都涉及不同的工作。

如果把小麦到馒头比喻成应用系统的开发,这期间有手工工作、自动工作、半自动工作。其实我们应用系统的开发,也是经过了一些列的手工工作、自动工作、半自动化工作。假如不考虑季节因素,日复一日,年复一年,小麦到面包的过程,就是一个持续交付的过程,在交付过程中,逐渐的完善犁地的深度、施肥的成份、碾压的强度、风干的时长等等。这就类似于我们做微服务化实施的过程,逐步的拆分微服务,逐步的实施交付,不断的完善,这个过程中,手工工作、自动工作、半自动化工作,就类似于我们在微服务开发过程中使用的工具,工具有高效低效之分。

在小麦到面包的过程中,为了提高投入产出率,我们不仅优化种子,而且优化过程工具,最典型的莫过于上世纪主要靠人工完成的过程,现在已基本有自动化机器完成,那在自动化机器完成的基础上,如何进一步提升回报率呢?就是我们的DevOps理念,“打破部门鸿沟,实现工具流水线”,DevOps的诞生从狭义上说,就是实现各个阶段工具链的自动化,从广义上讲就是实现跨部门之间高效协作。

虽说小麦到面包的案例比较普通,但是也已基本引出了本文的重点,即“微服务与DevOps的关系”,采用理工类经典的论证模式“如果某企业向微服务转型,且微服务实施已取得成效,那么企业DevOps平台也已基本落地”。听起来比较绝对,但话糙理不糙,具体原因如下:

  • 微服务的实施,必然将原先一个应用拆分成数十个,那么对于每个拆分后的微服务进行编译、打包、部署必将是原来工作量的数倍,如果不采用自动化工具。
  • 微服务的实施,必然会涉及多个微服务之间的协作,那么对微服务功能进行单元测试、回归测试、性能测试将变得更加复杂,如果不采用自动化工具,工作量之大,复杂度之高,难以估量。
  • 微服务的实施,必然会升级多个微服务采用框架各异,那么微服务部署所依赖的基础环境,必将异常复杂繁琐,如果不采用自动化工具。
  • 微服务的实施,必然会涉及多个团队协作开发,那么微服务需求的管理,则项目的管控将异常艰巨,如果不采用先进的项目管理工具。
  • 微服务的实施,必然会频繁的进行应用的更新,那么代码编译、版本控制、代码质量将无法保障,如果不采用成熟的工具。

鉴于以上种种问题,微服务的实施必然要具备需求管理、代码版本管理、质量管理、构建管理、测试管理、部署管理、环境管理等工具链,除此之外,还需要开发部门与运维部门的协作,因此,DevOps是微服务实施的充分必要条件

离开微服务,DevOps是否有意义,就如同农作物的流水线离开了小麦是否有意义一样,农作物的流水线离开小麦,还有玉米、大豆、高粱等,因此,微服务是DevOps实施的充分但不必要条件。

微服务与DevOps关系的更多相关文章

  1. Kubernetes才是微服务和DevOps的桥梁

    一.从企业上云的三大架构看容器平台的三种视角 一切都从企业上云的三大架构开始. 如图所示,企业上的三大架构为IT架构,应用架构和数据架构,在不同的公司,不同的人,不同的角色,关注的重点不同. 对于大部 ...

  2. 基于微服务的DevOps落地指南 交付效率提升40%

    基于微服务的DevOps落地指南 交付效率提升40% 2015-2016年,珍爱线下门店已新增覆盖城市9个,与此同时,CRM系统大小故障却发生了数十起... ... 珍爱网是以“网络征选+人工红娘”模 ...

  3. 通俗地理解面向服务的架构(SOA)以及微服务之间的关系

    SOA是一种软件的应用架构方法,它基于面向对象,但又不是面向对象,整体上是面向服务的架构.SOA由精确的服务定义.松散的构件服务组成,以及业务流程调用等多个方面形成的一整套架构方法. 这话是不是听起来 ...

  4. spring boot 与微服务之间的关系

    Spring Boot 和微服务没关系, Java 微服务治理框架普遍用的是 Spring Cloud. Spring Boot 产生的背景,是开发人员对 Spring 框架越来越复杂的配置吐槽越来越 ...

  5. .NET Core/.NET5/.NET6 开源项目汇总6:框架与架构设计(DDD、云原生/微服务/容器/DevOps/CICD等)项目

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  6. 微服务与devops的文章推荐

    http://www.sohu.com/a/125040520_355140 http://www.csdn.net/article/2015-11-18/2826253 http://www.cnb ...

  7. DevOps架构下如何进行微服务性能测试?

    一. 微服务架构下的性能测试挑战 微服务与DevOps 微服务是实现DevOps的重要架构 微服务3S原则 DevOps核心点 微服务架构下的业务特点 亿级用户的平台 单服务业务随时扩容 服务之间存在 ...

  8. 唱吧DevOps的落地,微服务CI/CD的范本技术解读----最大的难点并不是实际业务代码的编写,而是服务的监控和调试以及容器的编排

    1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ...

  9. 唱吧DevOps的落地,微服务CI/CD的范本技术解读

    1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ...

随机推荐

  1. Exp6 信息搜集与漏洞扫描 20164323段钊阳

    20164323 Exp6 信息搜集与漏洞扫描 回答问题 1.哪些组织负责DNS,IP的管理. 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.DNS和IP地址管理.全球一共 ...

  2. Elasticsearch入门 + 基础概念学习

    原文地址:https://www.cnblogs.com/shoufeng/p/9887327.html 目录 1 Elasticsearch概述 1.1 Elasticsearch是什么 1.2 E ...

  3. Spring Boot快速搭建Web工程

    先想一下,正常我们想要创建一个web服务,首先需要下载tomcat,创建web工程,配置各种web.xml,引入spring的配置,各种配置文件一顿倒腾.....下载有了spring boot,你创建 ...

  4. Sublime Text shift+ctrl妙用(转载)

    1 :按住shift+ctrl然后按←或→可快速选中一行中的某一部分,相当于双击鼠标选中. 当你想在代码末尾加注释的话,这个方法很好用 输入文字->光标移到文字末尾->按住shift+ct ...

  5. 如何利用反射简化Servlet操作

    如何利用反射简化Servlet操作   一.反射的实现 新建类BaseServlet,继承HttpServlet(不需要在web.xml文件中配置) 1.在doPost()方法中处理请求乱码,并调用d ...

  6. 请求数据分析 xpath语法 与lxml库

    前情提要: 上节学过从网上获取请求,获取返回内容,带理 获取内容之后,第二部就是获取请求的数据分析 一:xpath 语法 浏览器一般会自带xpatn 解析 这里大概讲述一下xpath 的基本操作 二: ...

  7. python3模块: uuid

    一. 简介 UUID是128位的全局唯一标识符,通常由32字节的字母串表示.它可以保证时间和空间的唯一性,也称为GUID. 全称为:UUID--Universally Unique IDentifie ...

  8. 一步一步教你使用 LSMW 批量处理数据

    保存退出 输入完后,保存退出

  9. POJ 1287

    #include<iostream> #include<stdio.h> #define MAXN 100 #define inf 1000000000 using names ...

  10. POJ 1102

    #include<iostream>// cheng da cai zi 11.14 using namespace std; int main() { int i; int j; int ...