2017.02.06

다가오는 서버리스 컴퓨팅의 미래와 주목해야 하는 이유

Peter Horadan | Network World
프로그래머가 하드웨어 확장에 대해 고민할 필요를 줄여주는 혁신적 애플리케이션 개발 패러다임인 ‘서버리스(Serverless) 컴퓨팅’이 이벤트 지향 프로그래밍의 빠른 부상을 이끌고 있다. 기업 조직은 이 패러다임이 비용을 대폭 줄이면서 애플리케이션을 최고 성능으로 운영하는 데 도움이 될지 지금부터 관심을 갖고 살펴봐야 한다.

소프트웨어 팀은 지난 10년 동안 데이터센터의 하드웨어를 직접 관리하는 방식에서 점점 벗어나 아마존 웹 서비스, 마이크로소프트 애저 등 IaaS 서비스 업체로부터 컴퓨팅 용량을 임대하는 방식을 도입해 왔다. 소프트웨어 팀이 직접 하드웨어를 관리해서 특별한 가치를 창출하는 경우는 거의 없으므로 전세계 소프트웨어 팀들은 차별화되지 않는 그 무거운 작업을 IaaS 업체에 맡기는 방법을 환영하며 받아들였다.

IaaS를 향한 첫 번째 추세는 데이터센터의 작업 방식을 클라우드에 그대로 복제하는 것이었다. 예를 들어 데이터센터에 10대의 시스템을 배치했던 팀이라면 IaaS에 10개의 VM을 만들고 각 서버를 하나씩 클라우드에 복사하는 식이다. 이 방법은 잘 통했지만 오래지 않아 업계는 단순히 하드웨어 관리 부담을 더는 것이 IaaS의 전부가 아니라는 점을 인식했다. 바로 IaaS는 근본적으로 다른 애플리케이션 구축 방법으로서 훨씬 더 큰 기회를 제공한다는 것이다.

서버리스 컴퓨팅은 이 과정에서 다음 단계에 해당한다. 서버리스 컴퓨팅에서 소프트웨어 팀은 가상 머신을 할당하고 거기에 코드를 배포하는 것이 아니라 그냥 기능을 업로드한다. 그러면 IaaS 업체가 알아서 기능을 배치하고 실행한다. 또한 IaaS 제공업체는 기능이 호출되는 빈도가 아무리 높더라도 기대 수준에 준해 작동하도록 인프라를 확장하는 일도 책임진다. 소프트웨어 팀은 코드를 작성해서 이를 IaaS 업체로 업로드하기만 하면 된다.

서버리스 컴퓨팅의 요점은 코드가 실행되는 시스템에 대한 생각을 완전히 접을 수 있게 해준다는 것이다. 피크 시간대에 몇 대의 가상머신이 필요한지, 이러한 시스템이 패치되었는지, 시스템에 적절한 보안 설정이 이루어졌는지 등에 대해 생각할 필요가 없다. IaaS 업체가 전체적인 하드웨어 운용을 책임지므로 소프트웨어 팀은 그냥 좋은 코드를 생산하는 데 온전히 집중하면 된다.

실질적인 예를 들자면, 사용자가 사진을 업로드해서 자동으로 적목을 제거할 수 있는 애플리케이션이 있다고 하자. 애플리케이션 팀이 자체 하드웨어를 관리한다. 이 애플리케이션 전용으로 할당된 서버의 수가 필요에 비해 지나치게 많고 업로드되는 사진의 수가 적다면 서버는 대부분의 시간을 유휴 상태로 보내게 되며 이는 자원 낭비가 된다. 반면 서버의 수가 필요에 비해 모자란 경우 사용량이 많은 시간대에 사용자는 상당한 지연을 경험하게 된다. 자동 스케일링 서비스를 이용할 수 있지만 이 경우 부가적인 관리 부담에 발생한다. 서버리스 컴퓨팅은 이러한 모든 골칫거리를 제거해준다.

소프트웨어 팀에게 서버리스 컴퓨팅은 하드웨어에 대해 생각할 필요를 없애줄 뿐만 아니라 비용도 대폭 절감시켜줄 수 있다. VM을 직접 관리하는 경우 시스템 용량은 거의 항상 과도하게 구성된다. 이는 직접 경비다. 또한 대부분의 IaaS 업체는 할인을 통해 “예약” 용량 구매 계약을 유도한다.

