YUDA't

(2018.11.22 작성한 글입니다.)


센스있는 제목이다.


미국의 클라우드 전환율은 5:5이나 우리나라는 이제 겨우 8:2에서 7:3으로 넘어가는 수준이라 한다.

그래도 스타트업의 경우 대부분 클라우드를 사용하는 듯 하고, 대기업에 다니는 친구의 말로는 대표가 요즘 AWS에 지대한 관심을 가지고 있다고.


사실 나도 3년 동안 Azure와 AWS를 써왔지만 클라우드의 정확한 개념은 아직도 모호하다.

그도 그럴 것이 "누군가와 클라우드 컴퓨팅에 대해 토의할 일이 있으면 시간의 80%를 그 사람이 생각하는 클라우드와, 내가 생각하는 클라우드를 비교하는데 쓴다"라는 말을 봤다.

마소 잡지의 한 기고자는 클라우드를 다음과 같이 정의했다.


"본인이 가지고 있지 않은 운용 및 개발자원을 '렌탈'하는 것"

"컴퓨팅 자원과 스토리지 자원을 중심으로 가상화해, 가상 네트워크로 연결한 서비스를 정해진 시간만큼 지불하고 사용하는 것"


꽤나 맘에 드는 설명이다. 누가 나한테 클라우드가 뭐냐고 물어보면 이렇게 답해야겠다.

무튼 다음은 내가 흥미롭게 읽은 주제들이다. (잡지를 요약한 건 아니고 그냥 따로 생각나거나 알게 된 것들을 적어놨다.)


# Docker

요즘 지속적으로 관심가지고 있는 주제다.

지금 회사에서 실서버와 테스트 서버 두어 개 정도를 각각 다른 EC2에 올려 사용 중인데 얼마 전 테스트 서버 하나를 새로 만들어서 고생한 적이 있는데 도커를 쓰면 환경 구성하는 게 훨씬 쉬워질 것 같다.

(가장 빨리 만나는 Docker라는 책이 있는데 작가가 원고를 다 공개해놨다.)


DEVOPS

우리나라는 약간 생소할 수도 있으나 링크드인을 봐도 해외 기업들은 DEVOPS를 채용하는 경우가 굉장히 많다.

단순히 Developer와 Operator를 합친 개념이 아니다. 개발팀이 운영까지 맡는 경우를 말하는 것도 아니다.

사실 내가 요약해 설명하기에는 좀 부족하다 느껴서 Atlassian이 설명한 DevOps를 가져와 봤다.

DevOps란 소프트웨어 개발팀과 IT팀이 더 빠르고 안정적으로 소프트웨어를 빌드, 테스트 및 릴리스할 수 있도록 두 팀 간의 프로세스를 자동화하는 일련의 과정입니다. DevOps의 개념은 지금까지 상대적으로 사일로된 환경에서 일해 온 팀 간에 협업 문화를 구축하는 것입니다. 이를 통해 깊은 신뢰감을 쌓고, 소프트웨어 릴리스 속도를 높이고, 크리티컬 이슈를 빠르게 해결하고, 미리 계획하지 않은 업무를 더 잘 관리할 수 있는 등의 혜택이 보장됩니다.

DevOps는 최고의 소프트웨어 개발과 IT 운영을 결합한 합성어로, Atlassian에서 '브란젤리나'(Brad Pitt와 Angelina Jolie의 합성어) 다음으로 가장 유명한 단어입니다. 그리고 '브란젤리나'와 마찬가지로 DevOps도 배경 설명이 필요합니다.

본질적으로 DevOps는 문화이자 운동이며 철학입니다.

DevOps는 사고방식의 변화, 협업 향상 및 긴밀한 통합을 강조하는, 개발팀 및 운영팀 간의 견고한 파트너십입니다. DevOps는 애자일, 지속적 배포, 자동화 등을 통합하며, 개발팀 및 운영팀이 더욱 효율적으로 작업하고 더 빠르게 혁신하며 기업과 고객을 대상으로 더 큰 가치를 제공할 수 있도록 돕습니다.


