가비아, 클라우드에 적합한 '데브옵스' 시스템 엔지니어 육성 중
[IT동아]
클라우드는 IT 분야는 물론 거의 모든 분야의 비즈니스 환경을 완전히 바꾸어놓았다. 기존의 프로세스가 자동화되고, 별도 운영되던 조직의 워크플로우도 통합됐다. 신상품 개발, 빌드부터 배포, 운영까지 속도가 빨라지면서, 결과적으로 클라우드는 IT 운영과 비즈니스에 놀라운 효율성과 생산성을 제공하고 있다.
IT 시스템 엔지니어는 단연, 이 변화의 중심에 있다. 국내 IT 인프라 기업인 가비아는 시스템 엔지니어 신입 지원자들에게, '인프라가 클라우드화, 자동화되어 가는 과정에서 엔지니어의 가장 큰 가치는 어디에 있는지'를 묻는다. 기존에는 개발자가 요청하는 서버를 제공하는 게 엔지니어의 주요한 역할이었는데, 지금의 클라우드 환경에서는 서버 생성과 삭제, 개발환경 구축 등을 모두 개발자가 직접 처리한다. 지금이야말로 시스템 엔지니어의 가치를 재정립할 시기다.
시스템 엔지니어 업무에 상당 부분을 차지하는 것은 서버 설정, 서버 환경 구축, 서버 하드웨어 장애 처리 등 엔지니어 실무 요소들이다. 그러나 클라우드 환경에서는 개발자가 마우스 클릭만으로 원하는 운영체제와 버전으로 자유롭게 서버를 만들 수 있으며, 클라우드 업체가 제공하는 솔루션이나 도커 컨테이너(Docker Container)를 통해 서버 환경과 서비스 환경도 원하는 대로 구축할 수 있다. 하드웨어 장애는 클라우드 서비스 제공업체가 담당하니, 사실상 엔지니어 업무의 상당 부분이 클라우드와 함께 사라진 셈이다. 이런 면에서 클라우드는 엔지니어의 위기처럼 보인다.
하지만 링크드인의 2018년 보고서에 따르면, 엔지니어링 분야에서 채용이 가장 많은 부분은 프론트엔드와 클라우드 아키텍트 분야로 나타나, 클라우드 환경에서 오히려 엔지니어의 수요가 높아지고 있음을 보여준다.
엔지니어 수요가 높아진 것은 클라우드 환경에서 데브옵스(DevOps) 조직의 가치가 향상한 것과 관계가 있다. 기업은 빠르게 변화하는 IT 환경에 대응하고, 운영의 효율성의 높이기 위해 개발(Development)과 운영(Operation)을 결합한 데브옵스 조직으로 빠르게 변화하고 있다. 데브옵스에서 엔지니어는 개발자와 연계해 신속한 서비스 출시를 돕는다.
데브옵스는 엔지니어에게 기회인 동시에 상당한 도전이다. 새로운 업무에 참여하며 기존과는 다른 지식과 스킬이 필요하기 때문이다. 위 가비아의 데브옵스 조직인 시스템개발실 내 엔지니어인 이지운 씨는, 현재 시스템 자동화 및 개발 작업에 엔지니어가 직접 참여하고 있으며, 그만큼 엔지니어에게 필요한 기술과 커뮤니케이션 능력의 기대치도 더욱 높아졌다고 말한다.
데브옵스에서 엔지니어는 애플리케이션 개발 단계를 자동화하여, 애플리케이션을 좀더 신속하게 고객에게 제공하는 CI/CD 활동에 참여한다. 또한 클라우드 서비스 업체가 제공하는 기능 활용이나, Docker, Ansible, Git, Mysql Group Replication 등의 트렌드 오픈소스 애플리케이션의 구축/관리, 문제해결(트러블슈팅) 등도 담당한다. 기존 역할이었던 안정적 시스템 운영은 기본이고, 프로세스 개선과 속도 향상이라는 또 다른 역할이 주어진 것이다.
가비아 시스템개발실 엔지니어의 경우, 운영 업무 외에 프로세스 개선과 새로운 기능을 개발하는 일에 최대한 참여한다. 이지운 씨는 서버 백업과 같은 반복 일정을 실행하는 크론(Cron, 예약) 스케줄러 통합 프로젝트를 맡아, 서버 별로 각각 운영되던 크론 스케줄을 모두 통합했다. 동일한 소스가 Git을 통해 호스팅 전체 서버에 배포되어 서버 운영 효율을 개선하는 성과를 냈다.
이 밖에도 DNS서버가 동작하는 오픈소스(Bind)를 최신 버전으로 업그레이드하고 동작 프로세스를 재설계함으로써, DNS서버에서 허용 가능한 질의 처리량을 기존보다 5배 이상 증가시켰다. 웹호스팅 서버를 통합 운영하고, 자동 세팅 스크립트를 모두 개편하여 원가절감과 함께 고객들에게 안정된 서비스 및 다양한 개발 환경을 제공하는 성과도 보였다.
이에 대해 시스템개발실 서광열 실장은 "프로세스 개선에 관한 모든 작업들은 엔지니어가 함께 참여하는 데브옵스가 아니면 진행이 어려운 것들이다. 시스템을 잘 이해하고 있는 엔지니어가 시스템에 필요한 개발까지 수행하면서 영역을 확장하고 있다"고 말했다.
시스템 엔지니어의 가장 큰 가치는 안정적인 시스템 운영에 있고 앞으로도 그럴 것이다. 현재의 엔지니어들은 시스템 전문가로서 개발에 참여하며,시스템의 더 많은 부분을 고려하여 개발 작업을 진행함으로써 운영 효율화와 서비스 품질 향상에 기여한다.
이전에는 안정성을 추구하는 엔지니어의 반대편에 새로움을 추구하는 개발 조직이 존재했다면, 이제 그 둘은 '새로운 시도를 빠르고 안전하게'라는 공통 목표를 갖게 됐다. 그 목표를 이행하는 과정에서 엔지니어의 가치는 새롭게 빛을 낼 수 있다.
글 / IT동아 이문규 (munch@itdonga.com)