하드웨어를 관리하는 소프트웨어 팀에게 이는 달갑지 않은 부담이 된다. 하드웨어를 관리해야 할 뿐만 아니라, 내년에 필요할 용량이 어느 정도일지 도박에 가깝게 추측하고 IaaS 업체와 장기 계약을 맺어야 한다. 필요 용량을 초과 예상한 경우 사용되지도 않을 예약 용량을 구매하느라 비용을 낭비하게 된다. 너무 낮게 예상하면 처음 계약과 별개로 “정가”를 다 치르고 따로 용량을 구매해야 한다. IaaS 비용을 관리하는 사람들에게 이러한 재무적인 속임수는 익히 알려진 불편한 진실이다.

서버리스 컴퓨팅은 이러한 잔재주가 필요없도록 만들어 준다. 서버리스 환경에서 소프트웨어 팀은 그냥 코드를 업로드하면 되고 용량에 대해 미리 생각하거나 몇 년 단위의 서버 예약 계약을 맺을 필요도 없다.

이를 통해 상당한 비용 절감 효과를 거둘 수 있다. 필자가 직접 경험한 바에 따르면 예약된 VM 인스턴스 사용에 매월 5,000달러를 지출하다가 서버리스 컴퓨팅 모델을 도입해 월 200달러로 비용을 낮춘 프로젝트도 있었다.

비용 절감과 효율성 증대를 기대할 수 있는 또 다른 영역은 확장이다. 앞의 적목 제거 애플리케이션을 다시 보자. 표준적인 IaaS에서는 개발자가 애플리케이션을 코딩하고 로컬 컴퓨터에서 테스트하고 IaaS 업체에서 서버를 임대하고 서버에 모든 최신 패치가 적용되었는지 확인하고(지속적인 확인 필요) 그 다음 전략, 재무, 계약 측면에서 확장을 계획하기 시작한다. 서버리스 컴퓨팅에서는 업체가 API를 게시하면 개발자는 이 API를 통해 기능을 업로드하고, 모든 서버 유지보수와 확장은 업체가 처리한다. 이후 IaaS 업체는 사용자가 접근할 수 있는 URL을 제공한다. 그게 전부다.

서버리스 컴퓨팅은 간편함과 비용 절감 측면에서 이상적인 개발 환경이지만, 몇 가지 고려해야 할 중요한 사항이 있다. 첫째, IaaS 업체를 전적으로 신뢰해야 한다는 부분이다. 서버리스 컴퓨팅의 장점은 세부 사항에 일일이 신경을 쓸 필요가 없다는 것이다. 달리 말하면 세부 사항에 대해 아무것도 모르게 된다는 단점이 있다. 업체가 필요에 따라 성능 저하 없이 즉각 확장할 역량을 갖추었다고 믿을 수밖에 없다.

따라서 엔터프라이즈급의 저지연 고가용성 서비스를 제공하는 대부분의 조직은 아직 자체 서버를 관리하거나, 많이 나가봐야 IaaS의 서버를 예약하는 편을 더 선호한다. 요구 사항이 그다지 엄격하지 않은 애플리케이션에서는 서버리스 컴퓨팅은 이미 훌륭한 저비용 대안일 수 있다.

서버리스 컴퓨팅의 또 다른 제약은 여러 기능을 엮어야 하는 대규모 애플리케이션을 가진 기업에게 해당되는 데, IaaS 시스템에 이 많은 기능을 엮는 작업을 수행할 역량이 없다는 것이다. 각 기능이 개별적으로 업로드되므로 이러한 기능의 연계 동작은 소프트웨어 팀이 직접 관리해야 한다.

이는 동일한 실행 파일의 기능에 링크하는 것보다 훨씬 비효율적이다. 기능이 개별적으로 관리되고, 각 기능의 환경과 버전이 서로 다를 수 있으므로 테스트와 디버깅이 더 어렵다.

마지막으로, 현재 IaaS 서비스 업체들이 지원하는 프로그래밍 언어 종류가 매우 제한적이다. 따라서 기존 팀에 대한 부가적인 교육을 실시하거나 새로운 팀원을 확보해야 할 수 있다. 새로운 도구가 지속적으로 나오고 있으므로 이 문제는 곧 사라질 것으로 예상되지만, 적어도 지금 상태에서 서버리스 컴퓨팅에는 여전히 이와 같은 “부가적인 수고”가 좀 필요하다.

