searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

云原生下的DevOps建设思考

2023-03-29 02:06:10
27
0

1、云原生简介

云原生,英文Cloud Native。字面直译为原生应用上云。

谈起云原生的发展历程,不得不提起:Pivotal公司和CNCF基金会。

Pivotal公司,一家低调的以技术立命、坚持开源的硬核公司。其最早于2013年提出云原生概念,并提出云原生4要点:容器化、微服务、持续交付、DevOps,为业内广泛接收。

CNCF基金会,云原生计算基金会,2015年成立,目的是为了引导和规范云原生技术的发展路线。其于2018年提出了云原生1.0版本定义。

其中,容器、服务网格、微服务、不可变基础设施、声明式API是云原生的代表技术。

云原生发展历程简介

从个人理解来看,更趋向于CNCF对云原生的定义。Pivotal公司对云原生的定义有点局限性,可能其定义时更偏向于公司的Paas产品。

CNCF除了对云原生提出1.0版本定义外,还提出了企业发展云原生可采用的技术工具Landspace,以及实施路径图Trail Map。
1、云原生推荐的技术工具:
鉴于篇幅,感兴趣的可以通过如上链接跳转查阅。图中对应领域采用的业内主流产品或工具都有较清晰说明。
2、实施路径图TrailMap:
企业如何实现云原生应用,CNCF给出了较详细的参考路线图,如下
可以看出,容器化、CI/CD、应用定义与编排(Helm、K8s)、监控/分析,是DevOps建设的范畴。也就是说,云原生应用的实施需先推进DevOps平台的能力。
 

2、DevOps简介

参考百度百科,对DevOps的定义为:

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

这个定义是标准的,笼统的,可能读完后还是对DevOps没有一个直观的影响,下面通过一张图,来进一步阐述DevOps的内容。

 

首先,计划阶段:项目负责人发起功能开发计划;代码阶段:开发人员开始按照计划进行功能开发;构建阶段:功能开发完成后,需要构建应用打包;测试阶段:对应应用包交给测试人员进行测试;

发布阶段:测试人员将应用包发布到对应测试环境;部署阶段:测试验证没问题后,开始线上环境的应用更新。运营阶段:根据应用状态,作出一些运维变更,比如应用突然网络异常,需紧急恢复等。

最后是监控阶段,发布后的应用须有日志搜索、链路查询、告警功能等来保障应用的运行态。

3、DevOps产品能力

从如上DevOps的定义,我们可以看出DevOps的能力贯穿了软件开发~测试~上线~监控的全流程。

通过自动化串联研发过程中的各个活动,能打通企业内部各平台的能力数据,如测试平台、安全扫描平台等,最终高效完成应用的研发交付。

这里,将DevOps能力按3个维度进行拆解来规划建设,如下图:

在Dev研发域,有需求管理、项目协作、版本管理、应用构建、制品管理、测试管理;每个大项下有对应的目标能力。

在Ops运维域,有持续部署、监控告警、自助运维;持续部署项严格来说,也可以部分属于Dev研发域。

在Metrics效能度量域,有指标管理,工程师画像,效能分析与预警等。通过对应维度的指标度量,可以为项目研发过程中找到过程瓶颈,进而实现降本增效的目的。

如上,是DevOps产品建设能力矩阵图,具体的能力建设程度可以参考企业内部场景需求度。也可以参考中国信通院发布的《研发运营一体化(DevOps)能力成熟度模型》来建设。

4、DevOps平台应用架构示例

企业从0到1建设DevOps平台能力,按最小版本迭代原则一般遵循的路线为:

1、实现最基本的构建应用、发布应用能力,流水线引擎一般为jenkins;即为1.0阶段

2、实现流水线能力,具备高可用性和扩展性;即为2.0阶段

3、扩展流水线模板能力,增加扫描、测试、卡点等能力;即为3.0阶段。

4、增加度量统计,同时各能力指标对应信通院评级模型来升级建设;即为4.0阶段。

这里,以3.0阶段,分享一个具备一定可用性的DevOps平台应用架构:

系统说明:

接入层:有web控制台和OpenApi流量接入。

服务层:由流水线引擎模块、CI模块、CD模块组成。CI模块主要由一层服务,封装jenkinsApi来实现,底层由Jenkins集群执行,同时jenkins插件支持。

CD模块应用发布,如果是容器,以k8s-API来触发;如果是虚拟机或物理机,则以salt-stack或ansible或自建命令通道来触发。

代码动态扫描,主流有jacoco等,可进行二次开发jacoco来扩展覆盖率扫描功能。

存储层:由对象存储、noSql中间件等组成。

5、后记

云原生技术的盛行推进了DevOps技术的蓬勃发展,同时也给DevOps过程提出了越来越高的安全、稳定、高效要求。

在如何构造高性能、高可用、高安全DevOps平台能力方面,我们还有很多路要继续探索。

 

 

0条评论
作者已关闭评论
路西
5文章数
0粉丝数
路西
5 文章 | 0 粉丝
原创

