brunch

You can make anything
by writing

C.S.Lewis

by 안영회 습작 Feb 01. 2023

Cloud Native가 무슨 말인가?

베터코드 인사이트의 시작 14편

링크드인 친구 형태로 구독하는 bytebytego에 눈길을 끄는 이미지가 올라왔다.

이거 완전히 데브옵스잖아?

외주 개발 일을 하는 후배가 발주처에서 운영과 동시에 개발 프로젝트를 요청한 상황을 말하면서 '데브옵스'라는 말을 했다. 뜻은 통했지만, 데브옵스 의미가 10년 사이에 꽤 달라졌다는 생각이 들었다. 링크드인 통지로 이미지를 볼 때도 후배가 말한 맥락의 DevOps가 등장해 눈길이 갔다.


글을 쓰기로 한 김에 위키피디아 정의를 찾아본다.

DevOps is a methodology in the software development and IT industry. Used as a set of practices and tools, DevOps integrates and automates the work of software development (Dev) and IT operations (Ops) as a means for improving and shortening the systems development life cycle. DevOps is complementary to agile software development; several DevOps aspects came from the agile way of working.

개발 주기 혹은 배포 주기를 짧게 가져가는 방법으로 애자일 소프트웨어 개발의 보완책이라고 정의한다. 이미지 하단에 출처를 보니 오라클의 웹 문서였다.


클라우드 네이티브 앱의 이점

어떤 내용이 더 있을까 호기심에 오라클 문서를 찾아보니 협력하는 역할자를 추가한 DevOps 아이콘을 빼면, 불필요한 도식이 없는 원래 그림이 더 나은 듯하다.

문서를 쭉 훑어보는데, 클라우드 네이티브 앱의 이점(Benefits of a cloud native application)을 명시한 곳을 보면 마치 20년 전 Sun의 J2EE 페이지를 보는 듯하다. 그들이 영업하던 방식이 유산으로 이어지는 것으로 짐작할 수 있다. 이후에 구글링을 통해 같은 제목(What Is Cloud Native?)의 아마존 웹 페이지도 보았는데 비슷한 인상을 제공한다.


문서를 대충 훑어보며 제 입장에서 이점이라고 여겨지는 내용은 Cloud native architecture 링크를 통해 접할 수 있는 다른 페이지에 있었다. Cloud Native의 이점은 기존과는 다른 아키텍처를 구성할 수 있다는 데 있을 것이다.


박스의 군집이 아니라 응용의 집적

Cloud Native 환경이나 산업 진영은 아직 초기라고 할 수 있다. 그래서 우리가 여기에 합류하는 상황을 고려하려면 당연하게도 상상이 필요하다. 상상에 필요한 가정을 아래 그림을 이용해서 만들어보자.

글자를 보지 않고 멀리서 조망해 보면 큰 그림이 보인다. 응용 프로그램 즉 앱들이 집적되어 있다. Cloud Native는 앱들의 집적을 자극한다.  무슨 말인지 이해하려면 업계의 발전 양상에 대한 배경 지식이 조금 필요하다. 한때 콘솔리데이션(consolidation)이나 코로케이션이 유행하던 때가 있었다. 데이터센터가 등장하던 때다. 물리적인 투자를 상쇄할 수 있는 규모의 경제 실현 방법이다. 부동산, 전력, 하드웨어 가격 등을 상쇄하려면 최대한 많은 응용 프로그램들을 유치해야 했다.


그런데 가상 머신의 시대가 오면서 급속도로 변화가 왔다.[1] 다시 위 그림을 보자. 우리가 흔히 '~시스템' 이라고 부르는 프로그램을 어떻게 찾을 수 있는가? 우리가 흔히 '마이크로 서비스' 혹은 'MSA'라고 부르는 명칭은 프로그램의 구동 방식이 네트워크 위에서 분산된 형태로 구동된다는 뜻이다. 종전보다 작아진 데에서 '마이크로'라는 표현을 쓰며, 소프트웨어 공학 개념으로 말하면 하나의 모듈 형태다.


자, 이렇게 기술 환경이 바뀌면 규모의 경제를 실현하는 방법도 달라진다. 두 개의 차원이 별도로 만들어진다. 일단 데이터센터는 인프라 수준에서 규모의 경제를 실현하는 방법으로 서로 경쟁해야 한다. 여러분이 우리 회사처럼 응용 프로그램 개발에 관심이 있다면 Cloud Native 환경에서는 응용의 집적에 대해 관심을 가질 필요가 있다.


맺음말

이미지를 보며 간단히 던진 질문인데, Cloud Native라는 주제를 따라가 보니 흥미가 생겨서 다음 글로 연재하기로 한다.



주석

[1] 너무나 빠른 기술 변화를 따라가느라 힘들어하는 기업이 도처에 있다. 어떤 대기업은 데이터센터 구축과 클라우드 이전을 동시에 하는 해프닝도 벌어진다.


지난 베터코드 인사이트의 시작 연재

1. 추적성(Traceability)과 그 쓰임새

2. 베터 어드민의 아기 발걸음 그리고 작명

3. Funnel을 마케팅 말고 engagement 분석에?

4. 디지털 대전환기란 나에게 무엇인가?

5. 기술 부채는 무엇인가?

6. 폭포수 방식 설계는 기술 부채를 남긴다

7. 기술 부채는 낮은 코드 품질에 대한 것이 아니다

8. loosely-coupled: 빠르게 재구성하는 힘

9. 건강한 조직이 만들어지는 배경

10. 구축 사업 관리에 가려진 기술 부채

11. 기술은 쓰임새(use case)에 따라 고르고 조합한다

12. Ubiquitous Language 만들 결심

13. 회사 대표가 엔지니어에게 충분한 권한을 주는가?

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