天马行空-DevOps平台建设概述

概述

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

本篇主要概述的是Dev环节的支撑平台。如何一套Dev平台来同时支持传统企业交付模式以及互联网业务交付模式。关于支撑Ops阶段的平台涉及内容庞大复杂,后续从数据中心Ops的角度展开论述。

关于本人对Dev与Ops环节的支撑平台的划分,大致为如下:

场景分析

互联网业务的特点是自开发,自运维,标准的devops模式,从研发活动来看,涉及五个阶段,code,build,test,deploy,monitor。每个阶段的职责不同。

传统IT业务的特点是研发团队负责开发交付,IT技术支持团队负责实施(部署,升级),客户负责运维。且传统IT企业交付的往往是一整套完整的解决方案。

相比较互联网业务模式,研发活动流程变为了如下,增加了assemble(装配过程)。

也就是如何将开发团队的输出装配为面向客户交付的解决方案包。

两种场景下的共同诉求都是devops理念中构建,测试,发布更加快捷,频繁,可靠。

Code阶段

核心目标是如何快速,低门槛的开发,同时对于QA来说,如何可进行统计度量(代码量,产出率等)。而快速,低门槛则尽可能让开发只聚焦与核心业务逻辑的实现,更多的工程相关的属性依托于可视化,自动化的构筑生成。因此需要契约化的工程结构,以支撑后续的运行维护管理。微服务架构模式下,微服务是最小的工程单元,因此也即是定义一种符合微服务的契约化的工程属性。微服务的特征要求具备独立可编译部署变更,对外需要清晰的API等。

因此可以定义譬如下面的开发工程的目录结构

一般一个微服务的开发顺序可参照如下:

一般在设计阶段就需要输出API定义,传统的往往是word或者excel等定义,用于评审,然后开发阶段需要编写代码去定义,此部分则可以完全简化,基于YAML/JSON定义API文件,并基于Swagger直接可视化展示API用于评审,开发阶段同样基于此文件直接生成API代码和到业务逻辑的调用。最终开发者直接编写API的实现单元即可。

依托于契约化松耦合的目录结构,需要devops平台具备如下的能力:

1:微服务的初始化管理服务。微服务自身就是个后续需要被维护管理的对象,故而需要一个微服务管理的能力。包含:微服务定义,开发工程生成,以及关键指标的搜集(代码量,开发语言,责任人,提交次数等)

2:基于主流开发工具(Eclipse,IDEA)可一键式生成API代码。

微服务初始化管理服务(后续简称codeinit)结构可大致表述为如下

至此基于微服务管理服务的code过程变为:

Build阶段

核心目标是检查原始代码的质量并编译生成可执行的包。

  • 下载代码:是指从代码仓库下载到编译服务器
  • 门禁检查:包含契约化目录规范的检查,圈复杂度检查,findbugs检查,代码样式检查等。
  • 编译:则是将原始代码生成二进制,使用语言自身的编译器完成,打包则是生成预期的最终可部署的包,其包含编译产生的二进制文件以及程序的配置文件等。
  • 推送:是指生成的包推送到包仓库(FTP服务器,镜像库等)。
  • 统计:贯穿在整个Build阶段,是指Build阶段的各种度量指标,譬如编译次数,编译成功率等。

Assemble阶段

Assemble核心目标是微服务包到服务包,服务包到解决方案大包,或者微服务包到解决方案大包的自动化装配过程。

需要一种契约化的包的装配规则的定义,包含目标包类型(解决方案,服务),包含的服务或者微服务。最终客户拿到的是一个基于部署系统可部署的完整的大包,不用自己手动下载组装配套的多个包。

最终效果:研发团队视角提供微服务,形成一种原子能力的微服务池子,不同解决方案定义不同的微服务打包策略,基于devops平台自动装配不同的解决方案包。

Deploy阶段

Deploy阶段隶属于Ops范围,涉及上下文很多,后续详细展开论述,此部分只做概要介绍。