IaaS 업체들이 이러한 장애물을 극복하거나 없앨 때 서버리스 컴퓨팅의 도입 속도는 급격히 빨라질 가능성이 크다. 하드웨어 관리는 소프트웨어 팀이 직접 하는 것보다 IaaS 업체에 맡기는 편이 훨씬 더 낫다는 확신이 퍼져나가게 되면 궁극적으로 가장 미션 크리티걸한 워크로드도 이 환경으로 옮겨갈 것이다.

개발자가 인프라에 대해 걱정하는 시간을 줄이고 차별화된 기능을 구현하는 데 더 많은 시간을 투자할 수 있다는 것은 어느 기업에게나 이익이 된다. 짧은 시간 내에 적은 비용으로 아이디어를 상품화는 신생 기업이든 비용을 줄이고 민첩성을 높일 여지가 있는 기성 기업이든 “서버리스 컴퓨팅”은 머지 않아 그냥 “컴퓨팅”으로 통하게 될 것이다. 지금 태어나는 미래의 프로그래머는 “서버”라는 단어를 접할 일이 아예 없을지도 모를 일이다.

아발라라(Avalara)의 컴플라이언스 클라우드(Compliance Cloud) 플랫폼은 규모에 관계없이 모든 기업이 전세계 각국의 중앙 정부, 지방 정부 단체 및 기타 조세 기관이 시행하는 복잡하고 까다로운 납세 규정을 준수하도록 도움을 제공한다. 아발라라는 매년 수십억 건의 간접세 거래를 처리하고 수십만 건의 규정 서류와 소득 신고서를 제출하며 수백만 개의 면세 증서 및 기타 규정 준수 관련 서류를 관리한다.

*Peter Horadan은 아발라라(Avalara)의 CTO이다. 아발라라는 세금 관련 컴플라이언스 서비스인 의 컴플라이언스 클라우드(Compliance Cloud) 플랫폼을 제공하고 있다.  editor@itworld.co.kr

2017.02.06

다가오는 서버리스 컴퓨팅의 미래와 주목해야 하는 이유

Peter Horadan | Network World
프로그래머가 하드웨어 확장에 대해 고민할 필요를 줄여주는 혁신적 애플리케이션 개발 패러다임인 ‘서버리스(Serverless) 컴퓨팅’이 이벤트 지향 프로그래밍의 빠른 부상을 이끌고 있다. 기업 조직은 이 패러다임이 비용을 대폭 줄이면서 애플리케이션을 최고 성능으로 운영하는 데 도움이 될지 지금부터 관심을 갖고 살펴봐야 한다.

소프트웨어 팀은 지난 10년 동안 데이터센터의 하드웨어를 직접 관리하는 방식에서 점점 벗어나 아마존 웹 서비스, 마이크로소프트 애저 등 IaaS 서비스 업체로부터 컴퓨팅 용량을 임대하는 방식을 도입해 왔다. 소프트웨어 팀이 직접 하드웨어를 관리해서 특별한 가치를 창출하는 경우는 거의 없으므로 전세계 소프트웨어 팀들은 차별화되지 않는 그 무거운 작업을 IaaS 업체에 맡기는 방법을 환영하며 받아들였다.

IaaS를 향한 첫 번째 추세는 데이터센터의 작업 방식을 클라우드에 그대로 복제하는 것이었다. 예를 들어 데이터센터에 10대의 시스템을 배치했던 팀이라면 IaaS에 10개의 VM을 만들고 각 서버를 하나씩 클라우드에 복사하는 식이다. 이 방법은 잘 통했지만 오래지 않아 업계는 단순히 하드웨어 관리 부담을 더는 것이 IaaS의 전부가 아니라는 점을 인식했다. 바로 IaaS는 근본적으로 다른 애플리케이션 구축 방법으로서 훨씬 더 큰 기회를 제공한다는 것이다.

