5일 전

개발자가 서버리스를 반기는 이유

BrandPost Sponsored by SK&IBM
SK | SK
ⓒGetty Image Bank

‘서버리스(Serverless)’. 개발자들이 추구하는 진정한 클라우드다. 물리적 인프라는 물론이고 요즘 유행하는 컨테이너도 신경 쓸 필요가 없다. 정말 코드만 잘 짜면 된다. 개발자는 자원을 어떻게 프로비져닝하고, 운영해야 할지 몰라도 된다. 개발자에게 서버리스는 일하는 방식을 180도 바꾸는 큰 변화다. 개발 과정이 엄청나게 간소화된다. 코드를 작성해 올리면 바로 서비스로 제공할 수 있다. 전통적인 애플리케이션 개발과 배포 과정은 길고 복잡하다. 테스트 환경 구축을 위한 자원을 확보한 다음 개발, 테스트 과정을 거치고, 검증을 마친 후 운영 환경에 배포한다. 새로운 기능이나 요구 사항을 반영해야 할 경우 이 과정을 반복해야 한다. 
 

개발자와 운영자 모두가 반기는 서비스 

반면에 서버리스는 다르다. 인프라의 개념 자체가 없다. 코드만 만들어 Cloud Z Action같이 클라우드 사업자가 제공하는 FaaS(Functions as a Service) 플랫폼에 올리면 된다. 배포에 걸리는 시간은 밀리 초 단위로 빠르다. 클라우드가 막 유행하던 시절 가상 서버를 이용하면 물리적으로 서버를 구축할 때와 달리 분 단위로 애플리케이션 운영 환경을 만들고 소프트웨어를 배포할 수 있다고 선전했다. 요즘 유행하는 컨테이너는 이 시간을 초 단위로 끌어 올려 광고한다. 서버리스는 자원을 확보하고 소프트웨어 운영을 위한 환경 조성할 필요 없이 프로그램 코드를 올려놓고 이를 호출해 사용하는 것이다 보니 코드를 업로드하는 순간 배포가 이루어지는 것이나 마찬가지다. 물론 몇 가지 설정할 것은 있지만 이 역시 매우 간단하다. 

서버리스는 IaaS, CaaS, PaaS와 비교할 때 요금 부담도 상대적으로 적다. 모든 클라우드 사업자가 호출당 비용을 받는데, 그 최소 단위가 매우 작다. Cloud Z Action의 경우 함수가 실행될 때 100밀리초, 1호출 단위로 과금이 발생한다. 실행하지 않을 때 과금을 하지 않는다. 또한, 각 사업자가 제공하는 할인 정책을 잘 활용하면 비용을 더 낮출 수 있다. 아무래도 분위기를 띄우는 시기다 보니 할인 정책 조건이 나쁘지 않다. Cloud Z Action을 예로 들면 100만 호출까지 무료이다. 

서버리스 환경에 코드를 배포한 다음 할 일은 모니터링인데, 필요에 따란 코드 단위로 하거나 전체를 대상으로 메모리 사용량이나 요청/응답 소요 시간을 확인할 수 있다. 

 
ⓒSK
 

개발자가 진정으로 집중해야 할 것 ‘비즈니스 로직’ 

전통적인 소프트웨어 개발, 배포, 운영 환경은 모놀리식(Monolithic) 구조를 띤다. 각각의 서비스는 개별적인 서버 자원 상에 운영체제, 데이터베이스, 미들웨어 등 서비스 운영을 위한 소프트웨어 환경이 꾸려진다. 보통 개발자는 서비스 개발과 테스트 환경을 직접 구축한다. 인프라팀에 요청해봐야 하세월이란 것을 잘 알다 보니 직접 하는 것을 선호하는 이들이 많다. 노트북을 보면 이게 서버인지 노트북인지 헛갈릴 정도로 개발자들은 스스로 챙기는 일들이 많다. 

이런 수고를 덜어주는 환경이 마이크로서비스 아키텍처(MSA)다. 컨테이너 플랫폼에 각 프로젝트에 맞는 소프트웨어 환경을 사전에 이미지로 만들어 놓고 간편하게 가져다 쓸 수 있게 하여 개발과 테스트 작업을 할 때 개발자가 인프라를 신경 쓸 필요 없게 해준다. 서버리스는 여기서 한발 더 나아간다. 컨테이너 조차 배우고 손에 익힐 필요 없다. 이런 이유로 서버리스 환경에서 개발자가 할 일은 비즈니스 로직에 집중하는 것이라고 말하는 것이다. 
 
ⓒSK
 

서버리스가 어울리는 분야 

