DevOps Engineer Roles and Responsibilities

Let's learn about the philosophy and skills a DevOps Engineer should have

Reference: [Inflearn] DevOps: Infrastructure as Code with Terraform and AWS Course by Song Juyoung

What is a DevOps Engineer?

  • For a proper DevOps culture,

    • A person who automates repetitive tasks in the service or S/W lifecycle,

    • And is responsible for technically preventing and resolving technical problems or differences between teams

  • A person who applies common DevOps Engineering-related technologies to various places

Required Skills for a DevOps Engineer

Soft Skills

  • Problem Identification

    • Must identify what problems exist

    • Must identify the exact root cause

  • Prioritization and Focus

    • Solve problems through appropriate methods

    • Correctly set the priority of solutions

  • Decision Making

    • Must make quick decisions with conviction, not guesswork, among numerous options

      • Decisions must be backed by supporting data

  • Nature of the Business

    • Must understand the essence and value of the service being provided

  • Users

    • Understand users

    • Must provide fast feedback to requirements

      • Fast feedback and application are needed

Technical Skills

  • Programming

    • Being proficient in languages like Go, Python is a great strength

      • ex) Go, Python, Node.js, etc.

        • Yay, Python!

  • Operating Systems

    • Must be proficient with operating systems like Linux and must know the concepts

      • ex) Shell, OS metrics, File system, 7 layers, etc.

  • Server Management

    • Must build reliable services through server management skills and operational knowledge

      • ex) IaC, CI/CD, API, availability, performance, etc.

  • Open Source

    • Must understand the S/W that makes up the infrastructure and be able to use automation tools

      • ex) nginx, Tomcat, MySQL, Redis, Ansible, Terraform, etc.

  • Cloud

    • Must be proficient in Public Cloud and be able to build and design directly

      • ex) AWS, Azure, GCP, Alibaba, etc.

Infrastructure as Code

  • Building infrastructure components such as servers, middleware, services through code

    • IaC has the advantages of code:

      • Ease of writing

      • Reusability

      • Maintainability

      • Documentation, etc.

IaC Tool: Terraform

  • Terraform is a tool made for IaC to create, change, and record infrastructure,

    • With easy syntax making it relatively easy to use

    • And with a very large user base providing many examples for reference

  • Supports not only Public Clouds like AWS, Azure, GCP but also various other services

Virtues of a DevOps Engineer

  • Must think of as many possible scenarios as possible

    • After that, reflect in code and during execution, leave logs and do monitoring steadily for a long time

  • It is also important to write code so that it is checked multiple times during execution and actually runs only when all conditions match

  • Must properly build test environments

  • To become a DevOps engineer, knowing specific products or technologies is not enough

    • Products and technologies always change with the advancement of the industry

  • Understanding of the DevOps philosophy and the underlying lifecycle is also important

    • Therefore, one must understand the core of DevOps: Continuous Deployment and Continuous Integration processes (CI/CD), and the software testing that accompanies them!

DevOps Engineer Skills

  • Basics: Linux administration, Python, AWS or other cloud platforms

  • Configuration: Terraform or Ansible

  • Version Control: Git and GitHub

  • Packaging: Docker

  • Deployment: Jenkins

  • Execution: Amazon ECS and Kubernetes

  • Monitoring: ELK Stack

DevOps Developer Roadmap - 2020

img

Last updated