본문 바로가기
잡담/웹개발(SI) 일지

데브옵스(Devops) 란? 업무부터 장단점까지

by flatsun 2021. 4. 10.
반응형

데브옵스(DevOps)란

개발을 뜻하는 Develop

운영을 뜻하는 Operation을

합친 단어를 말하는데

 

인터넷에서 찾아보다 보면 대부분의 글에서

모호하게 설명을 하는 관계로

얘기를 듣고도 감이 오지 않을 수 있는데

 

영어 단어에 이미 뜻이 나와 있다

프로그래머가 개발과 운영을 동시에 한다는 말이다

 

대부분의 프로그래머는

개발팀 / 운영팀으로 나뉘어져 업무를 하게 되는데

개발팀은 신규 요건을 개발하는 업무가 주력이고

 

운영 팀은 개발팀이 개발한 소스를 가지고 배포하고

버그, 에러를 고치거나 모니터링을 통해

발생할 수 있는 에러, 퍼포먼스 개선 등을 담당하게 된다

 

근데 데브옵스 개발자의 경우에는

본인이 개발하고 배포하고 에러도 잡고

버그도 고치고 모니터링도 하고

북치고 장구치고 다 한다는 말이다

 

데브옵스 개발자의 경우에

요구하는 스펙이

프론트인 자바스크립트, 뷰(Vue), 리액트(React)도 요구하고

백엔드인 자바, 오라클(DB), 스프링부트(SpringBoot)

도 요구하는 데다

 

GIT, 젠킨스(Jenkins), AWS, OS, Docker

여기에 각종 모니터링 프로그램 대한 지식도 요구한다

 

개발팀은 프론트 / 백엔드만 알면 되고

운영팀은 개발보다는

배포/유지보수/모니터링 지식이 더 많이 필요한데

 

두 기술을 모두 요구한다는 건

둘 다 나한테 시킬거라 요구하는 거다

 

결국 데브옵스가

개발과 운영을 동시에 하기 때문에

개발과 운영의 장점/단점을 그대로 가져가는데

 

먼저 개발의 경우에는 정해진 기간 안에

정해진 내용으로 개발만 해 놓으면 그걸로 끝이기 때문에

 

내가 설계를 잘못해서 개발을 했다고 해도

코드를 넘겨버리고 나면

나중에 에러가 나건 버그가 나건 핵이 폭발하건

운영이 해결할 문제지 나랑은 상관이 없다는 거다

 

반면 정해진 기간 안에 개발을 하지 못하면

몸을 갈아서라도 만들어야 하기 때문에

일정이 밀리기 시작하면

마감 전날까지 무한야근 모드로 들어가게 되고

 

기본적으로 일정은 빡빡하게 짜여져 있는 경우가 더 많아서

여유롭게 일정 내에 끝낼 확률보다

코드 개같이 짜서 일정을 가까스로 맞출 확률이 더 높다

 

결국 개발의 경우에는 위와 같이

일정에 죽고 사는 것을 볼 수 있는데

 

반면 운영의 경우에는

개발이 넘긴 코드를 가지고 기존 소스에 붙인 뒤 배포해서

에러나 버그 나면 고치고

현업이 이거 안되는데/안맞는데 왜 이러는거죠

이러면 노트북 망치로 부숴서 버린 뒤에

컴퓨터 쓰지 말고 종이에 수기로 작성해서 해결하세요

 

이럴 수는 없으니 뭐 하나 물어보면

전체 시스템을 다 들여다보고 있어야 한다

근데 업무 파악도 못한 상태에서 이러고 있을라면

그냥 하루종일 봐도 못찾는거다

 

여기에 운영/모니터링의 경우에는

초기에 개발팀이 준 코드가 일정에 부랴부랴 맞춘

쓰레기 코드가 수두룩 하기 때문에

넘겨받는 순간부터 개발자들은

이건 이제부터 니꺼야 이러면서 도망가고

 

에러는 속출하면서 코드 개같이 짰네

이런 1발 이러면서 코드를 열심히 고치다 보면

(얄궃게도 고쳐야 할 에러는 꼭 퇴근 1시간 전에 나오고

1시간 안에는 고칠 수 없는 에러가 많다)

 

어느 순간부터 안정화가 되면서

딱히 에러는 나오지 않으니 모니터링 할 필요도 없고

보고서는 대충 이상없음 이러고 밀어버리게 되고

현업이 뭐 물어보는 경우도 크게 줄어들기 때문에

 

일이 매우 편해지면서 편한 운영팀의 특징인

자리에 앉아있는 사람이 없는 현상이 발생하게 된다

(주로 카페 가거나 담배/쇼핑/산책가서 안옴)

 

그나마 자리에 앉아있으면

핸드폰에 항상 불이 들어와 있는

월급 탈취 최적화 모드에 들어가게 되는데

 

이게 기업이 알다시피

사람 굴리는데 최적화 되어있기 때문에

 

좀 논다 싶으면 또 개발건 몽땅 넘겨줘서

1발 이거면서 에러나 고치고 있고

슬슬 퇴근할라고 짐싸는데

누가 채팅으로 이거 안되는데 급한데 어캬죠 ㅠㅠ

이러면 그냥 뒷목 잡는거다

하지만 이런 것이 운영의 숙명이다

 

그래도 핵심은 계속 오류를 쳐 나가면서 안정화가 되면

극도로 편해지게 된다는 특징이 있다

 

이제 데브옵스로 넘어와 보자면

개발과 운영의 장단점을 동시에 가져오는데

 

일정 간격으로 개발 계획이 계속 짜여있기 때문에

쉴 틈도 없이 그냥 무한하게 개발을 해줘야 한다

여기에 일정 쪼들려서 개발하느라 바쁜데

 

채팅으로 이거 안되는데 어카죠 ㅠㅠ

이러면 답이 안나온다

시스템 파악하느라 시간 왕창 버리고

개발은 또 개발대로 해야되지만

 

돈은 2배가 아닌 1배로 준다는 특징이 있다

 

이거 뭐 단점만 있는거 아닌가 싶겠지만

 

장점의 경우에는 개발과 운영을 동시에 하는 것은

엄청난 시간이 필요한 일이기 때문에

 

개발 일정 자체를 여유롭게 잡아주며

일정내에 못하겠소 밀어주시오 이러면

쿨하게 밀어주는 경우도 많다

여기에 현업은 개발 지식이 없는 경우가 많아

얼마나 걸릴지 정확히 모르고 경험으로만 알기 때문에

 

이래서 못하고 저래서 못하고

이러면서 말만 잘하면 하루면 끝날거

한주 걸린다고 구라치는 것도 먹힌다

 

이러면 일은 하루만에 끝내고

모니터링 한다고 프로그램 하나 켜놓고

폰이나 만지면서 퇴근해도 된다는 특징이 있다

 

이게 다른 분야의 개발자들도 다 마찬가지겠지만

데브옵스 개발자의 경우에는

본인의 처신이 가장 중요하다

 

어차피 일 죽어라 해봤자 돈을 더 주는것이 아니기 때문에

항상 일정을 여유있게 잡고(구라 잘쳐야됨)

이미 끝낸 업무를 아직 다 못했다고 은폐하면

노예처럼 죽어라 일하면서도

돈은 똑같이 받는 현상을 피하고

 

개발과 운영의 장점을 동시에 가져가면서

단점은 최소화 할 수 있게 된다

반응형

댓글