서버리스가 모든 개발에 어울리는 것은 분명 아니다. 그렇다면 어떤 프로젝트에 서버리스를 적용하면 개발 생산성 극대화 효과를 온전히 누릴 수 있을까? 대략 다음과 같이 서버리스 환경이 어울리는 대상들을 꼽아 볼 수 있다. 
 
ⓒSK
 

몇 가지 예를 들어 보자. 쇼핑몰 사이트에서 실시간으로 정적 컨텐츠인 이미지를 생성하고 이를 사이트에 반영해야 한다고 해보자. 서버리스 환경에서는 애플리케이션 수정 없이 다음과 같이 이벤트가 발생할 때 컨텐츠를 생성하고 반영하는 기능을 간단히 구현해 배포할 수 있다. 다른 예로 IoT 기술이 반영된 스마트 공장에서 센서가 장애를 탐지했을 때 사람의 개입 없이 센서 이벤트를 처리하는 함수만 배포해 유지보수 업체에 지원 요청이 자동으로 가게 하는 시나리오도 생각해 볼 수 있다. 
 
ⓒSK

최근 5G 최초 상용화로 국내 통신 시장 분위기가 밝은데, 유무선 통신망 환경에서 IoT 백엔드 관련 서비스 개발에도 서버리스가 잘 어울린다. 컴퓨팅 자원이 부족한 소형 IoT 장치 관련 제어나 부가 기능을 넣고자 할 때 Cloud Z Action 같은 FaaS와 연계할 경우 기능 단위로 신속하게 개발과 배포를 할 수 있어 IoT 서비스 백엔드 운영을 매우 효율적으로 할 수 있다. 

한편 최근 모두의 관심사로 떠오르고 있는 인공 지능의 경우도 클라우드 사업자가 제공하는 음성 인식, 얼굴 인식 등에 대한 API와 연계해 간단하게 사용자 애플리케이션에 관련 기능을 배포할 수 있다. 
 
ⓒSK

살펴본 바와 같이 서버리스는 애플리케이션 개발, 배포, 운영 패러다임을 바꾸는 촉매다. 그렇다면 어떻게 시작해야 할까? 널리 알려진 사례와 예제 코드로 FaaS 플랫폼에 올려보고, 클라우드 사업자가 제공하는 다양한 편의 기능과 개발 환경을 손에 익히다 보면 자연스럽게 서버리스로의 전환이라는 여정에 오르게 될 것이다.


5일 전

개발자가 서버리스를 반기는 이유

BrandPost Sponsored by SK&IBM
SK | SK
ⓒGetty Image Bank

‘서버리스(Serverless)’. 개발자들이 추구하는 진정한 클라우드다. 물리적 인프라는 물론이고 요즘 유행하는 컨테이너도 신경 쓸 필요가 없다. 정말 코드만 잘 짜면 된다. 개발자는 자원을 어떻게 프로비져닝하고, 운영해야 할지 몰라도 된다. 개발자에게 서버리스는 일하는 방식을 180도 바꾸는 큰 변화다. 개발 과정이 엄청나게 간소화된다. 코드를 작성해 올리면 바로 서비스로 제공할 수 있다. 전통적인 애플리케이션 개발과 배포 과정은 길고 복잡하다. 테스트 환경 구축을 위한 자원을 확보한 다음 개발, 테스트 과정을 거치고, 검증을 마친 후 운영 환경에 배포한다. 새로운 기능이나 요구 사항을 반영해야 할 경우 이 과정을 반복해야 한다. 
 

개발자와 운영자 모두가 반기는 서비스 

반면에 서버리스는 다르다. 인프라의 개념 자체가 없다. 코드만 만들어 Cloud Z Action같이 클라우드 사업자가 제공하는 FaaS(Functions as a Service) 플랫폼에 올리면 된다. 배포에 걸리는 시간은 밀리 초 단위로 빠르다. 클라우드가 막 유행하던 시절 가상 서버를 이용하면 물리적으로 서버를 구축할 때와 달리 분 단위로 애플리케이션 운영 환경을 만들고 소프트웨어를 배포할 수 있다고 선전했다. 요즘 유행하는 컨테이너는 이 시간을 초 단위로 끌어 올려 광고한다. 서버리스는 자원을 확보하고 소프트웨어 운영을 위한 환경 조성할 필요 없이 프로그램 코드를 올려놓고 이를 호출해 사용하는 것이다 보니 코드를 업로드하는 순간 배포가 이루어지는 것이나 마찬가지다. 물론 몇 가지 설정할 것은 있지만 이 역시 매우 간단하다. 

