前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins打造满足网络安全领域发展的CI/CD

Jenkins打造满足网络安全领域发展的CI/CD

作者头像
DevOps云学堂
发布2023-09-25 14:16:17
1800
发布2023-09-25 14:16:17
举报
文章被收录于专栏:DevOps持续集成DevOps持续集成

对于一家必须领先于黑客、欺诈者和网络犯罪趋势的全球网络安全公司来说,构建、测试和发布软件的繁琐遗留流程是一个巨大的挑战。

背景

这家国际网络安全公司为全球的企业、政府和小型企业提供服务。开发团队总是有太多的悬念,多个项目同时进行。其中包括虚拟化工具,如基于内核的虚拟机 ( KVM ) IKVM 和 Oracle 的开源 VirtualBox。项目之间的相互依存关系解决的比较好。然而,几乎所有的事情都是通过 cron 作业管理的,cron 作业是类 Unix 计算机操作系统中基于时间的调度程序,可以将作业编程为在固定时间、日期或间隔定期运行。

目标:将所有内容转移到 Jenkins,而不是依赖 cron 作业和脚本。


解决方案和结果

主要目标是拥有一个自动化的 CI/CD工具链,并通过使用 Jenkins 的几个步骤,我们得到了我们想要的。每个项目都会用 Jenkinsfile 替换 cron 作业脚本和 makefile,我们使用 Jenkins 插件 API 或基于 http 的 API,而不必调用 shell 命令。

然后我们遇到了另一个挑战:将所有代码移动到 GitLab

为此,我们的开发人员将代码提交到 GitLab,这会触发 Jenkins 调用 Jenkinsfile。我们在容器上构建代码,后端使用 Python/C++,前端使用 node.js,允许我们推送到私有开源容器镜像注册中心 Harbor。现在我们可以拉取新镜像并部署到测试平台。完成后,我们可以启动自动化测试,如果测试通过,PM 可以发布最新版本。

我们必须遵循一些基本步骤,包括:

  • 如何说服开发人员使用 Jenkins:
  • 我们为每个项目创建了一个 Jenkinsfile
  • 我们删除了 Makefile 和 cron 作业脚本
  • 我们让开发者别无选择
  • 如何通知用户构建/测试结果:
  • 我们使用 Slack 和电子邮件
  • 如何与 GitLab 集成:
  • 我们使用了 Jenkins-GitLab-plugin
  • 如何与容器集成:
  • 我们使用了Jenkins-Docker-plugin
  • 如何监控Jenkins:
  • 我们依赖 Grafana 中的 Prometheus

现在,每个人都有一个 Jenkins 帐户,一切都可以在 Jenkins UI 上可见。这就像拥有一个 DevSecOps 中心。我们取得了优异的成绩,包括:

  • 一切都是自动触发的
  • 每个开发人员/QA 都知道他们的代码到底发生了什么,而且是实时的
  • 与 GitLab 集成使代码管理更容易
  • 与私有注册表的集成使镜像管理更容易
  • Jenkins 状态始终可见,以防服务器或服务出现故障
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-09-24 21:20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps云学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档