- Why We need DevOps and What is DevOps
- Source Code Management (git & GitHub)
- Setting up our Tool Set
- Python (and why we're learning it in a DevOps course)
- Continuous Integration (jenkins)
- Continuous Delivery (jenkins)
- Virtualization (virtual box)
- Configuration Management (ansible, puppet, chef, terraform)
- Containerization (docker)
- Cloud Computing (AWS, Azure, Google Cloud Platform)
- Continuous Monitoring (Nagios, AWS Cloudwatch, Splunk)
- Final Project
- DevOps for 2020 (new tools / topics in the DevOps pipeline)
Lets take a few minutes to talk about it. We will use this time to know each other a bit before continuing.
Development + Operations = DevOps (simple right?)
- A technology
- A tool
- A software
- A programming language
- A team
- ** No wrong definition actually :)
Programmers would write software (mainly in c and c++) and then manually share it with users on servers. Users would download that software and manually install it on their computers. People that wrote the software were generally separated from the people that maintained the servers for running the software on. Bringing software to market was a long, arduous task filled with complicated and error prone steps, resulting in a long development life-cycle.
- Manually creating software and manually installing software;
- Lots of human errors in the process.
- Separating the process of bringing software to market into two isolated teams tends to create animosity and "its your fault not mine" type of behaviour.
- Software takes a long time to be delivered and another company that is faster and better will drive you out of the market.
From Wikipedia:
DevOps is a set of practices that combines software development and information-technology operations which aims to shorten the systems development life cycle and provide to shorten the systems development cycle and provide continuous delivery with high software quality.
The introduction of the DevOps practice brought about a merging of the Development Team and the Operations Team into a "hybrid" called "DevOps".
Working together, these teams create a synergy that makes working in a software company a pleasure rather than a stressful ordeal.
Resources:
What does a DevOps engineer do?
- from a Developement perspective
- is more focused on creating software, understands code, logical gates, scripting, databases, etc.
- multiple paradigms, one can be a backend, frontend, full stack
- from an Operations (sysadmin) perspective
- is more focused on configuring, keeping up and maintaining servers and computer systems
- responsible for executing the infrastructure plan
- monitoring, scaling and sometimes deployment
No assumptions, we will start from scratch. Meaning we will all learn how to to the first steps together.
By the end of this course you should be able to create a full scalable infrastructure connected to a CI/CD pipeline.
We will also cover Algorithms, Logic and Python.
I think we are a bit biased from a dev perspective, probably because this is my main experience.
You will have to lose the fear of the command line, it is not that scary. :D
- Virtual Box
- Ubuntu Linux
- Python
- Docker
- Jenkins
- Ansible
Peek the desktop stack setup here. We will discuss the setup in more details later on.