서버리스는 IaaS, CaaS, PaaS와 비교할 때 요금 부담도 상대적으로 적다. 모든 클라우드 사업자가 호출당 비용을 받는데, 그 최소 단위가 매우 작다. Cloud Z Action의 경우 함수가 실행될 때 100밀리초, 1호출 단위로 과금이 발생한다. 실행하지 않을 때 과금을 하지 않는다. 또한, 각 사업자가 제공하는 할인 정책을 잘 활용하면 비용을 더 낮출 수 있다. 아무래도 분위기를 띄우는 시기다 보니 할인 정책 조건이 나쁘지 않다. Cloud Z Action을 예로 들면 100만 호출까지 무료이다. 

서버리스 환경에 코드를 배포한 다음 할 일은 모니터링인데, 필요에 따란 코드 단위로 하거나 전체를 대상으로 메모리 사용량이나 요청/응답 소요 시간을 확인할 수 있다. 

 
ⓒSK
 

개발자가 진정으로 집중해야 할 것 ‘비즈니스 로직’ 

전통적인 소프트웨어 개발, 배포, 운영 환경은 모놀리식(Monolithic) 구조를 띤다. 각각의 서비스는 개별적인 서버 자원 상에 운영체제, 데이터베이스, 미들웨어 등 서비스 운영을 위한 소프트웨어 환경이 꾸려진다. 보통 개발자는 서비스 개발과 테스트 환경을 직접 구축한다. 인프라팀에 요청해봐야 하세월이란 것을 잘 알다 보니 직접 하는 것을 선호하는 이들이 많다. 노트북을 보면 이게 서버인지 노트북인지 헛갈릴 정도로 개발자들은 스스로 챙기는 일들이 많다. 

이런 수고를 덜어주는 환경이 마이크로서비스 아키텍처(MSA)다. 컨테이너 플랫폼에 각 프로젝트에 맞는 소프트웨어 환경을 사전에 이미지로 만들어 놓고 간편하게 가져다 쓸 수 있게 하여 개발과 테스트 작업을 할 때 개발자가 인프라를 신경 쓸 필요 없게 해준다. 서버리스는 여기서 한발 더 나아간다. 컨테이너 조차 배우고 손에 익힐 필요 없다. 이런 이유로 서버리스 환경에서 개발자가 할 일은 비즈니스 로직에 집중하는 것이라고 말하는 것이다. 
 
ⓒSK
 

서버리스가 어울리는 분야 

서버리스가 모든 개발에 어울리는 것은 분명 아니다. 그렇다면 어떤 프로젝트에 서버리스를 적용하면 개발 생산성 극대화 효과를 온전히 누릴 수 있을까? 대략 다음과 같이 서버리스 환경이 어울리는 대상들을 꼽아 볼 수 있다. 
 
ⓒSK
 

몇 가지 예를 들어 보자. 쇼핑몰 사이트에서 실시간으로 정적 컨텐츠인 이미지를 생성하고 이를 사이트에 반영해야 한다고 해보자. 서버리스 환경에서는 애플리케이션 수정 없이 다음과 같이 이벤트가 발생할 때 컨텐츠를 생성하고 반영하는 기능을 간단히 구현해 배포할 수 있다. 다른 예로 IoT 기술이 반영된 스마트 공장에서 센서가 장애를 탐지했을 때 사람의 개입 없이 센서 이벤트를 처리하는 함수만 배포해 유지보수 업체에 지원 요청이 자동으로 가게 하는 시나리오도 생각해 볼 수 있다. 
 
ⓒSK

최근 5G 최초 상용화로 국내 통신 시장 분위기가 밝은데, 유무선 통신망 환경에서 IoT 백엔드 관련 서비스 개발에도 서버리스가 잘 어울린다. 컴퓨팅 자원이 부족한 소형 IoT 장치 관련 제어나 부가 기능을 넣고자 할 때 Cloud Z Action 같은 FaaS와 연계할 경우 기능 단위로 신속하게 개발과 배포를 할 수 있어 IoT 서비스 백엔드 운영을 매우 효율적으로 할 수 있다. 

한편 최근 모두의 관심사로 떠오르고 있는 인공 지능의 경우도 클라우드 사업자가 제공하는 음성 인식, 얼굴 인식 등에 대한 API와 연계해 간단하게 사용자 애플리케이션에 관련 기능을 배포할 수 있다. 
 
ⓒSK

살펴본 바와 같이 서버리스는 애플리케이션 개발, 배포, 운영 패러다임을 바꾸는 촉매다. 그렇다면 어떻게 시작해야 할까? 널리 알려진 사례와 예제 코드로 FaaS 플랫폼에 올려보고, 클라우드 사업자가 제공하는 다양한 편의 기능과 개발 환경을 손에 익히다 보면 자연스럽게 서버리스로의 전환이라는 여정에 오르게 될 것이다.


X