paint-brush
Revealed: The Most Important DevOps Tools For Newbiesby@amritsingh
294 reads

Revealed: The Most Important DevOps Tools For Newbies

by Amrit SinghFebruary 21st, 2022
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

DevOps is practice/tools to run the services and applications on Cloud infrastructure. Scripting,git,Jenkins,Ansible/Puppet/Chef,Docker,GCP,AWS,Azure

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - Revealed: The Most Important DevOps Tools For Newbies
Amrit Singh HackerNoon profile picture

Tools You Need to Learn

DevOps is the short form for Development Operations. DevOps is one of the hottest topics today. To become a DevOps engineer you need to learn a lot of skills.


DevOps is a joint responsibility of the development and operation team. It is a practice and the tools that are put together to run the services and applications efficiently on the chosen infrastructure. It covers the provisioning and maintaining infrastructure and the processes that run on it.


I have been doing DevOps (along with development) with my team for years now. I had no knowledge of the tools, but slowly I have gained expertise in quite a few of them.

Here I present the roadmap that can help you develop DevOps skills:

Computer and Network Architecture

Computer and network architecture is understanding the underlying structure of the computer system and how networks work. This includes the functioning of CPU, memory, external devices, network protocols, routing protocols, etc.

Knowing this helps you make decisions like:

  • Which service needs what kind of resources (server)
  • What should be the structure of networks like subnets and security groups
  • What ports to open

Scripting

Scripting is an important skill for any domain that requires you to program. It is a must-have skill for a DevOps developer.

DevOps involves the automation of processes that need engineers to write scripts. Scripting can be done in different languages — shell, python, javascript, etc.

Being proficient at scripting makes it easy to automate deployments, processes, and your daily activities.

git & Github/Bitbucket/Gitlab

Git is the most popular version control amongst the developer community. Github/Bitbucket/Gitlab are repositories that host git servers for you. On these platforms, you store your code in git and these platforms provide you with many management tools.

A DevOps Engineer should be familiar with git commands and the DevOps pipelines provided by these platforms. This helps them set up CI/CD pipelines.

Jenkins

Jenkins is one of the most used automation and CI/CD tools. It is an open-source automation server.

The wide variety of plugins supported by Jenkins come in handy while building automation for your projects. These plugins range from tools like Jira, JUint to infrastructure plugins like EC2 plugin, Docker to communication plugins like Slack Notification.

Ansible/Puppet/Chef/SaltStack

AnsiblePuppetChef, and SaltStack are all infrastructure automation and configuration management tools. These tools are used to deploy, configure and manage servers on large scale.

The debate of which one of these tools is the best is hot for quite some time.

Ansible has been the choice for me primarily due to its ease of setup and management. It is extremely easy to create Ansible playbooks for deployment.

Learning one of these skills is a must-have for a DevOps developer.

Docker

Using Docker you can containerize your applications and services. You can build containers having different applications that are isolated from one another. Each container has its own files, installed software, and libraries.

Docker is also considered to be a fast way of deployment as compared to Ansible, Puppet, Chef, and SaltStack. These containers can be used to host the application on any kind of server.

Cloud Platforms

To be a great DevOps developer, you need to learn (almost) everything about a cloud platform and all the services it provides.

Knowledge of a cloud platform enables you to choose the right service for your purpose and helps you reduce infrastructure cost.

Log management

Having meaningful logs for your applications and services is an important aspect of deployment. Log management involves the following:

Proper log management for your software brings in these values:

  • Debug
  • Analyzing bugs
  • helps monitor your applications
  • User behavior

There are many ways in which logs are managed. There are a few such tools provided by cloud platforms as well like CloudWatch of AWS.

ELK is the most widely used log monitoring and visualization tool. It is a combination of three open-source tools:

You can analyze, search and filter logs. Kibana helps you build beautiful visualization from logs.

CI/CD

Continuous Integration/Continuous Deployment is the process of releasing software that has been qualified and deployed automatically.

CI/CD reduces the time from making changes in the code to shipping the software.

Building CI/CD pipelines is one of the most important responsibilities of the DevOps team. There are many ways to you can create pipelines, like Gitlab pipeline, Bitbucket pipeline, AWS Code build.

To build CI/CD pipeline you need to work collectively with Dev and QA team. A great pipeline (accompanied by great practices) does not need any manual intervention from code commit to testing to deployment.

Infrastructure as Code

Creating and configuring cloud infrastructure from the console provided by the cloud platform is easy and is for the naive.

Using the console is easy and recommended for smaller infrastructures. For large infrastructures, you need to have your infrastructure as code. You can bring up, teardown stacks with a single command or click of a button.

CloudFormation (from AWS), and Terraform are a few popular “infrastructure as code” software tools.

Kubernetes

Kubernetes is an open-source system that is used to deploy and manage containers on multiple servers.

Nowadays, containers are preferred as a way of deployment. Kubernetes solves this problem on large scale by running the applications and ensuring no downtime.

The popular cloud platforms provide out-of-box Kubernetes services like

  • GKE by GCP
  • EKS by AWS
  • AKS by Azure

Final Words

You don’t have to master all the above skills to be a DevOps Engineer. You certainly need to master a few of these skills and learn as and when you need to.


First Published here