DevOps Fundamentals For Developers

This DevOps Fundamentals course is designed to give web developers an understanding of how to deploy their applications in the real-world. It will give participants an understanding of how to provision an VPS (Virtual Private Server) from a cloud provider. It will cover logging into the VPS and give a thorough coverage of working on the linux command line. Participants will install software, configure a web application, open the appropriate ports, and configure the application to run as a service. A domain will be registered and SSL certificates will be issued from LetsEncrypt. Nginx will be utilised to serve HTML content and to act as a reverse proxy to run multiple sites on a single machine. The course will cover different ways of deploying a finished application, how to externalise configuration items, monitoring log files and continuous integration through the use of GitHub Actions. The course is hands-on with each participant enabled to configure their own server from scratch and set up continuous integration from a GitHib repository.

Duration
5 days
Format
Instructor-led, in person or live online

What the course covers

Prerequisites

The course is appropriate for web developers utilising any technology stack. No experience with Linux or configuration of servers is required..

Technologies used

The technology stacks available include traditional PHP based applications, Node.js, Java Spring Boot, C# ASP.NET Core and more modern MEAN and MERN stack developers using Angular or React. The course can be customised to various other technology stacks including LAMP, MEVN and JAM.

What is DevOps?

  • Understanding Cloud Computing
  • DevOps terminology
  • DevOps Techniques

Logging into Linux

  • Provisioning a VPS
  • Connecting using SSH Shell
  • Command line environment
  • Some basic commands
  • Tab completion

Linux commands

  • Understanding the structure of a linux command
  • Commands
  • Options
  • Arguments
  • Understanding the information given by the --help option

Linux File and Directory Operations

  • ls
  • cp
  • Mv
  • cd
  • mkdir
  • Editing files
  • The tree command

Linux Philosophy

  • Single responsibility
  • Streams
  • Pipes
  • Return codes

Effective use of the history command

  • The history command
  • Searching for a command
  • Executing a command from the history
  • Executing the last command
  • Editing a previous command without executing it
  • Executing the last command as an administrator

Understanding Processes

  • Getting a list of processes
  • Stopping a process
  • Suspending a process
  • Getting a list of suspended jobs
  • The kill command

SSH Clients

  • Alternatives to PuTTY
  • OpenSSH commands from the command line
  • Bitvise
  • MobaXterm
  • Visual Studio Code

Public / Private Key Access

  • What is public key / private key encryption
  • Using public key to log into a Linux machine
  • The /.ssh directory
  • ssh-keygen
  • ssh-copy-id
  • authorized_keys

Administrative Privilege

  • Check contents of /root
  • Elevating permission using sudo
  • Changing effective user using su
  • Keep asking whoami, where am I (pwd), what machine (hostname)
  • Configuring the prompt

Understanding Permissions

  • Why are permissions part of the operating system
  • Understanding the output of ls -l
  • User, Group, Others
  • Creating a group
  • Add a user to a group
  • Ownership and the chown command
  • Modes and the chmod command

Understanding Links

  • Symbolic links
  • Recognising links
  • Creating a link - ln
  • Uses of links
  • Links will be used by nginx and certbot

Installing Software

  • Package management
  • Repositories
  • Which distro - hostnamectl
  • apt-get, yum, rpm, dnf
  • Installing simple software
  • Installing something more complex (node.js)

Understanding Services

  • What is a service?
  • In Linux anything can be a service
  • systemctl
  • Creating a .service file
  • Start, stop, status and enable options

Understanding HTTPS

  • What is HTTPS
  • Installing Certbot
  • How Certbot works
  • Configuring DNS records
  • Running in --standalone mode

Configuring a simple web application

  • Create a simple web application
  • Test is with http requests
  • Configure ssl
  • Issue the certificate
  • Utilise the certificate
  • Verify ports are open
  • Test application using https
  • Examine certificate

Nginx

  • What is Nginx?
  • Installing Nginx
  • Verifying installation
  • Nginx configuration
  • Sites-available vs sites-enabled
  • Using links
  • Creating a vhost for a html site

Reverse proxy a Node.js site

  • Creating a reverse proxy site for Node.js
  • Externalisation of Configuration
  • Node.js deployment techniques
  • Deploy using SCP
  • Stop and restart service remotely using SSH

Continuous Integration

  • What is continuous integration?
  • Create a GitHub repository for your project
  • Configure git in your project
  • Configure remote
  • Push
  • Create a Github Action
  • Self-hosted runners
  • Configure self-hosted runner

Reverse proxy site using your own technology stack

  • Repeat the process of the previous lesson for your own technology stack, includes configuring a GitHub project and a GitHub action for continuous integration
  • Spring Boot
  • ASP.NET Core
  • PHP
  • MEAN - Angular
  • MERN - React

Course dates

Scheduled dates for DevOps Fundamentals For Developers
DateLocationBooking
Online Book DevOps Fundamentals For Developers, Mon 5 Oct 2026, Online