DevOps – How-Tos and Tutorials

DevOps is a collection of practices to automate or combine the processes between software development ("Dev") and IT operations ("Ops"). The goal is to develop, test, and deploy software faster and more reliably.

Below you find an overview of the HappyCoders DevOps tutorials.



What you'll learn
  • How to install Jenkins
  • How to manually configure Jenkins build and release jobs for a Maven project
  • How to code Jenkins build and release jobs with the Jenkins Job DSL
  • How to generate views with the Jenkins Job DSL
  • How to configure Jenkins’ script security system
  • How to automatically update existing jobs after changing the job DSL code
  • How to generate new Jenkins jobs fully automatically for new Java projects



What you'll learn
  • How to install Ansible on Windows
  • How to create Ansible playbooks, roles and tasks
  • How to install an OS image on a dedicated server with Ansible
  • How to create user accounts with Ansible
  • How to configure SSH with Ansible
  • How to configure the firewall with Ansible
  • How to setup Docker with Ansible
  • How to install WordPress and MySQL as Docker containers with Ansible
  • How to setup HAProxy with Ansible
  • How to create a free HTTPS certificate from Let's Encrypt via Certbot



What you'll learn
  • Choosing a Linux distribution
  • Choosing a Linux desktop environment
  • BIOS vs. UEFI / EFI
  • MBR vs. GPT
  • GRUB and GRUB boot options
  • How to setup a boot partition
  • How to encrypt the hard disk
  • How to create a boot image
  • How to transfer data from a BitLocker-encrypted Windows hard drive

Why DevOps?

Historically, Dev and Ops were separate teams: the development department programmed the software and delivered it to the Operations team. That team was then responsible for its installation and operation. This process often led to problems, for example, runtime environments were not identical, update paths did not work, or errors only occurred in production. The departments blamed each other. A long feedback cycle between the teams resulted in the fact that it sometimes took days or weeks until bugs could be fixed.

The close collaboration between the two teams and the resulting practices lead to shorter release cycles, higher quality, fewer errors, and the ability to resolve critical problems quickly – in minutes rather than days or weeks – through continuous delivery.

Difference between DevOps and Agile Development

Agile Software Development solves communication problems between customers and developers. DevOps solves communication problems between developers and operations and optimizes the delivery of the produced software, regardless of whether it was developed with agile or other methods. Agile software development is based on practices provided by DevOps, such as continuous integration and deployment.

Difference between DevOps and Continuous Delivery

Continuous Delivery is the optimization of technical processes for the provisioning of software. DevOps refers to the organizational structures or organizational changes that lead to better collaboration and thus enables the implementation of Continuous Delivery.