PaaS

저번 주 IBM Developer Day에 갔을 때 한 연사가 PaaS를 언급했다. 그때 PaaS가 뭔지 전혀 몰라서 그냥 그렇구나 했는데 마침 잡지에 한 꼭지로 등장해서 찾아봤다.

PaaS란 Platform as a Service의 약자로, 쉽게 말해 플랫폼을 빌려주는 클라우드 서비스다. 이 덕분에 다른 개념들도 알게 됐는데, 클라우드 서비스는 크게 Saas, Iaas, Paas 세 가지로 나뉜다고 한다.

Saas(Software as a Service)는 지메일, 드롭박스, 구글 드라이브 등 소프트웨어를 웹에서 쓸 수 있는 서비스, Iaas(Infrastracture as a Service)는 서버, 스토리지, 네트워크 등 컴퓨팅 인프라 장비를 빌려주는 서비스, Paas(Platform as a Service)는 언급한 대로 플랫폼을 빌려주는 서비스다.

Saas야 개발자가 아닌 사람들도 다 쓰는 거고, Iaas는 지금 AWS EC2, RDS 등을 사용해서 이해가 가지만, Paas는...? 한번도 써보지 않아서 어떤 건지 감이 잘 안 잡힌다. 보니까 대표적인 Paas로는 구글 앱 엔진이 있다고 한다. 마침 오늘 구글 클라우드에 계정을 만들었는데 시간 나면 한번 만들어봐야겠다.


마이크로서비스 아키텍처

3년 전쯤 AWS 컨퍼런스에 처음 갔었을 때 들었던 세션 중 하나가 이 마이크로서비스였다. 이전 회사 사수도 마이크로서비스를 강조했는데 문제는 우리 회사가 너무 작고 서비스도 거의 없어서 마이크로가 진짜 그냥 마이크로였다ㅋㅋㅋ

무튼 객체지향 프로그래밍이 떠오르는 꼭지였다.


플라스크

플라스크 간만에 보니 반가웠다. 이전 회사에서는 Django 대신 Flask를 썼었는데 이걸로 관리자용 페이지를 만들었었다.

그 후 2년 동안은 지금 회사에서 Django를 썼는데 비슷하겠거니 생각했다가 훨씬 무겁고 엄격해서 놀랐었다. 하라는 것도 많고 하지 말라는 것도 많고, app 하나 만들면 딸려오는 기본 파일면 5-6개고.

근데 1년 동안 Flask, 2년 동안 Django를 써본 결과... 난 Django 편이다ㅋㅋㅋ

하지만 초보자에게는 Django가 아무래도 좀 어려울 수 있어서 직관적이고 가벼운 Flask를 추천한다.

2/3 정도 읽었는데 흥미로웠던 주제는 이 정도다.




마침 이 잡지를 읽는 날, AWS 한국 네트워크에 큰 문제가 생겼다. DNS 관련 이슈로 도메인을 사용하는 서비스는 죄다 먹통이 된 듯한데, 이때문에 쿠팡이나 배달의 민족, 마켓 컬리 등 큰 사이트들이 다 멈추는 현상이 발생한 것이다.

페이스북을 보니 그냥 기다리는 회사도 있고, 리전을 옮겨 정상화한 곳도 있었다.


우리 회사는 godaddy에서 외부 DNS를 연결해 사용중이었기 때문에 이상이 없었다.

이게 참 클라우드의 단점을 극명하게 보여준 거 같아서 마냥 클라우드 찬양하기도 뭣해졌다. 클라우드 터진 사례들을 찾아보니 아주 없는 것도 아니었고, 특히 게임 서버의 경우는 사례가 꽤 많았다.

AWS나 GCP는 워낙 거대하니 문제도 적은 편이고 피드백도 빠르지만... 어쨌거나 멈추지 않았나.


물론 난 여전히 클라우드는 옳다는 입장이지만, 그동안 AWS를 상아탑처럼 생각하고 있었는데 이런 비상사태도 생각해봐야겠다.