部署系统的核心目标是可视化/自动化的将解决方案包/服务包/微服务包部署到不同的环境的节点上。这里面涉及几个名词:包,部署动作,环境,节点,需要展开论述。

包指的是开发活动交付的软件的载体。可以是zip/镜像等。

环境:指的是部署活动中涉及的Alpha(服务内自验证环境),Beta(服务间联调环境),Gamma(类生产环境),Gamma(生产环境)。

节点:这里面定义的是在可直接部署包的介质,需要强调的是可直接部署性。一般性硬件和软件是分离的两拨人,一个数据中心内允许两次驻场,以此是设备采购到位后,硬件调测人员进驻进行硬件安装配置,其次是软件调测人员驻场,进行操作系统安装及其之后的过程,而对于部署系统来说,此处部署的是软件包,并不包括OS安装配置,故而也就引出了另一个系统:独立的装机服务,此即为部署系统的其中一个上下文,但并非属于部署系统。但是实际往往也可能没有独立的装机服务,譬如节点如果全是虚拟机,而一般企业往往虚拟机的生命周期管理存在与独立的云管理平台中(物理机的初始化,OS安装,虚拟机发放)。此时云管理平台即可承载此处所需的装机能力。

Monitor阶段

DevOps模式下的Monitor隶属于Ops范围,涉及内容和上下文很多,其内容包含监控(硬件,OS,业务的性能,调用链,拨测),告警,故障诊断等,上下文涉及变更,事件,报表,通道等后续详细展开论述。

此处需要附加说明的是即使从Dev阶段也是需要Monitor能力的,也就是监控统计Code,Build,Assemble阶段的各个指标

Dev平台技术调研分析

Kubernates/Docker,

Jekins

Github

原文地址:https://www.cnblogs.com/hrbeu05/p/9676806.html

时间: 2024-08-30 00:13:19

天马行空-DevOps平台建设概述的相关文章

关于“工业互联网平台”建设,俺有本要奏

注:关于“工业互联网”建设请参见:<信息物理系统白皮书(2017)>.<制造业“双创”平台发展白皮书>和<中国工业大数据技术与应用白皮书>. 自软件博览会后,国家副总理马凯和工信部的几位主要领导相继来我司考察.公司领导也非常重视在工业互联网方面的发展,以及准备投入人力.财力大干一场.作为工业人的其中一员,我表示大力支持,以及贡献自己的力量. 从公司工业版块方面来讲,在某些领域和技术方面确实有较强优势.参加过几次内部的交流会,对于做这件事又感觉有些忧心忡忡.大家谈到工业淘

某大型国企技术平台建设

一整月都在编写某国企的技术平台建设方案. 该企业是一个某500强大型国有企业,他们希望能建设统一的一个软件平台(技术平台+业务平台):各专业部门基于该平台开发相应的专业级插件,并发布到统一的插件平台中,并最终都可集成到一个统一的客户端软件平台中,以达到业务组件能在全公司范围内进行重用.另外,数据方面,会在平台建设的第二.三阶段,为他们建立独立的私有云数据服务. 由于保密性的原因,方案的许多内容都不便说明.以下是整个方案中,技术平台部分的一些重要内容的摘要. 架构分层 产品外围开发环境支持:VS-

一个大数据平台省了20个IT人力——敦奴数据平台建设案例分享

认识敦奴 敦奴集团创立于1987年,主营服装.酒店.地产,总部位于中国皮都-海宁.浙江敦奴联合实业股份有限公司(以下简称"敦奴")是一家集开发.设计.生产.销售于一体的大型专业服装企业.敦奴拥有上海.海宁两个研发运营中心,旗下有DUNNU,DDU,DIDIER PARAKIAN三大品牌,销售网络遍及全国各地,在全国范围500家连锁店.敦奴拥有80000多平方米的服装生产基地,现有员工2000多人.2016年,敦奴服装业务的营业额为十几个亿. 大数据平台曲折路 从2013年敦奴开始筹建大

