ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 엔지니어는 왜 DevOps로 가야하는가?
    Editorial 2020. 5. 23. 15:11

    Why I should be going to be the DevOps?

    요즘 IT업계에서 엔지니어(=개발자)는 절대적인 품귀현상으로 발을 동동 구르고 있습니다. 게다가 실력이 뛰어난 인력을 찾기란 더더욱 힘듭니다. 어찌됐든 여기저기서 이야기하는 4차 산업혁명이 와있는 현실에서 신입이든 경력이든 엔지니어는 절대적으로 많이 필요하고, 엔지니어는 어떠한 방향으로 지향점을 둬야 하는가는 아주 중요한 부분입니다. 요즘은 개발만 잘해서 될 일이 아니라 네트워크같은 인프라 스트럭처도 잘알아야 하고 클라우드 환경도 이해하고 개발도 잘해야 하는 멀티플레이어가 되야 합니다. 그런 관점에서 직군별로 세분화된 영역이 점점 기술적인 환경 변화로 재조정이 이뤄지면서 DevOps라는 방향성이 제시되었습니다. 이것은 엔지니어가 커버해야 하는 영역이 넓어지는 것을 의미하며, 왜 엔지니어가 DevOps로 가야하는지 서술하고자 합니다.

     

    DevOps란 무엇인가?

     DevOps는 Development와 Operation을 합친 단어로 하나의 조직(팀)이 개발부터 운영까지 End-to-End를 커버해야 하는 것을 말합니다. 위키피디아에서는 데브옵스에 대해 개발과 운영을 통합해서 조직을 운영하는 문화라고 정의하고 있습니다. 정의에 대한 첫문장이 ‘문화’라고 못을 박는 이유가 있을 것입니다. 왜냐하면 한팀에서 개발과 운영을 동시에 하는 것은 전사 조직의 구조부터 시작해서 업무 Flow까지 전부 바꾸기 때문입니다. 그래서 방법론이 아니라 회사 구성원의 인식부터 바꿔야하고 조직의 구조를 바꾸는 엄청난 비용이 수반되는 문화의 혁신이기 때문입니다.
    SI 프로젝트처럼 개발하는 사람과 이후 운영 조직이 분리되는 것이 아닌 하나 또는 여러개의 시스템을 한팀에서 개발과 유지보수를 모두 책임지는 것을 말합니다. 많은 분들이 ‘이미 우리는 그렇게 하고 있는데?’라고 말씀하실 것입니다. 이미 많은 회사들이 DevOps로 운영하고 있습니다. 하지만 손바닥으로 하늘을 가릴 수 없듯이 전세계적으로 시선을 옮겨보면 그렇지 않은 회사들도 많을 것입니다.

    DevOps는 Agile하고 다른 건가요?

     제 생각에는 DevOps가 Agile보다 상위 개념이라고 생각합니다. 애자일은 조직의 운영보다 ‘개발을 어떻게 할 것인가’에 포커스를 맞춘 방법론입니다. 약간의 조직 개편이 필요하지만 일단 개발 조직에 한정해서 적용할 수 있는 방법론인 반면, DevOps는 문화적인 차원에서 접근하기 때문에 더 넓은 범위의 조직으로 확대해야 하고, 더 넓은 범위인 DevOps가 애자일과 병행할 수 있습니다. 쉽게 설명하자면 ‘문화적인 차원에서 팀이 개발과 운영을 같이 해야 한다. 그리고 개발+운영 업무를 애자일의 방법론인 스크린트 또는 칸반 방식으로 수행하자.’라고 정리할 수 있겠습니다. DevOps는 업무에 대한 영역을 이야기한다면, 애자일은 업무를 수행하는 방식을 이야기합니다. 그래서 두개는 엄밀히 이야기하면 다릅니다.

    엔지니어가 DevOps를 어떻게 받아들여야 하나요?

    엔지니어의 입장에서 보면 기술적으로 바뀌는 것은 보이지 않을 수 있습니다. 이것은 업무의 영역과 개개인의 사고의 문제라고 봅니다. 회사에 어떠한 문화가 정착되었느냐에 따라 엔지니어는 적응해야 하기 때문입니다. 물론 사내에서 문화를 개선하기 위한 피드백 채널에 열과 성의를 다해 의견을 주는 것도 포함입니다.
    하지만, 한가지 의문이 생깁니다. DevOps가 없던 개념도 아니고 왜 갑자기 주목을 받게 됐을까? 여러가지 원인이 있지만, 저는 클라우드(AWS, Azure등)이 등장을 주된 요인으로 생각합니다. 왜냐하면 클라우드에서 시스템을 운영하면 개발과 운영을 분리하기가 어렵기 때문입니다. 그래서 아마존등 클라우드 업체에서 DevOps에 대해 설명하는 메뉴를 가지고 있습니다. 클라우드 환경에서 DevOps를 얼마나 잘 운영할 수 있는지 어필하는 것이 목적입니다. 그런데 현실은 클라우드를 하다보니 DevOps로 자연스럽게 넘어갔다고 볼 수도 있습니다.

     

    클라우드가 보편화되면서 엔지니어의 업무 영역이 넓어지고 있다.

     AWS에서 시스템을 운영하고 있는 엔지니어라면 더욱더 와닿겠지만, 엔지니어가 네트워크부터 시작해서 EC2서버에 띄우는 어플리케이션까지 모두 핸들링할 수 있습니다. 그래서 클라우드 업체가 제공하는 모든 기능들을 세팅하고 사용할 수 있습니다. 이는 엔지니어가 과거에는 서버 운영이라는 직군의 업무까지 수행해야 함을 의미합니다. 물론 직군별로 가지고 있는 Specialty를 모두 갖춰야 한다는 의미는 아닙니다. 이러한 것들을 위해 클라우드 업체들은 시스템 운영을 위한 노하우와 복잡한 세팅을 엔지니어들이 간편하게 할 수 있도록 Commend, API와 Web UI를 제공합니다. 이는 깊게 알필요는 없지만 원하는 것을 세팅할 수준의 지식은 가져야 한다는 결론을 도출할 수 있습니다. (물론 깊게 알면 금상첨화죠.) 클라우드의 등장으로 IT업계의 직군의 구조가 바뀌었으니 시대의 흐름을 따르면서 개개인의 역량을 높이는데 힘써야 겠습니다.

    Conclusion

    이제는 엔지니어가 DevOps를 받아들이는 것이 선택이 아닌 필수가 되었습니다. 애자일이 유행할때는 선택할 수 있었습니다. 일하는 방식이야 이렇게 하든 저렇게 하든 산출물이 나온다는 대전제는 변하지 않았으니까요. 그런데 DevOps는 엔지니어가 시스템을 운영하는 패러다임을 바꾸지 않으면 자신이 도태될 수 있는 위기가 될 수 있어서 필수로 받아들어야할 문화로 접근해야 한다고 생각합니다.

    Thanks
    Hans

     

     

     

     

     

     

Designed by Tistory.