zoukankan      html  css  js  c++  java
  • DevOps架构实践

    1. 场景

    持续部署:业界没有统一明确地定义,简单理解为将集成结果部署到不同的环境供用户使用,并且立即反馈部署结果的实践,其中不同的环境包括:开发环境、测试环境、预发布环境、生产环境
    持续部署两个核心要素:持续、自动化,自动化是持续的基础
    持续部署的需求场景:
    • 需要频繁的发布更新
    • 部署规模较大,人工操作费时费力易出错
    • 规范化上线部署流程和配置规范
    注:此处只讨论应用部署,不包括系统部署
     

    2. 实践

    • 开发提交代码到Git仓库
    • 自动或手动触发持续集成,执行编译、打包、单元测试、代码扫描等过程,并构建出可部署的程序文件,上传测试的SVN库
    • 测试人员手动触发Jenkins调用Rundeck从测试的SVN库中获取部署文件并部署到测试环境
    • 测试人员进行产品验证
    • 测试人员在验证通过后,申请发布到生产环境,并手动触发Jenkins,将测试的SVN库中的部署文件上传到运维的SVN库
    • 运维人员触发Rundeck,从运维的SVN库中获取部署文件并更新到生产环境
    注:
    • 集群的部署采用分步更新,先发布到线上集群里的某一个节点进行更新测试,测试通过后把这个节点加入集群,再更新其他节点
    • 发布成果的版本采用时间戳的形式

    3. 工具

    3.1 工具箱
    • Jenkins:用作发布任务的触发,实现发布的持续化
    • SVN:发布成果的版本管理工具,实现发布内容的可追踪、易回滚
    • Rundeck:用Java/Grails实现的开源自动化部署工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者web界面,用户可以对任意数量的服务器进行远程操作,大大降低了对服务器自动化的门槛。

    4. 效果

    • 提升应用变更效率,包括速率和成功率
    • 实现部署自助化,开发、测试均可完成相应环境的发布

    原文出自:

    http://udn.yyuap.com/forum.php?mod=viewthread&tid=30567&typeid=343

  • 相关阅读:
    Vitrualbox虚拟机网络设置
    挂接命令(mount) 【转】
    ubuntu Error mounting /dev/sda6 at /media/xxx...
    mysql命令[转]
    fopen参数
    fprintf&prinft&sprintf
    UNIX 网络编程知识,函数积累
    vim 括号自动补全
    CDbConnection failed to open the DB connection
    [Android_蓝牙]Android4.0蓝牙使能的详细解析
  • 原文地址:https://www.cnblogs.com/lingyejun/p/7285953.html
Copyright © 2011-2022 走看看