brunch

You can make anything
by writing

C.S.Lewis

by Devlift Jan 10. 2023

DevOps 의 역할과 필요성

스타트업 전문 DevOps/SRE 컨설팅 및 교육 서비스를 제공하는 Devlift 입니다. 저희는 싱가포르와 한국에서 근무하는 DevOps/SRE 현직자로 이뤄져 있는 팀입니다.


Devlift에서 발신하는 컨텐츠에 관심이 있으신 분들은 링크 통해서 이메일 남겨주시면 주기적으로 다양한 DevOps/SRE 컨텐츠 및 강의 할인 정보 등을 전달해드릴게요.





DevOps(데브옵스) 라는 말을 들어보셨나요? Development 와 Operation 을 합친 단어인데요.

말 그대로 개발과 운영, 두 영역의 사이에 필요한 다양한 역할을 말하며,

특히 개발자의 생산성 향상에 초점을 맞춘 업무들이 주를 이룬다고 보시면 될 것 같아요.


이러한 DevOps 에 대한 관심은 수 년 전부터 계속 커져가고 있는데요.

그렇다면 DevOps 엔지니어는 어떤 일을 하고, 어떤 과정을 통해 될 수 있는지 알아보도록 하겠습니다.



[DevOps 엔지니어가 하는 일]


위에서 말씀 드린 것처럼 DevOps 업무는 개발자 생산성 향상에 관련된 다양한 업무들을 합니다.

기본적으로 인프라 관리에서부터 CI/CD 구성, 모니터링, 각종 자동화 업무 등이 이에 해당됩니다.

거기에 더불어 부하테스트, 간단한 툴 개발 등도 포함해서 정말 다양한 영역의 업무를 하게 되죠.


먼저 인프라 관리에 대해 살펴 보면, 최근 클라우드 인프라의 사용이 올라가면서 AWS, GCP 등에 대한 관심도가 높아졌고, 그러한 인프라를 생성하고 관리하는 역할이 필요해졌습니다. 물론 작은 규모의 회사에서는 인프라 규모도 작기 때문에 서버 개발자가 개발을 하면서 인프라 관리를 겸임하는 경우가 대부분입니다. 하지만 회사의 규모가 커질수록 인프라 관리에 대한 니즈가 생기고, 그것을 전문적으로 하는 포지션이 필요하게 되었습니다. 즉 개발자는 개발에만 집중하고, 인프라는 DevOps 엔지니어가 맡게 되었죠.

여기에서 더 나아가 Infrastructure as Code (IaC) 에 대한 기술이 발전하여 Terraform 등 다양한 툴을 이용해서 더욱 전문적이고 정확한 인프라 관리가 가능하게 되었습니다.


또한 CI/CD 파이프라인을 구성해서 개발자가 개발한 애플리케이션을 다양한 환경에 쉽고 빠르게 배포할 수 있는 환경을 구성합니다. 그리고 다양한 배포 전략을 통해 각자의 조직에 적절한 배포 문화와 프로세스를 구축하는 업무를 하게 됩니다. 기존에 단순히 배포 스크립트를 돌려서 서버에 배포하는 방식을 벗어나, Github Actions, AWS CodePipeline, Jenkins 등 다양한 툴을 활용해서 배포 파이프라인을 구성하고, 더 빠르고 많은 배포를 위해 항상 고민하게 됩니다. 이 또한 개발자는 기능 개발에만 충실하도록 하여 개발자의 생산성을 높이는 방법이죠.


DevOps 엔지니어는 이렇게 배포된 서비스가 정상적으로 잘 동작하는지, 문제는 없는지 등을 모니터링하는 역할도 담당하는데요. 다양한 모니터링 툴을 이용하여 인프라의 메트릭과 애플리케이션의 로그 등을 확인하고 적절한 알림을 설정하여 전달하는 업무를 합니다. 특히 서비스 장애 발생 시에 인프라에 어떤 이상이 있는지 등을 확인해서 빠르게 처리하고, 같은 문제가 재발되지 않도록 미리 예방하는 역할을 합니다.



[다양한 DevOps 커리어]


이렇게 DevOps 엔지니어는 다양한 업무를 하게 되는데요. 하지만 여기서 각 분야의 전문가가 되기 위한 다음 단계의 커리어가 있습니다. 회사의 DevOps 조직이 커지게 될수록 업무의 역할이 나뉘는 편인데, 1) CI/CD 를 통한 배포 자동화를 전문적으로 하는 DevOps, 2) 서비스 모니터링과 장애 대응을 주로 맡는 SRE, 그리고 3) 계정생성, VPN 관리 등 운영업무를 하는 SysAdmin 등의 형태로 구성됩니다. 

물론 모두 DevOps 에서 파생된 포지션이라 칼같이 구분할 수 없고 서로 어느 정도 연관성이 있는 업무를 하지만, 조금 더 전문적으로 특정 분야에 대한 이해도와 지식을 높이고 더욱 성장하기 위해 이러한 구분을 하게 됩니다.


물론 처음부터 이렇게 역할이 나뉘어진 조직에 들어가지 않는다면 이런 다양한 업무를 다 겪고나서 선택하게 될텐데, 당연한 말이지만 자신에게 잘 맡고 관심있는 커리어를 선택하는 것이 좋습니다.



[DevOps 엔지니어가 되는 방법]


DevOps 엔지니어는 정말 다양한 업무를 맡고 있습니다. 그렇다고 이 모든 것을 처음부터 모두 할 수 있는 것은 거의 불가능하죠. 하지만 각 분야를 하나씩 하다보면 어느새 DevOps 엔지니어가 되어 있을 거에요.


먼저 인프라와 관련된 지식을 쌓은 게 중요합니다. 특히 요즘 많이 사용하는 퍼블릭 클라우드인 AWS, GCP 등에 대한 이해도를 높이는 것이 필요합니다. 그리고 Terraform 등 IaC 를 통해 이러한 인프라를 관리할 수 있다면 더욱 강력한 무기를 갖게 되겠죠. 저희 Devlift 에서도 Terraform 강의를 준비해두었으니 관심있으면 공부해보세요.


CI/CD 파이프라인 구성과 모니터링 또한 현재 회사 혹은 개인 프로젝트를 기반으로 구성해보면서 효율적인 업무를 위해 어떤 일을 할 수 있는지 느껴보는 것이 좋습니다. DevOps 엔지니어의 역할은 현실에 안주하지 않고, 반복적이고 귀찮은 업무를 간결한 프로세스로 만드는 것이니까요.



이제 다들 DevOps 엔지니어가 될 준비가 되셨나요? 

지금 당장은 '그게 왜 필요해?' 라고 하실지도 모르겠습니다. 하지만 언젠가는, 그리고 조만간 그 필요성을 반드시 느끼게 되실 것입니다. 미리 준비하셔서 DevOps 의 세계에 남들보다 먼저 빠져보세요! 


작가의 이전글 Infrastructure as Code 의 세계

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari