Learning, the [5] basic DevOps tools.

Trevor
3 min readSep 19, 2020

It has been an interesting journey here trying to figure out what's up with… DevOps! language.., how these tools collaborate to have a smooth application development cycle.

Will talk about; Kubernetes(GKE), Docker(&Dockerhub), Terraform, Ansible, Jenkins and Google Cloud Platform & Amazon Web Service as the host environment.

First foremost! Let's define these tools.

  1. Google Kubernetes Engine (GKE): is Google’s managed, production-ready environment for running containerized applications.

2. Terraform: This is an infrastructure as code software tool which enables users to define and provision a data-center infrastructure using Hashicorp Configuration Language (HCL).

3. Docker: Is a Platform as a Service (PaaS) product(s) that uses OS-level virtualization to deliver software in packages called containers.

4. Ansible: Is an open-source software provisioning, configuration management, and application-deployment tool.

5. Jenkins: Is an automation server that helps to automate parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery.
A common term, CI-CD is used usually used to refer to the above Jenkins’ role in the DevOps practice.

My first experience working with either of these tools was during the Google Africa Developer Program (ALC) where our final project was to have Containerize a React app using Docker, then push it for storage on DockerHub then hosting it on GKE — GCP. Ooh! the experience was terrible 😬
I had just experience with just firing up virtual machine instances, run simple commands on the command line… so Kubernetes was the first challenge!

So based on the project I find I had to host the app in Kubernetes (GKE), with a basic understanding of the terms; Nodes, Pods, deployment, was good to go!

However, the app needs to be containerized! so I then learned about Docker, learned how to write a Dockerfile that provides instructions to create a Docker image for the app.

So I have my app-docker-image on my computer, which needs to be stored for future use, then DockerHub comes in. This was a bit of walk-over, just creating an account, then tagging my image which I then push with a simple command; ($ docker build . )

As I explored this process, I found I could summarise all the above steps in command with Ansible, so as to avoid repeating some steps! Why not just “automate” so next time I run the command & everything is done at a go!
So I learned to write Ansible-playbooks.

So, where is Jenkins coming in, for such a simple project which needed no further

--

--

Trevor

👨‍💻 Cloud Geek | 👨‍🏫Educator #GCP | Mentor @gdsc_uganda | Facilitator @GDGCloudKampala | Ex-Lead #DeveloperStudentClubs | #Mindfulness 🧘🏽‍♂️