Navigate back to the homepage

DevOps Engineer Roadmap

Rommel Porras
August 22nd, 2019 · 4 min read

A simple guide to becoming a knowledgeable DevOps engineer or other related Ops role. This is a tech stack guide for DevOps engineer, SRE, or any other related Ops role.

Must-Have Skills for DevOps Engineer

1. Programming Language

  • Scripting: Python / Go, an alternative to Bash script. For me, Python is a must-have if you want to be a DevOps engineer or other related Ops job.

  • Back-end language/framework: Node.js - Express.js, Python - Django or Flask.

2. OS Concepts:

Any basic to advance knowledge of threads, concurrency, sockets, virtualization, memory/storage, I/O management.

3. Managing Servers

  • Operating System: Ubuntu, CentOS or any related Linux distros.
  • Learn the Terminal: This is a must-have skill in any Ops related job.

4. Network and Security

eg. Try to secure (https/SSL) a website using Let’s Encrypt.

5. What is and Learn How To Setup a …?

  • Caching Server: If you are on AWS, Use AWS ElastiCache. Use Redis or Memcached. I suggest that you try to implement Redis in your projects.

  • Load Balancer: AWS’s Elastic Load Balancing, implement ELB to your production website/API if you need to support many users. Load balancing refers to efficiently distributing incoming network traffic across a group of backend servers, also known as a server farm or server pool.

  • Web Servers: Nginx or Apache, both of this is a must-have skill. btw, most of the website right now runs on Apache (because of Wordpress/PHP). I suggest that you use Nginx because it handles traffic much better than Apache.

  • Firewall: Learn how to implement firewalls on different cloud provider. If you are using AWS, learn VPC, Security Groups, Network ACL, NAT Gateway, etc.

Infrastructure as Code

  • Terraform - HashiCorp Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

  • CloudFormation - AWS CloudFormation provides a common language for you to describe and provision all the infrastructure resources in your cloud environment. CloudFormation allows you to use a simple text file to model and provision, in an automated and secure manner, all the resources needed for your applications across all regions and accounts.

I suggest you use Terraform if your team plan to start implementing IaC, to prevent vendor lock-in. AWS’s CloudFormation is proprietary technology that can only be used in Amazon Web Service ecosystem.

Btw, You can use whichever will more likely get your team(s) on board with infrastructure as code. ;)

Containers

Use Docker! Learn it at Docker Get Started.

Container Orchestration

Use Kubernetes, If you are a AWS user, implement Docker containerization using AWS’s Elastic Kubernetes Service (EKS) or Elastic Container Service (ECS).

Configuration Management

Just use Ansible.

Why Ansible? Working in IT, you’re likely doing the same tasks over and over. What if you could solve problems once and then automate your solutions going forward? Ansible is here to help.

If you have SSH access and need to repeat the same steps on multiple servers, Ansible can do it for you. There are a few more use-cases, e.g. it’s also possible to run it on localhost on machine boot (ansible-pull), build VM images with Packer and Ansible or build Docker images. But the SSH use-case is probably the most popular.

Learn Some CI/CD Tools:

Learn Jenkins because it is widely used and most companies use it.

  • Jenkins - The leading open-source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.

  • CodeBuild - fully managed continuous integration service that compiles source code, runs tests, and produces software packages that are ready to deploy.

  • CodeDeploy - fully managed deployment service that automates software deployments to a variety of compute services such as Amazon EC2, AWS Fargate, AWS Lambda, and your on-premises servers.

  • Drone - Drone is a self-service Continuous Delivery platform for busy development teams.

  • Gitlab CI/CD - GitLab CI/CD pipelines build, test, deploy, and monitor your code as part of a single, integrated workflow. GitLab CI/CD is part of GitLab, enabling a single conversation from planning to deployment (and beyond). Open source: CI/CD is a part of both the open source GitLab Community Edition and the proprietary GitLab Enterprise Edition

  • TeamCity - Enterprise-level CI and CD at a $0 price tag.

Cloud Providers

Logs Management

  • (ELK) Elasticsearch, Logstash, and Kibana - “ELK” is the acronym for three open source projects: Elasticsearch, Logstash, and Kibana. Elasticsearch is a search and analytics engine. Logstash is a server‑side data processing pipeline that ingests data from multiple sources simultaneously, transforms it, and then sends it to a “stash” like Elasticsearch. Kibana lets users visualize data with charts and graphs in Elasticsearch.

  • Graylog - Graylog is a free, open-source log management platform that can parse, normalize, and enrich logs and event data. Its processing rules allow you to set multiple options for routing messages, black- or white-listing, and even modifying (“enriching”) log messages before moving them to the next step of processing.

  • Splunk - Splunk is well-known within the system administration and monitoring communities. Logfile sources (whether that is text file data shipped from a remote system, syslog, trap, or some other stream) are aggregated on the server running Splunk, indexed, and stored.

Infrastructure Monitoring

  • Amazon CloudWatch - Amazon CloudWatch provides visibility into your AWS resources to monitor resource utilization, application performance, and operational health. You can use these insights to manage your application and keep it running smoothly.

  • Prometheus, Grafana, and Alert Manager - mainly use this if your on Kubernetes.

I recommend CloudWatch logs to clients to monitor, store, and access log files from Amazon EC2 instances, AWS CloudTrail, VPC Flow logs, Lambda logs and other sources. At the heart of my recommendation is that CloudWatch Logs, mainly use this if your not on Kubernetes or containerize setup.

Bookmark or pin this page so you can easily pick it up and read it again. :)

Join our email list and get notified about new content

Be the first to receive our latest content with the ability to opt-out at anytime. We promise to not spam your inbox or share your email with any third parties.

More articles from DevOps Cycle

Docker Cheat Sheet

A concise cheat sheet for everyday Docker commands. Docker commands for shipping, building, and running Docker containers.

August 10th, 2019 · 1 min read

Setup Ghost Blog on AWS EC2 and RDS

A full guide for installing, configuring and running Ghost on your AWS EC2 Ubuntu 18.04 server, for use in production. Setup a Ghost blog/project on AWS.

August 2nd, 2019 · 6 min read
© 2019 DevOps Cycle
Link to $https://twitter.com/devopscycleLink to $https://facebook.com/devopscycleLink to $https://github.com/rommelporrasLink to $https://m.do.co/c/1ba0ac3af2f6