七牛云大数据平台建设实践

2017 年 1 月 14.15日,为期 2 天的 ECUG Con 十周年大会在深圳圆满结束,会上七牛云 CEO 许式伟做了题为<七牛大数据平台建设实践>的演讲,首次披露七牛云在大数据方向的产品思路,以下是对他本次的演讲实录. 许式伟 七牛云创始人.CEO 从连接到智能 我们都说现在是移动互联网时代,移动互联网时代我们随时随地能够上网,面向连接的革命诞生了很多有意思的应用,包括滴滴打车.外卖,这些都是在连接的时效性基础上做的应用.在有关于连接的革命以后,下一个阶段就是面向智能的革命.滴滴打车

平台建设流程

第一次做整体规划,自己的流程记录,不太完整,有指导意见的欢迎指教! 区域现状调研(新开发的地区需要调研开发进度.开发目标.开发现状.需求.服务) 区域发展调研(区域的发展方向.发展目标.发展需求) 平台性质(平台规模.平台属性(个人.企业.政府)) 平台发展规划(区域性.全国性.访问量) 平台重点(主营业务.主营方向) 平台使用对象调研(个人.企业.政府) 平台策划方案编写(平台建设目的.平台建设意义.平台收益.平台特点.建设平台需要的支持.现有平台状态) 平台周期(开发周期.维护与更新.运营)

省级国土空间基础信息平台建设要求

1.目标: (1)建立健全全省国土空间数据资源体系. (2)建立省级国土空间基础信息云管理与服务平台. (3)建立并完善省国土空间基础信息应用服务的有效机制. 2.任务 (1)开展省级平台建设方案编制,将方案报部并通过部组织的专家审查. (2)完成省级数据资源梳理分析.建立省级国土空间数据资源目录,开展数据资源建设与完善,形成满足省级国土空间规划.政务审批.监测监管和管理决策所需的国土空间数据资源体系. (3)开发省级云管理与服务平台,提供通用数据服务能力和专业应用服务能力. (4)建立服务器.

旅游研究院大数据挖掘与分析科研平台建设方案

一. 背景 一.1 数据挖掘和大数据分析行业背景和发展趋势 移动互联网.电子商务以及社交媒体的快速发展使得企业需要面临的数据量成指数增长.根据 IDC <数字宇宙>(Digital Universe)研究报告显示,2020 年全球新建和复制的信息量已经超过 40ZB,是2015年的12倍;而中国的数据量则会在2020年超过8ZB,比2015年增长22倍.数据量的飞速增长带来了大数据技术和服务市场的繁荣发展.IDC亚太区(不含日本)最新关于大数据和分析(BDA)领域的市场研究表明,大数据技术和服

武警部队智慧磐石工程解决方案大数据平台建设开发

各地区大力支持智慧类项目建设,利用互联网.计算机.云计算.大数据等多种技术可以解决信息化水平低下,缺乏集中控制,维护成本高等痛点.武警部队智慧磐石系统就是为解决各种痛点而诞生的. 智慧磐石工程建设目标是:不搞大拆大建.推到重来,而是根据"利旧.整合.升级"的思路,在现有基础上,通过升级改造.功能拓展.融合对接.优化调整,实现信息功能最大化.执勤部署体系化.警戒控制全域化.应对手段前置化,以增强安全系数,更好地确保目标安全,更好地履行使命任务. 引入大数据平台建设,将武警部队的各类型数据

DevOps平台

DevOps定义(来自维基百科): DevOps(Development和Operations的组合词)是一种重视"软件开发人员(Dev)"和"IT运维技术人员(Ops)"之间沟通合作的文化.运动或惯例.透过自动化"软件交付"和"架构变更"的流程,来使得构建.测试.发布软件能够更加地快捷.频繁和可靠. 公司技术部目前几百人左右吧,但是整个技术栈还是比较落后的,尤其是DevOps.容器这一块,需要将全线打通,当时进来也主要是负责