大数跨境
0
0

SmartOps 应用现代化之路( DevOps 工具链篇)

SmartOps 应用现代化之路( DevOps 工具链篇) 安畅Anchnet
2023-03-27
2



云原生技术的三大支柱:微服务、容器、DevOps,微服务解决了单体架构的局限性,容器解决了虚拟机部署的局限性,然而微服务带来了好处的同时也让部署运维工作更复杂,DevOps 通过工具链连通了微服务与容器,在整个应用现代化的过程中,微服务、容器、DevOps 三者密不可分。


安畅 SmartOps :SmartOps 是一款 SaaS 模式的云管理平台,通过统一视角实现多云资源纳管,权限分配、通过监控、费用分析帮你更合理的管控费用支出,加上强大的审计、工单、运维自动化等功能帮助你更高效的管理云资源。


安畅应用现代化服务:利用云原生技术为企业应用现代化改造提供工具平台建设、落地实施&咨询服务,覆盖基础设施现代化、架构现代化、开发运维现代化、数据现代化、安全现代化五个维度,推动企业应用现代化改造,加速企业数字化转型。


DevOps 工具链简介


工欲善其事、必先利其器,应用现代化的过程往往依赖一系列高度集成的 DevOps 工具链, DevOps 工具链贯穿了应用的全生命周期,覆盖从需求、设计、开发、测试、部署、运维各个环节。根据不同阶段对应的工具链可以分为:项目管理工具、源代码管理工具、测试管理工具、持续集成工具、持续部署工具等类型。


DevOps 工具集


在应用现代化过程中, DevOps 工具链最直接的一个体现就是自动化,通过不同阶段的工具集成,可以让开发、测试、部署的动作完全自动化,如:开发人员提交代码,触发持续集成、代码扫描、自动化测试、生成制品、部署等操作,过程无需人工干预,大大减少了日常开发过程中的重复劳动,解决了微服务数量增多带来的复杂度问题。


在当前大背景下,各大企业都在强调效能,研发效能指的是更高效、更高质量、更可靠、可持续的交付业务价值,如何提升效能成为了重中之重,从工具链出发很多时候是一个很好的切入点,合适的工具带来的效能提升是能在短期内快速体现。《软件研发效能提升实践》一书中提出了“研发效能提升的双流模型”, 其中不管是价值流还是工程流,其底层少不了工具平台的支撑,“一体化”的工具平台为研发效能的提升打下了坚实的基础,同时也能加快研发效能提升的进程。


研发效能提升的双流模型《软件研发效能提升实践》


SmartOps DevOps 工具链演进


DevOps 1.0 阶段工具链


使用 Gitlab 进行代码托管,CI/CD 直接使用 Gitlab CI来做,在部署阶段利用 kubectl 镜像进行容器编排操作。


SmartOps DevOps 1.0 工具链


  • GitLab:主要利用 Gitlab 进行 CI/CD 管控和容器部署;

  • CICD:各业务代码仓库保护 .gitlab.yml,利用 Gitlab CI 进行 CI 和 CD 过程;

  • 镜像管理:构建出来的镜像使用镜像仓库 Harbor 进行管理;

  • 容器编排:在 CD 过程中,利用 kubectl set image 进行容器编排部署,自建Kubernetes集群进行业务容器编排管理;


DevOps 2.0 阶段工具链: DevSecOps


在原始 CI/CD 流程中缺乏安全方面全场景检测,在代码、镜像、环境配置等场景均存在各类安全风险,因此必须实行安全左移。


SmartOps DevOps 2.0 工具链


