devops - doubility-sky/daydayup GitHub Wiki

DevOps is a set of practices that combines software development (Dev) and information-technology operations (Ops) which aims to shorten the systems development life cycle and provide continuous delivery with high software quality.

Learn

Continuous Integration (CI)

In software engineering, continuous integration (CI) is the practice of merging all developers' working copies to a shared mainline several times a day. Grady Booch first proposed the term CI in his 1991 method, although he did not advocate integrating several times a day. Extreme programming (XP) adopted the concept of CI and did advocate integrating more than once per day – perhaps as many as tens of times per day.

  • jenkinsci/jenkins, In a nutshell, Jenkins is the leading open-source automation server. Built with Java, it provides over 1600 plugins to support automating virtually anything, so that humans can actually spend their time doing things machines cannot.
  • Travis CI, Free continuous integration platform for GitHub projects. https://travis-ci.org
    • Travis CI is a hosted continuous integration and deployment system. You can now test and deploy open source and private projects on travis-ci.com! You can read more about this change here.
  • Gitlab CICD, GitLab CI/CD is a tool for software development using the continuous methodologies:
    • Continuous Integration (CI)
    • Continuous Delivery (CD)
    • Continuous Deployment (CD)
    • .gitlab-ci.yml, In the .gitlab-ci.yml file, you can define: The scripts you want to run.
      stages:
        - build
        - test
      
      build-code-job:
        stage: build
        script:
          - echo "Check the ruby version, then build some Ruby project files:"
          - ruby -v
          - rake
      
      test-code-job1:
        stage: test
        script:
          - echo "If the files are built successfully, test some files with one command:"
          - rake test1
      
      test-code-job2:
        stage: test
        script:
          - echo "If the files are built successfully, test other files with a different command:"
          - rake test2
      

Continuous Deployment (CD)

  • Ansible, Ansible is a suite of software tools that enables infrastructure as code. It is open-source and the suite includes software provisioning, configuration management, and application deployment functionality.
  • Apache Airflow® is a platform created by the community to programmatically author, schedule and monitor workflows.

Tools

FAQs