Introduction
Hi! I’m Ahmed and I’m a cloud technician at Beaty Consultancy. This blog explores my journey as a DevOps Engineer, highlighting the pivotal role I played in optimising deployment processes, enhancing productivity, and fostering a culture of automation. Join me as I delve into the experiences that shaped my career, from the classrooms of my university to the dynamic environment of working with different organisations.
Education as the Foundation
My journey began with a strong educational foundation. A Bachelor’s degree in Computer Science from DHA Suffa University laid the groundwork for my career. This academic journey was further enriched with an MSc in Computer Science from the University of Hertfordshire, where I honed my skills and expanded my knowledge in the field.
A Leap into Cloud Management
Right after completing my bachelor’s I got hired as a DevOps Trainee at iVolve Technologies and made my way to being a DevOps Engineer in the time span of one and half years where I got to work with various technologies alongside some very talented co-workers. The most exciting project I worked on was building the whole infrastructure for a private cloud the company was building which involved us spending days and nights in the data centre racking and stacking the servers, doing configurations on them and then actually deploying OpenStack on it. I also got to work with virtualization platforms like Red Hat virtualization and VMware vCenter including Ceph storage and SAN storage array.
A Transformative Experience
I joined Pakistan Single Window in 2022, and I was tasked with revolutionising the deployment process, and I embraced the challenge with open arms.
- Automated CI/CD with Jenkins: One of my key achievements was reducing deployment time by over 50% through the implementation of a fully automated CI/CD pipeline with Jenkins for Docker applications. This not only saved time but also reduced the margin for error.
- Optimised Deployment Processes: I worked diligently to optimise deployment processes across various environments, including staging, production, SIT, QA, and UAT. My efforts aimed to minimise latency and resource usage, ensuring smoother deployments.
- Juju Charmed Kubernetes Cluster: Efficient deployment and management of the Juju Charmed Kubernetes cluster improved productivity in the team. This was a significant milestone in our journey towards a more streamlined DevOps environment.
- Microservices Migration: I migrated microservices from Docker to Kubernetes, resulting in better workload management thanks to Kubernetes autoscaling. This migration allowed us to embrace the scalability and flexibility of Kubernetes.
- GitLab Enterprise Implementation: To bolster disaster recovery capabilities, I established GitLab Enterprise and seamlessly migrated over 100 Gogs (a self-hosted Git repository management system for small to medium-sized development teams and individual developers, offering an intuitive web interface, lightweight resource requirements, and full control over code repositories) repositories with minimal service interruptions.
- GitOps and Cloud Native CI/CD: The adoption of GitOps via ArgoCD and cloud-native CI/CD practices ensured that deployments flowed seamlessly from inception to completion, promoting transparency and collaboration.
Expanding Horizons with AWS and Terraform
I decided to pursue my masters in computer science from University of Hertfordshire in the UK which is going amazingly well where I learned more about wireless technologies and programming paradigms. I chose to do my masters with a placement year and I’m lucky enough to work with Beaty Consultancy as a cloud technician for my placement.
Before working here I had minimal experience with public cloud such as AWS, Azure, Google Cloud and Terraform which is a great learning curve for me. Ricky gifted me one of those Udemy courses for Terraform to help me learn and get up to speed cause it’s all in terraform at Beaty Consultancy. Terraform is a scripting language which describes how infrastructure should be created. Infrastructure as Code – IaC.
What is Terraform?
Terraform is an Infrastructure as Code (IaC) tool that lets you define and provision infrastructure using code. IaC treats infrastructure like software, offering consistency, scalability, version control, automation, and efficient management. Terraform uses a declarative configuration language to specify the desired infrastructure state, supports various cloud providers, and generates execution plans to make changes. This approach ensures that infrastructure is maintained consistently and efficiently.
I got tasked to work on various technologies like Steampipe for AWS monitoring where I created dashboards to help us do the monthly reviews according to AWS Well Architected Framework. The task I enjoyed the most was configuration and deployment of WAF (Web Application Firewall) for one the clients because it allowed me to do everything from scratch and it was all in Terraform like it should be. One of my daily tasks is to perform monitoring for a client using AWS CloudWatch which I say is a must for everyone using AWS as it provides deep insights about the application performance as well as the infrastructure.
Conclusion
My journey as a DevOps Engineer has been a testament to the transformative power of automation and infrastructure. From optimising deployment processes at Pakistan Single Window to enhancing cloud management at iVolve Technologies, and working on public cloud and Terraform at Beaty Consultancy I have witnessed firsthand the power of cloud computing in streamlining development and operations processes. The journey continues, and I look forward to more opportunities to innovate and contribute to this ever-evolving field.