• DevOps 笔记


    01 总论

    "DevOps"是一个术语,它是“Development(开发)”和“Operations(运维)”两个单词的组合。通过DevOps,组织力求快速、高效地开发高质量软件,并在整个构建与部署过程中实现自动化、持续监控和快速反馈。

    以下是DevOps主要特点和组成部分的简要概述,以及具体例子:

    1. 持续集成(Continuous Integration):开发人员经常将代码集成到共享的仓库中(例如Git),每次集成都可以通过自动构建和自动测试来验证,从而早期发现问题。例如,一家公司的开发人员可能每天要提交代码多次到Git,每次提交都触发了自动测试,确保新代码与现有代码的兼容性。

    2. 持续交付/持续部署(Continuous Delivery/Deployment):这确保了软件可以随时随地为发布做好准备(持续交付),甚至是自动发布到生产环境中(持续部署),使得整个软件发布过程更快更高效。例如,开发团队使用Jenkins、GitLab CI/CD或GitHub Actions等工具自动部署每个已通过测试和审核的构建到生产环境。

    3. 微服务架构:通过将应用分解为小的、独立的服务单元,可以独立部署和扩展,每个服务单元只做一件事,做到极致。这提高了系统的弹性和可维护性。例如,一家电商平台可能将用户管理、商品目录、订单处理等功能分别构建在不同的微服务中,每个服务可独立更新和部署,而不影响其他系统。

    4. 监控和日志记录:DevOps鼓励持续监控应用和环境,以及积极响应反馈。例如,使用Prometheus或ELK堆栈(Elasticsearch、Logstash、Kibana)等工具,团队可以实时监控应用程序的性能指标,查看日志并设置警报,确保问题可以在影响用户之前得到解决。

    5. 自动化和配置管理:使用工具(如Ansible、Chef、Puppet等)自动设置和管理环境,确保环境一致性,减少手动错误和部署时间。例如,自动化脚本可以被用来一键配置需要部署的服务器环境,或者自动部署安全补丁到全公司的计算机上。

    6. 团队协作和沟通:DevOps强调跨职能团队的协作,包括开发、IT运营、质量保证和安全(也称为DevSecOps)等。例如,通过日常站立会议、使用Slack或Microsoft Teams等即时通讯工具,以及共享看板(如Jira、Trello)等,不同团队成员可以紧密协作,共同解决问题。

    通过这些实践,DevOps帮助公司加快开发周期,提高部署频率,实现更可靠的部署,并更快地从市场反馈中学习和调整。

    02 jenkins是如何控制发布到开发环境,测试环境,还是生产环境

    Jenkins是一个流行的持续集成和持续交付(CI/CD)工具,它可以用于自动化构建、测试和部署软件项目。在Jenkins中,您可以设置不同的任务和管道来控制发布到不同环境(如开发、测试和生产环境)的过程。以下是一个简单的示例,说明如何使用Jenkins来控制不同环境的发布:

    项目示例:一个Web应用的CI/CD流程

    假设您有一个Web应用,希望将其部署到开发、测试和生产环境中。以下是如何使用Jenkins来管理这个过程:

    1. 创建Jenkins Job

      首先,在Jenkins中创建一个CI/CD任务(Job)。此任务将包括构建、测试和部署阶段。

    2. 代码提交

      开发团队在代码库(例如Git)中进行代码更改。每次提交代码时,Jenkins可以配置为自动触发构建任务。

    3. 构建阶段

      Jenkins在构建阶段中执行以下操作:

      • 从代码库中获取最新的代码。
      • 编译代码。
      • 创建可执行文件或构建产物(例如WAR或JAR文件)。
    4. 测试阶段

      在测试阶段,您可以运行各种自动化测试,包括单元测试、集成测试和端到端测试。如果测试失败,Jenkins将停止流程并通知相关人员。

    5. 部署到开发环境

  • 相关阅读:
    Umami自建网站统计工具-免费开源的网站访问流量统计分析平台
    设计模式之单例和原型
    【算法系列】非线性最小二乘-高斯牛顿法
    15 年腾讯"老兵"谈技术人成长之路
    Java面试题:讨论单例模式的实现方式,包括懒汉式和饿汉式,并讨论线程安全问题
    nvm管理node版本 nodenpm不是内部或外部命令,也不是可运行的程序
    авито/avito ru 代表什么意思?投放广告的时候需要加入关键词中吗?
    OpenMV:22电机扩展板控制直流电机
    【动手学深度学习-Pytorch版】长短期记忆网络LSTM
    基于 CoreDNS 和 K8s 构建云原生场景下的企业级 DNS
  • 原文地址:https://blog.csdn.net/qq_41834780/article/details/133994267