• DevOps


    原文出处:

    DevOps(Development和Operations的组合词)是一组过程,方法和系统统称,用于促进开发,运维和QA之间的沟通,协作和整合。DevOps可以看作是三者的交集

    通过自动化的方法去管理软件的变更,软件集成,使得软件从构建到测试再到发布更加的快捷可靠,最终按时交付软件。

     

    DevOps生命周期:

     持续开发:

    是DevOps生命周期中软件不断开发的阶段,交付成果分解为短开发周期的多个任务节点,在短时间内开发并交付

    持续开发阶段包含构建和编码,使用git和svn等工具维护不同版本的代码,以及使用Ant, Maven,Gradle等工具构建/打包代码到可执行文件中,然后将可执行文件转给自动化测试系统进行测试。

    持续测试:

     测试软件bug,使用的自动化测试工具 selenium,TestNG JUnit等。这些工具允许质量管理系统完全并行的测试多个代码库,确保功能中没有缺陷。在这个阶段,是使用Docker实时模拟“测试环境”。一旦代码测试通过,就会不断的和现有代码集成。

     持续集成

     这是支持新功能的代码与现有代码集成的阶段。由于软件在不断地开发,更新后的代码需要不断地集成,并顺利地与系统集成,以反映对最终用户的需求更改。更改后的代码,还应该确保运行时环境中没有错误,允许我们测试更改并检查它如何与其他更改发生反应。

    Jenkins是一个非常流行的用于持续集成的工具。使用Jenkins,可以从git存储库提取最新的代码修订,并生成一个构建,最终可以部署到测试或生产服务器。可以将其设置为在git存储库中发生更改时自动触发新构建,也可以在单击按钮时手动触发。

     持续部署

    由于新代码是连续部署的,因此配置管理工具可以快速,频繁地执行任务。 Puppet,Chef,SaltStack和Ansible是这个阶段使用的一些流行工具。

    容器化工具在部署阶段也发挥着重要作用。 Docker和Vagrant是流行的工具,有助于在开发,测试,登台和生产环境中实现一致性。 除此之外,它们还有助于轻松扩展和缩小实例。

    持续监控

     通过监控软件的性能来提高软件的质量,监视用户活动中的错误/系统的任何不正当行为。

    使用的一些流行工具是Splunk,ELK Stack,Nagios,NewRelic和Sensu。

     

     

    如何落地

    实现DevOps的工具:

    • 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
    • 构建工具:Ant、Gradle、maven
    • 自动部署:Capistrano、CodeDeploy
    • 持续集成(CI):Bamboo、Hudson、Jenkins
    • 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
    • 容器:Docker、LXC、第三方厂商如AWS
    • 编排:Kubernetes、Core、Apache Mesos、DC/OS
    • 服务注册与发现:Zookeeper、etcd、Consul
    • 脚本语言:python、ruby、shell
    • 日志管理:ELK、Logentries
    • 系统监控:Datadog、Graphite、Icinga、Nagios
    • 性能监控:AppDynamics、New Relic、Splunk
    • 压力测试:JMeter、Blaze Meter、loader.io
    • 预警:PagerDuty、pingdom、厂商自带如AWS SNS
    • HTTP加速器:Varnish
    • 消息总线:ActiveMQ、SQS
    • 应用服务器:Tomcat、JBoss
    • Web服务器:Apache、Nginx、IIS
    • 数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
    • 项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker
     
  • 相关阅读:
    Ubuntu 14.04 配置FTP
    python 命名规范
    Windows 多用户远程访问 Ubuntu 14.04桌面
    ubuntu 安装Matlab 解决显示中文乱码
    形式参数、实际参数和值传递、引用传递
    关于Hibernate中的临时态, 持久态, 游离态
    HTTP错误
    SpringMVC注解
    java变量的命名使用规则
    字节流与字符流的区别详解
  • 原文地址:https://www.cnblogs.com/wqzn/p/11769604.html
Copyright © 2020-2023  润新知