Table of contents
No headings in the article.
It has been a long journey since I first considered the idea of becoming a DevOps engineer. Although I had years of experience working in technology, I was not familiar with the complexities of DevOps and wanted to explore the possibilities of helping make my organization's software applications more resilient and cost-effective.
In this blog post, I will share my journey to mastering continuous integration and delivery systems, focusing on my experiences with cloud computing, AWS, Azure, and Docker.
I started my journey by learning the fundamentals of cloud computing. As its name implies, cloud computing is a model of computing that allows users to access their data and applications remotely via the internet. By leveraging the scalability and elasticity of cloud infrastructure, organizations can save money while making their applications more reliable. My first tasks included setting up a virtual machine in AWS (Amazon Web Services) and familiarizing myself with its various services.
Next, I explored the concept of continuous integration (CI). CI involves continuously testing new code during development to ensure that there are no major flaws or issues with the codebase. To set up CI/CD (Continuous Integration/Continuous Delivery) for an application, I had to learn about version control systems such as Git and set up automated tests using tools like Jenkins. By defining a series of steps that need to be taken when deploying an application, CI/CD can significantly reduce errors and mistakes when deploying code changes into production.
I then began studying Docker and containerization technologies to better understand how applications can be deployed within containers. Utilizing Docker enables organizations to quickly spin up virtualized environments which can then be used for isolated testing purposes without having to constantly create new environments from scratch. This also reduces resource costs since containers are lightweight compared to traditional virtual machines.
While utilizing these different technologies was already beneficial by itself, the real value came when I started combining them. For instance, automation can be further enhanced by implementing CI/CD pipelines within Docker containers such that repetitive tasks are automated and continuously monitored. Additionally, by taking advantage of cloud computing's scalability and elasticity, organizations can quickly provision resources when needed and easily scale their applications as demand increases.
There is no doubt that mastering continuous integration and delivery is an incredibly rewarding endeavour that requires a thorough understanding of various technologies and processes. From setting up virtual machines in AWS to combining containerization technologies with CI/CD pipelines, it has been a long but rewarding journey for me so far. Although there are still many things that I need to learn about DevOps engineering along the way, I am confident in my ability to help make our organization's software applications more resilient and cost-efficient going forward.