학습 차원에서 틈틈이 해외 전문가들이 블로그나 미디어 그리고 책에서 쓴 글을 정리하고 있습니다. 이번 포스팅도 그중 하나고요. 거칠고 오역된 부분이 있을 수 있습니다. 제대로 번역되지 않은 부분은 확인 주시면 반영토록 하겠습니다. 이번 글은 미카 엽이 미디엄 베터 프로그래밍 블로그에 올린 글을 정리한 것입니다.
첫 번째는 도커였다. 그리고 나서는 마이크로서비스였다. 그 다음에는 쿠버네티스, 그리고 지금은 서버리스다.
서버는 목에 고통인가? 그런가? 웹 개발자가 SPA를 배치하기 위해 아파치 리눅스에 대해 배우고 싶은 것은 무엇인가? 그리고 이것은 단지 배치다. 유지관리는 다른 게임이다. 로드 밸런싱, 보안 패치, 언더 프로비저닝(under-provisioning), 오버 프로비저닝(over-provisioning), 이것들은 끊임없는 문제의 공급이다.
서버리스가 답인가?
서버리스 컴퓨팅은, 최근 몇년간 인기가 상승해왔다. 그러나, 서버리스는 얼마나 잘 문제를 실질적으로 해결하는가? 우선, 그것에 대해 정의해보자. 나의 언어로 말하자면 서버리스 컴퓨팅은 서버 기능성을 추상화한다. 이를 통해 개발자들은 서버 운영에 대해 걱정할 필요가 없다. 당신은 수작업으로 실제 서버를 사용하지 않고 사용한다. 기술적으로 보면이것은 말그대로 서버리스가 아니다. 당신은 단지 당신이 사용하는 서버에 대해 걱정할 필요가 없을 뿐이다. 당신은 코드를 제출한다. 그러면 공급 업체는 그것이 필요할 때 규모에 상관없이 돌아간다는 것을 보장할 것이다. 오토 스케일링과 서버 관리는 더 이상 당신의 관심사가 아니다.
표면적으로, 이것은 멋져 보인다. 당신은 단순히 어떤 코드를 짜서, 그것을 도커 이미지로 번들하고 그것을 AWS 람다나 구글 클라우드 런을 통해 서버리스 기능으로 배치한다. 클릭 몇 번으로 모든 걸 할 수 있다. 지저분한 설치는 없다. 리눅스 커맨드 라인도 없다. 당신이 걱정해야 할 것은 애플리케이션 코드를 짜는 것이다.
그러나, 여기에 나의 문제가 있다. 이것은 당초 문제를 사실상 해결하지 않는다. 기억하라. 문제는, 개발자들이 그들 코드를 배치하기 위해 서버를 관리하고 싶어 하지 않는다는 것이다. 그리고 서버 리스는 이것을 해결하는 것으로 여겨지고 있다. 이론적으로, 그럴 수 있다. 그러나 현실에서 서버리스 배치를 사용하는 개발자들은 거의 없다. 이것은 너무 겁이 나는 일이다.
예를 들어, 내가 내 트레이딩 봇 마이크로서비스를 위한 배치 옵션들을 살펴보고 있을 때, 나는 서버리스 열풍이라는 기차를 우연히 만났다. 당시 나는 이미 쿠버네티스를 설치하고 있었다. 쿠버네시트가 왕성하고 확장성 있는 앱을 위한 산업 표준임을 알았기 때문이다. 우버에게 충분한 것은 나에게도 충분하다. 그리고 일부 이유로, 서버리스는 보다 주눅 들게 하는 것처럼 보였다.
나도 마찬가지였다. 서버리스가 무엇을 의미하나? 서버가 없다? 도대체 어떻게 돌아가나? 그래서 그것을 그냥 두었다. 나는 서버리스가 너무 복잡하다고 생각했다. 현실에서 서버리스 배치는 매우 쉬울 수 있다. 아마도 쿠버네티스 클러스터보다 매우 쉽다. 농담이다. 이 반응에선 나는 혼자가 아니라고 생각한다. 서버리스는, 신규 진입자들에게는 겁나는 일이다. 이것은 아이러니다. 신규 진입자들은 서비리스로 인해 가장 혜택을 받을 것으로 여겨지는 사람들이기 때문이다.
내가 의미하는 것은 이들이 초보 프로그래밍 코스에서 서버리스에 대해 배워야 한다는 것이다. 이런식으로 배포하는 것은 매우 쉽다. 어떤 코드를 짜고 인터넷에서 포괄적인 도커 파일에 카피한다. 그리고 몇번 클릭으로 한 웹사이트를 통해 배치한다. 디지털오션 드롭릿(DigitalOcean Droplets)을 배치하는 것보다 훨씬 쉽다. 보다 유용한 것은 말할 것도 없다. 작은 서버리스 앱들을 애플리케이션을 쉽게 확장하기 위해 사용될 수 있기 때문이다.
이것이 서버리스의 문제다. 무섭다. 이것은 그것을 둘러싸고 있는 내용이다. 서버리스에 대해 말하는 사람들 대부분은 산업 컨퍼런스들에서 시니어급 데브옵스 종사자들이다. 이것은 서버리스가 거물들을 위한 첨단 개념이라는 가짜 이미지를 만들어낸다. 필연적으로 이것은 진실이 아니다. 아니면 이것은 적용의 문제다. 아마도 서버리스 솔루션들은 초보자들에게 보다 잘 마케팅 될 필요가 있다.
서버리스는 꽤 쿨하다. 나는 서버리스를 보다 많이 다룰 것이고 이 공간을 주목할 것이다. 느리지 만 확실하게 일부 클라우드 기능들은 내 프로덕션 봇들에 들어올 것이다. 그때 진정한 재미가 시작될 것이다.