DevOps
DevOps 엔지니어의 역할
주씨.
2024. 7. 27. 19:34
728x90
DevOps 엔지니어의 역할은 무엇일까?
DevOps 엔지니어가 되려면 어떻게 해야 할까?
DevOps 엔지니어가 되려면 어떤 기술들을 갖추고 무엇을 공부해야 할까?
DevOps 엔지니어
올바른 DevOps 문화를 위해 서비스 혹은 S/W LifeCycle 에서 반복적인 일들을 자동화하고, 기술적 문제 혹은 팀의 차이를 기술적으로 예방하고, 해소시키는 사람
다른 역할들에 비해서 DevOps 엔지니어의 역량에 따라서 할 수 있는 일들이 정말로 많아진다.
왜냐하면 어떤 기술과 개념들을 다양한 곳에 적용할 수 있기 때문이다.
기획팀 마케팅의 업무를 자동화하는 것도 DevOps 엔지니어의 역할이 될 수 있다.
DevOps 엔지니어의 Soft Skill
문제인식 | 문제가 무엇이 있는지, 정확한 원인이 무엇인지 파악해야 한다. |
선택과 집중 | 문제를 적합한 방법을 통해 해결하고, 해결의 우선순위를 올바르게 설정한다. |
결정 | 수많은 선택지에 대해서, 추측이 아닌 확신을 가지고 빠르게 결정해야 한다. |
업의 속성 | 제공하는 서비스의 본질과 가치를 이해해야 한다. |
사용자 | 사용자를 이해하고, 요구사항에 대해서 빠르게 피드백 해야한다. |
Technical Skill
프로그래밍 | Go, Python 등 능숙하게 다룰 수 있는 언어 |
운영체제 | Linux 와 같은 운영체제를 능숙하게 다루는 것과 개념을 반드시 알아야 한다. ex) Shell, OS metrics, File system, 7 layers 등 |
서버관리 | 서버를 관리하는 기술과 운영지식을 통해 신뢰할 수 있는 서비스를 구축해야 한다. ex) IaC, CI/CD, API, 가용성, 성능 등 |
오픈소스 | 인프라를 이루는 S/W 들을 이해하고, 자동화 도구들을 다룰 수 있어야 한다. ex) nginx, Tomcat, MySQL, Redis, Ansible, Terraform 등 |
클라우드 | 퍼블릭 클라우드를 능숙하게 다루고, 직접 구축 및 설계를 할 수 있어야 한다. ex) AWS, Azure, GCP, Alibaba 등 |
IaC, Infrastructure as Code
즉 코드로써의 인프라는 인프라를 이루는 서버, 미들웨어 그리고 서비스 등, 인프라 구성요소들을 코드를 통해 구축하는 것.
IaC 는 코드로써의 장점, 즉 작성용이성, 재사용성, 유지보수 등의 장점을 가진다.
처음에는 불편할 수 있는데, 익숙해지면 코드로 만드는게 훨씬 빠르고 쉽다.
코드는 언제든지 재사용할 수 있고 유지보수 하기도 쉽다.
문서화하기도 쉽다.
이 외에도 수많은 장점이 있기 때문에 이제 IaC 는 선택이 아니라 필수이다.
Terraform by Hashicorp
테라폼은 인프라를 만들고, 변경하고, 기록하는 IaC 를 위해 만들어진 도구로써, 문법이 쉬워 비교적 다루기 쉽고 사용자가 매우 많아 참고할 수 있는 예제가 많다.
AWS, Azure, GCP 같은 퍼블릭 클라우드 뿐만이 아닌 다양한 서비스들 역시 지원한다.