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
| Date | Location | Booking |
|---|---|---|
| Online | Book DevOps Fundamentals For Developers, Mon 5 Oct 2026, Online |