서버리스 컴퓨팅은 이 과정에서 다음 단계에 해당한다. 서버리스 컴퓨팅에서 소프트웨어 팀은 가상 머신을 할당하고 거기에 코드를 배포하는 것이 아니라 그냥 기능을 업로드한다. 그러면 IaaS 업체가 알아서 기능을 배치하고 실행한다. 또한 IaaS 제공업체는 기능이 호출되는 빈도가 아무리 높더라도 기대 수준에 준해 작동하도록 인프라를 확장하는 일도 책임진다. 소프트웨어 팀은 코드를 작성해서 이를 IaaS 업체로 업로드하기만 하면 된다.

서버리스 컴퓨팅의 요점은 코드가 실행되는 시스템에 대한 생각을 완전히 접을 수 있게 해준다는 것이다. 피크 시간대에 몇 대의 가상머신이 필요한지, 이러한 시스템이 패치되었는지, 시스템에 적절한 보안 설정이 이루어졌는지 등에 대해 생각할 필요가 없다. IaaS 업체가 전체적인 하드웨어 운용을 책임지므로 소프트웨어 팀은 그냥 좋은 코드를 생산하는 데 온전히 집중하면 된다.

실질적인 예를 들자면, 사용자가 사진을 업로드해서 자동으로 적목을 제거할 수 있는 애플리케이션이 있다고 하자. 애플리케이션 팀이 자체 하드웨어를 관리한다. 이 애플리케이션 전용으로 할당된 서버의 수가 필요에 비해 지나치게 많고 업로드되는 사진의 수가 적다면 서버는 대부분의 시간을 유휴 상태로 보내게 되며 이는 자원 낭비가 된다. 반면 서버의 수가 필요에 비해 모자란 경우 사용량이 많은 시간대에 사용자는 상당한 지연을 경험하게 된다. 자동 스케일링 서비스를 이용할 수 있지만 이 경우 부가적인 관리 부담에 발생한다. 서버리스 컴퓨팅은 이러한 모든 골칫거리를 제거해준다.

소프트웨어 팀에게 서버리스 컴퓨팅은 하드웨어에 대해 생각할 필요를 없애줄 뿐만 아니라 비용도 대폭 절감시켜줄 수 있다. VM을 직접 관리하는 경우 시스템 용량은 거의 항상 과도하게 구성된다. 이는 직접 경비다. 또한 대부분의 IaaS 업체는 할인을 통해 “예약” 용량 구매 계약을 유도한다.

하드웨어를 관리하는 소프트웨어 팀에게 이는 달갑지 않은 부담이 된다. 하드웨어를 관리해야 할 뿐만 아니라, 내년에 필요할 용량이 어느 정도일지 도박에 가깝게 추측하고 IaaS 업체와 장기 계약을 맺어야 한다. 필요 용량을 초과 예상한 경우 사용되지도 않을 예약 용량을 구매하느라 비용을 낭비하게 된다. 너무 낮게 예상하면 처음 계약과 별개로 “정가”를 다 치르고 따로 용량을 구매해야 한다. IaaS 비용을 관리하는 사람들에게 이러한 재무적인 속임수는 익히 알려진 불편한 진실이다.

서버리스 컴퓨팅은 이러한 잔재주가 필요없도록 만들어 준다. 서버리스 환경에서 소프트웨어 팀은 그냥 코드를 업로드하면 되고 용량에 대해 미리 생각하거나 몇 년 단위의 서버 예약 계약을 맺을 필요도 없다.

이를 통해 상당한 비용 절감 효과를 거둘 수 있다. 필자가 직접 경험한 바에 따르면 예약된 VM 인스턴스 사용에 매월 5,000달러를 지출하다가 서버리스 컴퓨팅 모델을 도입해 월 200달러로 비용을 낮춘 프로젝트도 있었다.

비용 절감과 효율성 증대를 기대할 수 있는 또 다른 영역은 확장이다. 앞의 적목 제거 애플리케이션을 다시 보자. 표준적인 IaaS에서는 개발자가 애플리케이션을 코딩하고 로컬 컴퓨터에서 테스트하고 IaaS 업체에서 서버를 임대하고 서버에 모든 최신 패치가 적용되었는지 확인하고(지속적인 확인 필요) 그 다음 전략, 재무, 계약 측면에서 확장을 계획하기 시작한다. 서버리스 컴퓨팅에서는 업체가 API를 게시하면 개발자는 이 API를 통해 기능을 업로드하고, 모든 서버 유지보수와 확장은 업체가 처리한다. 이후 IaaS 업체는 사용자가 접근할 수 있는 URL을 제공한다. 그게 전부다.

