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

Last updated