云原生下的DevOps建设思考

2023-03-29 02:06:10
27
0

1、云原生简介

云原生,英文Cloud Native。字面直译为原生应用上云。

谈起云原生的发展历程,不得不提起:Pivotal公司和CNCF基金会。

Pivotal公司,一家低调的以技术立命、坚持开源的硬核公司。其最早于2013年提出云原生概念,并提出云原生4要点:容器化、微服务、持续交付、DevOps,为业内广泛接收。

CNCF基金会,云原生计算基金会,2015年成立,目的是为了引导和规范云原生技术的发展路线。其于2018年提出了云原生1.0版本定义。

其中,容器、服务网格、微服务、不可变基础设施、声明式API是云原生的代表技术。

云原生发展历程简介

从个人理解来看,更趋向于CNCF对云原生的定义。Pivotal公司对云原生的定义有点局限性,可能其定义时更偏向于公司的Paas产品。

CNCF除了对云原生提出1.0版本定义外,还提出了企业发展云原生可采用的技术工具Landspace,以及实施路径图Trail Map。
1、云原生推荐的技术工具:
鉴于篇幅,感兴趣的可以通过如上链接跳转查阅。图中对应领域采用的业内主流产品或工具都有较清晰说明。
2、实施路径图TrailMap:
企业如何实现云原生应用,CNCF给出了较详细的参考路线图,如下
可以看出,容器化、CI/CD、应用定义与编排(Helm、K8s)、监控/分析,是DevOps建设的范畴。也就是说,云原生应用的实施需先推进DevOps平台的能力。
 

2、DevOps简介

参考百度百科,对DevOps的定义为:

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

这个定义是标准的,笼统的,可能读完后还是对DevOps没有一个直观的影响,下面通过一张图,来进一步阐述DevOps的内容。

 

首先,计划阶段:项目负责人发起功能开发计划;代码阶段:开发人员开始按照计划进行功能开发;构建阶段:功能开发完成后,需要构建应用打包;测试阶段:对应应用包交给测试人员进行测试;

发布阶段:测试人员将应用包发布到对应测试环境;部署阶段:测试验证没问题后,开始线上环境的应用更新。运营阶段:根据应用状态,作出一些运维变更,比如应用突然网络异常,需紧急恢复等。

最后是监控阶段,发布后的应用须有日志搜索、链路查询、告警功能等来保障应用的运行态。

3、DevOps产品能力

从如上DevOps的定义,我们可以看出DevOps的能力贯穿了软件开发~测试~上线~监控的全流程。

通过自动化串联研发过程中的各个活动,能打通企业内部各平台的能力数据,如测试平台、安全扫描平台等,最终高效完成应用的研发交付。

这里,将DevOps能力按3个维度进行拆解来规划建设,如下图:

在Dev研发域,有需求管理、项目协作、版本管理、应用构建、制品管理、测试管理;每个大项下有对应的目标能力。

在Ops运维域,有持续部署、监控告警、自助运维;持续部署项严格来说,也可以部分属于Dev研发域。

在Metrics效能度量域,有指标管理,工程师画像,效能分析与预警等。通过对应维度的指标度量,可以为项目研发过程中找到过程瓶颈,进而实现降本增效的目的。

如上,是DevOps产品建设能力矩阵图,具体的能力建设程度可以参考企业内部场景需求度。也可以参考中国信通院发布的《研发运营一体化(DevOps)能力成熟度模型》来建设。

4、DevOps平台应用架构示例

企业从0到1建设DevOps平台能力,按最小版本迭代原则一般遵循的路线为:

1、实现最基本的构建应用、发布应用能力,流水线引擎一般为jenkins;即为1.0阶段

2、实现流水线能力,具备高可用性和扩展性;即为2.0阶段

3、扩展流水线模板能力,增加扫描、测试、卡点等能力;即为3.0阶段。

4、增加度量统计,同时各能力指标对应信通院评级模型来升级建设;即为4.0阶段。

这里,以3.0阶段,分享一个具备一定可用性的DevOps平台应用架构:

系统说明:

接入层:有web控制台和OpenApi流量接入。

服务层:由流水线引擎模块、CI模块、CD模块组成。CI模块主要由一层服务,封装jenkinsApi来实现,底层由Jenkins集群执行,同时jenkins插件支持。

CD模块应用发布,如果是容器,以k8s-API来触发;如果是虚拟机或物理机,则以salt-stack或ansible或自建命令通道来触发。

代码动态扫描,主流有jacoco等,可进行二次开发jacoco来扩展覆盖率扫描功能。

存储层:由对象存储、noSql中间件等组成。

5、后记

云原生技术的盛行推进了DevOps技术的蓬勃发展,同时也给DevOps过程提出了越来越高的安全、稳定、高效要求。

在如何构造高性能、高可用、高安全DevOps平台能力方面,我们还有很多路要继续探索。

 

 

文章来自个人专栏
DevOps建设
5 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
1
0