불과 몇년 전부터 DevOps 는 IT 산업에서 유행 처럼 여기 저기에서 들리고 여러 사람들이 관련 컨텐츠를 두어번 읽어 보았을 것입니다.
그럼 DevOps 는 언제 처음 소개 되었을까? 문득 궁금해서셔 웹서핑을 하다보니
2009년 6월 O’Reilly 가 주관하는 Velocity 컨러런스에서 Flickr 의 엔지니어가 Dev vs Ops 주제로 프레젠테이션을 하였습니다.
핵심은 Dev 와 Ops 는 대립이 아닌 협력 관계라는것을 강조하였습니다.
그렇다면 왜? Dev 와 Ops 는 대립의 인식이 심어졌을까요? 특히 국내 공공 기관이나 앤터프라이즈 기업의 경우 더 심해 보입니다.
애플리케이션 서비스가 출시될 때까지 흐름을 한번 살펴 보면
- 개발팀의 개발코드가 패키징되어 운영팀에 전달 합니다.
여기서 변경된 부분을 이야기 하진 않죠. - 운영팀은 개발팀으로 부터 전달 받은 패키지를 론칭 합니다.
이 과정에서 서비스 장애 및 보안에 대한 문제를 간간히 경험 하니 전달 받기를 민감해 합니다.
그럼 서비스 출시를 위한 각 팀이 처한 상황은 어떨 까요
- 개발팀은 상품 서비스 가치를 위해 신규 기능 출시와 서비스 장애 발생시 빠른 대응 대한 압박이 있습니다.
이런 이유로, 개발팀은 더 빠른 패키징과 더 빠른 전달을 필요로 합니다. - 운영팀은 전달 받은 애플리케이션이 서비스 론칭을 위해 확실히 안전하게 동작 되는 보장이 필요 합니다.
역시 이런 사유로, 애플리케이션 기능, 보안, UAT 테스트 등 검증 프로세스가 점점 더 강화 하게 됩니다.
위 상황의 무한 반복은 각 팀이 처한 역할 중심의 대립으로인해 상황만 더 악화될 것 같습니다.
하지만, 잘 생각해 보면 혁신적인 기능을 통한 고객 서비스 제공과, 서비스 운용 환경이 안정적으로 이루어지길 원하는 것은 Dev 와 Ops 팀 모두의 공통 적인 목표 입니다.
DevOps 단어는 2009년 10월 devopsdays 2009
에서 처음으로 세상에 등장 하게 됩니다.
사실 이 당시의 발표 내용에서 하루에 10 번이나 배포를 왜? 라는 의견과 Dev 와 Ops 가 협력 문화가 가능 한가? 라는 현실적인 비판도 많았습니다.
당시 현실을 고려하면 합리적인 비판이라 생각됩니다.
그렇다면 10년이나 지난 최근에서야 DevOps 가 유행하는 이유는 무엇일까요?
이는 스마트폰의 등장으로 빠르고 다채로운 서비스 통합이 사용자 경험과 반응으로 이어지고 있기 때문입니다.
[사람 + 사람], [사람 + 기기] 의 다이내믹한 상호 작용으로 그 만큼 다양한 정보와 경험, 빠른 반응들은 IT 혁신을 가속 시키는 동력이 되었습니다.
수십억 인구와 수천억 디바이스들이 서로 상호 작용 하면서 만들어내는 데이터 양이 상상이 가나요?
그렇다면 현재 이것을 가능하게 한 기술은 또 무엇일까요?
저는 이것이 가능하게 된 핵심 기술로 SDN(Software Defined Networking) 이라고 단언 합니다.
SDN(Software Defined Networking) 은 말 그대로 Software 를 통해 네트워킹을 정의하는 기술 입니다.
SDN 통해서 Virtual Network Function, Hypervisor 와 같은 가상화 기술이 급속히 발전 되고 그 결과로 Virtual Networking, Virtual Computing, Virtual Storage 클라우드의 근본을 이루는 서비스들이 소프트웨어로 컨트롤 할 수 있게 되었습니다.
이 것이 하나의 뚜렷한 형상의 서비스로 탄생 되었는데 그 것이 바로 IaaS, PaaS, SaaS, FaaS 입니다.
클라우드에서 오퍼레이터의 서비스 론칭 업무가 과거에 비해 현재 어떻게 변화 되었는지 살펴 보자면,
- 과거에는 오퍼레이터가 직접 DataCenter 에 방문하여 별도의 Console 장비에 접속하여 네트워크를 구성 합니다.
(마치 컴퓨터의 CMOS 셋업을 하는 것처럼 말이죠) - 지금은 인터넷에 접속 하고 클라우드에서 제공하는 OpenAPI 를 통해 원하는 서비스를 쉽고 빠르게 구성 할 수 있습니다.
대표적인 CSP(Cloud Service Provider) 로 OpenStack, AWS, AZure, GCP, Alibaba 등이 있습니다.
현재 국내 CSP 벤더만을 비교 했을 때 NCP (Naver Cloud Platform) 가 40% 정도 점유하고 있네요.
이제는 개발자와 운영자 모두 서비스 운영에 필요한 모든 것
이 Software 로 가능해졌고 더 빠르고 신속하게 처리를 할 수 있게 되었습니다.
따라서 Dev 와 Ops 는 협력을 넘어 하나의 DevOps 프로세스를 발전할 수 있게 된 것입니다.
흐름을 이어서 4차 산업을 살고 있는 지금 시대에서 성공을 정의 하자면
사람들의 요구와 경험을 충족시키는 것
이고 IT 분야에서 우리가 할 수 있는 것은
비즈니스 모델을 현실화에 걸리는 시간을 줄이고 사람들의 반응에 대응 하며 서비스 가치를 지속적으로 더해 가는 것
이라 말할 수 있습니다.
한 마디로 애플리케이션 서비스 출시
와 이용자의 피드백
을 통해 성장하는 것입니다.
이 것을 가능하게 하는 조직 문화를 저는 DevOps
라고 주장 합니다.
그럼에도 지금의 대한민국 현실은 DevOps 가 멀리 있는 것 같습니다.
가장 큰 이유 2가지를 들자면 다음과 같습니다.
- 과거에서부터 현재까지 Dev 와 Ops 의 역할을 명확히 분리하여 업무를 진행해오던 방식 그대로를 따르려는 관습
- Dev 와 Ops 업무가 역할 기준으로 명확 하고 그에 따른 행정, 지원, 책임 및 범위를 결정하기 쉬움
사실 위의 2번째 이유는 현재 회사 고유의 프로세스를 쉽게 운영 및 유지하는데 장점이 너무나 많기에 선뜻 DevOps 로 전환하기란 큰 도전임을 인정하지 않을 수 없습니다.
그렇다고 기존 관습을 그대로 따라하다간, 지금 사람들의 다양한 요구와 경험을 충족시킬 수 없게되어 회사는 존립 자체가 어렵게 됩니다.
결론을 이렇게 맺고자 합니다.
DevOps 가 추구하는 목표은 서비스 가치를 중심에 두고
가장 효율화된 방법으로 서비스를 론칭 하고
사람들의 피드백을 모니터링
하며 지속적으로 개선하는 활동을 멈추지 않는 것
입니다.
즉, 4차 산업을 견인하는 핵심 Key 중 하나가 DevOps
입니다.
그리고 DevOps
를 위한 환경은 클라우드의 등장으로 이미 보편화 되었습니다. 이제는 사람이 바뀌어야 한다. 하고 말이죠.