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

Container

  • docker, kubernetes
  • LXC is the well-known and heavily tested low-level Linux container runtime. It is in active development since 2008 and has proven itself in critical production environments world-wide. Some of its core contributors are the same people that helped to implement various well-known containerization features inside the Linux kernel.
  • Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations. https://www.nomadproject.io/

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.

Tools

FAQs