在这一阶段,重点针对 CI/CD 中的安全进行了增强,可以分为五个阶段:


  • 第一阶段:威胁建模(场景分析)梳理并绘制软件生命周期可能引发安全问题的场景;梳理平台架构存在安全风险的部件以及敏感数据的流向,帮助全员建立安全模型并提升团队安全意识。


  • 第二阶段:通过安全扫描( DevOps 集成安全)评估代码安全风险,确保不存在安全漏洞,此处包括手动和自动代码审查,在此步骤中,使用了 Lint 和 Scan 等AppSec 工具。由于处于软件开发生命周期的早期,此阶段允许工程师解决大多数安全漏洞和缺陷。


  • 第三阶段:针对工具检测出来的安全风险问题以可视化的方式呈现并进行周期性通知,让全员知道安全问题。


  • 第四阶段:进入补救修复阶段,通过代码静态扫描工具(SAST)可以针对发现的漏洞、缺陷提出修复建议,这样的操作是为了在出现安全问题时更容易处理它们。


  • 第五阶段:进入监控阶段,跟踪监控发现的漏洞,努力减轻或消除他们,并对应用程序进行安全评估。通过跟踪和管理风险,在软件生命周期中作出决策对安全风险进行持续性安全实施。


DevOps 3.0 阶段工具链: SecDevOps + GitOps


SmartOps DevOps 3.0 工具链


  • 开发阶段:从安全意识培训、安全编码、代码静态扫描到最后进行提交代码 Code Review,将安全左移到研发全流程中(安全性已成为软件生命周期不可分割的一部分,所以进一步向左转移安全性,SecDevOps 而非 DevSecOps);


  • CI/CD:通过 Gitlab+Drone CI+Argo CD 进行持续集成持续部署,其中代码单元测试可以利用代码及配置检测工具进行代码扫描,实现合规检测;


  • 制品管理:利用镜像安全工具对制品镜像进行分层安全分析及漏洞安全扫描,确保镜像layer安全可控;


  • 容器管理:利用 kube-bench/kubeEye/

    kube-eventer 等对容器集群、业务容器进行合规检测与异常事件告警;


  • 业务管理:进行持续性 MSS 运维,利用 Nessus/Acunetix/AppScan 等业务系统进行安全漏洞扫描以及持续性安全运维。


Drone CI + Argo CD WorkFlow


这一阶段中着重提升了 CI 效率和 CD 的安全性,利用基于 Kubernetes 的声明式 Gitops 持续部署工具 Drone CI + Argo CD,可以更便捷地进行应用定义、环境配置和变量管理。代码及配置资源声明清单也都存储在代码仓库受版本管理,使得应用发布及生命周期管理实现自动化且具备可审计性。


常用 DevOps 工具平台方案


常用的 DevOps 工具链可以分为三大类:


1.开源组件集成,如: Jenkins、Git、禅道、Harbor、Nexus......


2. 一体化商业平台,如:腾讯云CODING、阿里云云效、AWS DevOps 、Azure DevOps......


3. 商业+开源集成,如:某商业平台 + Harbor + Testlink.......


落地过程中选择的 DevOps 工具链各不相同,因业务场景、目标、技术栈、云使用情况等会有不同的选择,工具本身没有好坏之分,只有是否合适,合适的工具能大大的提升团队研发效能,不合适的工具也会拖慢团队效能,所以在 DevOps 工具链的选择过程中也需要综合多方面因素慎重考虑。


您使用的 DevOps 工具链有哪些呢?是否有不满足的地方呢?是否也正面临工具平台选择困难呢?赶快填写问卷来告诉我们吧,竭诚为您服务!





【声明】内容源于网络
0
0
安畅Anchnet
安畅Anchnet是中国市场领先的云与AI托管服务商(Cloud&AI MSP),致力于帮助客户利用云与AI实现数字化转型创新。 目前正服务于零售、制造、大健康等各行业的3000多家企业级客户。
内容 355
粉丝 0
安畅Anchnet 安畅Anchnet是中国市场领先的云与AI托管服务商(Cloud&AI MSP),致力于帮助客户利用云与AI实现数字化转型创新。 目前正服务于零售、制造、大健康等各行业的3000多家企业级客户。
总阅读107
粉丝0
内容355