서버리스 컴퓨팅은 간편함과 비용 절감 측면에서 이상적인 개발 환경이지만, 몇 가지 고려해야 할 중요한 사항이 있다. 첫째, IaaS 업체를 전적으로 신뢰해야 한다는 부분이다. 서버리스 컴퓨팅의 장점은 세부 사항에 일일이 신경을 쓸 필요가 없다는 것이다. 달리 말하면 세부 사항에 대해 아무것도 모르게 된다는 단점이 있다. 업체가 필요에 따라 성능 저하 없이 즉각 확장할 역량을 갖추었다고 믿을 수밖에 없다.

따라서 엔터프라이즈급의 저지연 고가용성 서비스를 제공하는 대부분의 조직은 아직 자체 서버를 관리하거나, 많이 나가봐야 IaaS의 서버를 예약하는 편을 더 선호한다. 요구 사항이 그다지 엄격하지 않은 애플리케이션에서는 서버리스 컴퓨팅은 이미 훌륭한 저비용 대안일 수 있다.

서버리스 컴퓨팅의 또 다른 제약은 여러 기능을 엮어야 하는 대규모 애플리케이션을 가진 기업에게 해당되는 데, IaaS 시스템에 이 많은 기능을 엮는 작업을 수행할 역량이 없다는 것이다. 각 기능이 개별적으로 업로드되므로 이러한 기능의 연계 동작은 소프트웨어 팀이 직접 관리해야 한다.

이는 동일한 실행 파일의 기능에 링크하는 것보다 훨씬 비효율적이다. 기능이 개별적으로 관리되고, 각 기능의 환경과 버전이 서로 다를 수 있으므로 테스트와 디버깅이 더 어렵다.

마지막으로, 현재 IaaS 서비스 업체들이 지원하는 프로그래밍 언어 종류가 매우 제한적이다. 따라서 기존 팀에 대한 부가적인 교육을 실시하거나 새로운 팀원을 확보해야 할 수 있다. 새로운 도구가 지속적으로 나오고 있으므로 이 문제는 곧 사라질 것으로 예상되지만, 적어도 지금 상태에서 서버리스 컴퓨팅에는 여전히 이와 같은 “부가적인 수고”가 좀 필요하다.

IaaS 업체들이 이러한 장애물을 극복하거나 없앨 때 서버리스 컴퓨팅의 도입 속도는 급격히 빨라질 가능성이 크다. 하드웨어 관리는 소프트웨어 팀이 직접 하는 것보다 IaaS 업체에 맡기는 편이 훨씬 더 낫다는 확신이 퍼져나가게 되면 궁극적으로 가장 미션 크리티걸한 워크로드도 이 환경으로 옮겨갈 것이다.

개발자가 인프라에 대해 걱정하는 시간을 줄이고 차별화된 기능을 구현하는 데 더 많은 시간을 투자할 수 있다는 것은 어느 기업에게나 이익이 된다. 짧은 시간 내에 적은 비용으로 아이디어를 상품화는 신생 기업이든 비용을 줄이고 민첩성을 높일 여지가 있는 기성 기업이든 “서버리스 컴퓨팅”은 머지 않아 그냥 “컴퓨팅”으로 통하게 될 것이다. 지금 태어나는 미래의 프로그래머는 “서버”라는 단어를 접할 일이 아예 없을지도 모를 일이다.

아발라라(Avalara)의 컴플라이언스 클라우드(Compliance Cloud) 플랫폼은 규모에 관계없이 모든 기업이 전세계 각국의 중앙 정부, 지방 정부 단체 및 기타 조세 기관이 시행하는 복잡하고 까다로운 납세 규정을 준수하도록 도움을 제공한다. 아발라라는 매년 수십억 건의 간접세 거래를 처리하고 수십만 건의 규정 서류와 소득 신고서를 제출하며 수백만 개의 면세 증서 및 기타 규정 준수 관련 서류를 관리한다.

*Peter Horadan은 아발라라(Avalara)의 CTO이다. 아발라라는 세금 관련 컴플라이언스 서비스인 의 컴플라이언스 클라우드(Compliance Cloud) 플랫폼을 제공하고 있다.  editor@itworld.co.kr

X