If you are getting started with programming, there are countless articles with ideas for projects that you could build, but not that many project ideas for purely Ops-related roles.
For anyone who is getting started with Linux and wants a DevOps/SysOps practical task or a challenge to boost your knowledge, you could try configuring up the following setups.
Before you get started, you would need to either have Virtual Box installed on your laptop so that you could create Linux virtual machines on there.
Or as an alternative, you could create an account with DigitalOcean using the link below and start creating actual servers:
Setup a LAMP or LEMP Stack
Nginx and Apache are some of the most popular web servers, so you will most likely have to work with both at some point in your career.
Setup 1 server and install the following:
For the sake of practice, try out the same setup but with Apache instead!
Scaling MySQL could be challenging. This is why I would encourage you to try and setup MySQL replication with 2 or more servers and get your hands dirty!
Setup 2 servers with MySQL installed and configured MySQL replication so that you have 1 main server and 1 replica.
NFS stands for Network File System, and it allows you to share files and folders between servers/computers over a network, much like local storage.
Set up an NFS server and with a few NFS clients.
Setup Redis for PHP sessions
If you are going to scale your PHP application with multiple web servers, you would need a way to share your PHP sessions. Otherwise, your users would lose their sessions each time they reach a different server.
Try setting up a separate Redis server and configure the LEMP/LAMP server so that it stores its PHP sessions on your Redis server.
Once you've done the above a few times and you feel confident, then try to combine all of the things into one and set up the following solution:
Setup the following
- 1 Load Balancer with HAProxy
- 2 or more Web Servers with Nginx + PHP-FPM + Laravel and Jetstream installed
- 2 database servers with #MySQL replication
- 1 Redis server to store your #PHP sessions
- NFS server to store your files on
This could be considered as an 'old school' solution compared to technologies like Kubernetes and etc., but I think that it is a great exercise for anyone interested in system administration, SRE, and DevOps roles!
Finally, try doing a load test with Siege.
Some other ideas would be:
- Setup your own storage server with OwnCloud and DigitalOcean Spaces
- Get a Raspberry Pi and set up your home VPN
- Learn Bash scripting
- Setup a monitoring solution for the cluster that you created. You could check out Nagios!
gitand set up a CI/CD process with Jenkins or GitLab
If you are getting into the DevOps world, make sure to check out Ansible, Docker, and Kubernetes!
You can spin up a few servers on DigitalOcean and start playing around!
If you have any other ideas, make sure to share them with me by tagging me on Twitter: