阿里云项目敏捷实践之DevOps

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 敏捷开发少不了一个方便的持续交付环境。今天我使用阿里云简单搭了一套开发环境,这里简单记录一下搭建过程。

12.jpg


Jenkins搭建

首先得有个Jenkins服务,在阿里云的容器里面搭jenkins很简单,基本上按照文档搞就行了,https://www.alibabacloud.com/help/zh/doc-detail/42988.htm


流程:

1.申请ecs主机

2.创建swarm集群,绑定ECS主机作为节点

3.在集群中创建应用,选择Jenkins模板

4.访问Jenkins master,初始化配置,用户,安装插件

5.使用内网ip绑定Jenkins slave


创建CI和CD任务

接下来我们就可以配置jenkins上的项目了,大体流程可以参见上文阿里云的文档。只是文档是以gitbub代理为例讲解,而我们的代码托管在coding上,配置过程稍有不同。


要让jenkins拉取coding的源码,需要在jenkins上部署相关证书。使用开发者所用证书,明显是一种不安全的做法,所幸coding跟gitlab一样可以设置专门的只读部署证书。


集成日志服务

一个舒适的开发环境怎么能离开得了好的日志服务,阿里云集成日志服务同样很简单。

配置过程仍然可以参见阿里云文档https://www.alibabacloud.com/help/zh/doc-detail/26036.htm,这里同样只列出我踩过的坑。

为了对日志分析友好,我们选择了json格式的日志formatter,但是阿里云的容器日志默认会自动添加时间戳,破坏了日志的格式,我们修改一下默认配置


5266821-f48b6827d964b07b.png

我们服务端采用了golang,为了使docker镜像最小化,采用了scratch作为base,发现了一个问题,由于没有时区设置,日志打印时间总是跟我们的当地时间相差了8个小时,解决方法是在镜像中加入相关的配置文件。


获取应用版本

测试环境上,我们经常有这样的困扰,现在环境中部署的代码到底是对应哪个版本的呢。

解决方案就是在build docker镜像的时候在jenkins脚本中把commit-id作为ARG传入,设置到镜像的ENV中,通过一个特殊的后门接口返回。


jenkins脚本中写入,docker build --build-arg VERSION_ARG=$GIT_COMMIT -t ...

Dockerfile中写入

ARG VERSION_ARG=not_from_jenkins

ENV VERSION $VERSION_ARG

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
17天前
|
运维 Devops jenkins
DevOps实践:自动化部署与持续集成的实现之旅
本文旨在通过一个实际案例,向读者展示如何将DevOps理念融入日常工作中,实现自动化部署和持续集成。我们将从DevOps的基础概念出发,逐步深入到工具的选择、环境的搭建,以及流程的优化,最终实现一个简单而高效的自动化部署流程。文章不仅提供代码示例,更注重于实践中的思考和问题解决,帮助团队提高软件开发和运维的效率。
|
19天前
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率
DevOps实践中,如何平衡开发速度和安全审核的效率
|
10天前
|
运维 监控 Devops
DevOps实践:自动化部署与持续集成的融合之旅
【10月更文挑战第7天】在软件开发领域,DevOps已成为一种文化和实践,它倡导开发(Dev)与运维(Ops)之间的协作与整合。本文将引导读者了解如何通过自动化部署和持续集成(CI)的实践来提升软件交付的速度和质量。我们将探讨一些实用的工具和技术,以及它们是如何帮助团队高效地管理代码变更、测试和部署的。文章将不包含代码示例,但会详细解释概念和流程,确保内容的通俗易懂和条理性。
114 62
|
1天前
|
运维 Prometheus 监控
从文化到实践:DevOps的基本概念与核心实践详解
从文化到实践:DevOps的基本概念与核心实践详解
12 5
|
10天前
|
运维 监控 Devops
DevOps实践:持续集成与部署的自动化之旅
【10月更文挑战第7天】在软件开发领域,DevOps已成为提升效率、加速交付和确保质量的关键策略。本文将深入探讨如何通过实施持续集成(CI)和持续部署(CD)来自动化开发流程,从而优化运维工作。我们将从基础概念入手,逐步过渡到实际操作,包括工具选择、流程设计以及监控和反馈机制的建立。最终,我们不仅会展示如何实现这一自动化流程,还会讨论如何克服常见的挑战,以确保成功实施。
50 9
|
20天前
|
运维 Devops jenkins
DevOps实践:自动化部署与持续集成的实现
【9月更文挑战第36天】本文通过深入浅出的方式,向读者展示了在现代软件开发中,DevOps如何通过自动化部署和持续集成提高开发效率和软件质量。文章不仅介绍了相关概念,还提供了实用的代码示例,帮助读者理解如何在实际工作中应用这些技术。
|
23天前
|
Devops jenkins 测试技术
DevOps实践:持续集成与持续部署(CI/CD)的实现之路
【9月更文挑战第33天】在软件开发的海洋中,DevOps是一艘能够加速航行、提升航程质量的巨轮。本文将作为你的航海图,指引你理解并实现DevOps文化中的核心环节——持续集成(CI)与持续部署(CD)。我们将从基础概念出发,逐步深入到实际操作,带你领略代码到部署的全过程。准备好扬帆起航,让我们共同探索如何通过自动化工具和流程优化,让软件交付变得既高效又可靠。
|
19天前
|
运维 安全 Devops
DevOps实践中的安全审核和合规性
DevOps实践中的安全审核和合规性
|
26天前
|
监控 Devops 测试技术
DevOps实践:持续集成与部署的自动化之路
【9月更文挑战第30天】在软件工程的世界中,DevOps已成为提升开发效率、确保软件质量和加快交付速度的关键策略。本文将深入探讨如何通过自动化工具和流程实现持续集成(CI)与持续部署(CD),从而优化软件开发周期。我们将从基础概念出发,逐步深入到实际操作,最终展示如何构建一个高效的自动化流水线,以支持快速迭代和高质量发布。
50 7
|
23天前
|
运维 Devops 测试技术
DevOps实践之路:从持续集成到自动化部署
【9月更文挑战第33天】在软件开发的海洋中,DevOps如同一艘航船,承载着敏捷开发与运维之间的桥梁。本文将带你领略DevOps的魅力,从持续集成的理念出发,穿越自动化测试的浪潮,直至自动化部署的港湾。我们将通过实际案例,探索如何构建一个高效、可靠的DevOps流程,让软件交付不再是梦魇,而是流畅的艺术。