2019.06.19

IDG 블로그 | 서버리스가 전혀 맞지 않는 애플리케이션

David Linthicum | InfoWorld
간단히 말해 서버리스 시스템은 기업이 인프라 문제를 처리해야 하는 수고를 없애준다. 스토리지나 컴퓨트 서버의 프로비저닝과 운영을 신경 쓰지 않아도 된다.

실제로 서버리스 컴퓨팅을 “노옵스(No-Ops)”라고 부르는 경우도 많다. 하지만 실제로는 “알옵스(Reduced-Ops)이고, 혹자는 “썸옵스(Some-Ops)”라고 하기도 한다. 분명한 것은 서버리스의 목표가 단순성을 높이고 전혀 새로운 클라우드 기반 서버리스 애플리케이션의 구축과 배치를 훨씬 더 생산적이고 민첩하게 수행하는 것이다.
 
ⓒ GettyImagesBank

하지만 서버리스가 언제 어디에나 좋은 것은 아니다. 실제로 오랜 시간 억지로 적용하면 시험 운영보다 더 많은 오류가 발생하는 것으로 보인다. 서버리스는 특히 스테이트풀(Stateful) 애플리케이션에는 최악의 아이디어이다.

스테이트리스(Stateless) 애플리케이션은 모든 트랜잭션을 처음부터 완료된 것처럼 수행한다. 현재의 트랜잭션에 사용하는 이전에 저장된 정보 같은 것은 없다. 반대로 스테이트풀 애플리케이션은 한 세션의 동작으로부터 클라이언트 데이터를 저장해 다른 세션에 사용한다. 이렇게 저장된 데이터를 흔히 애플리케이션의 상태, 즉 스테이트(State)라고 부른다.

스테이트풀 애플리케이션이 서버리스에 맞지 않는 이유는 분명하다. 서버리스 애플리케이션은 여러 서비스, 즉 기능으로 구성되어 있는데, 이들 기능은 짧게 실행되고 스테이트가 없다. 전통적인 의미의 트랜잭션에 이를 적용하면, 서버리스 애플리케이션은 실행된 이후에는 아무 것도 유지하지 않는 것이다.

서버리스 시스템은 애플리케이션 개발과 배치에 이런 방식으로 접근한다. 특정 기능을 실행하는 데 필요한 자원만을 할당해 처리한 다음에는 자원을 다시 공유 풀에 반환한다.

서버리스 시스템과 서버리스 개발자 모두에게 상태를 유지하는 것은 너무나 복잡한 일이다. 이런 식으로 애플리케이션은 실행 서비스로 깔끔하게 나뉘어 있으며, 서로 간에 독립적이고 느슨하게 연결되어 있다.

서버리스 시스템 상에서 스테이트풀 애플리케이션을 구축하고 실행하는 비법도 있지만, 보통은 좋지 않은 생각이다. 서버리스 개발과 배치에 실패하는 경우를 보면, 대부분 스테이트풀 애플리케이션이란 정사각형 나사를 서버리스라는 둥근 구멍에 끼워 넣은 경우이다.  editor@itworld.co.kr


2019.06.19

IDG 블로그 | 서버리스가 전혀 맞지 않는 애플리케이션

David Linthicum | InfoWorld
간단히 말해 서버리스 시스템은 기업이 인프라 문제를 처리해야 하는 수고를 없애준다. 스토리지나 컴퓨트 서버의 프로비저닝과 운영을 신경 쓰지 않아도 된다.

실제로 서버리스 컴퓨팅을 “노옵스(No-Ops)”라고 부르는 경우도 많다. 하지만 실제로는 “알옵스(Reduced-Ops)이고, 혹자는 “썸옵스(Some-Ops)”라고 하기도 한다. 분명한 것은 서버리스의 목표가 단순성을 높이고 전혀 새로운 클라우드 기반 서버리스 애플리케이션의 구축과 배치를 훨씬 더 생산적이고 민첩하게 수행하는 것이다.
 
ⓒ GettyImagesBank

하지만 서버리스가 언제 어디에나 좋은 것은 아니다. 실제로 오랜 시간 억지로 적용하면 시험 운영보다 더 많은 오류가 발생하는 것으로 보인다. 서버리스는 특히 스테이트풀(Stateful) 애플리케이션에는 최악의 아이디어이다.

스테이트리스(Stateless) 애플리케이션은 모든 트랜잭션을 처음부터 완료된 것처럼 수행한다. 현재의 트랜잭션에 사용하는 이전에 저장된 정보 같은 것은 없다. 반대로 스테이트풀 애플리케이션은 한 세션의 동작으로부터 클라이언트 데이터를 저장해 다른 세션에 사용한다. 이렇게 저장된 데이터를 흔히 애플리케이션의 상태, 즉 스테이트(State)라고 부른다.

스테이트풀 애플리케이션이 서버리스에 맞지 않는 이유는 분명하다. 서버리스 애플리케이션은 여러 서비스, 즉 기능으로 구성되어 있는데, 이들 기능은 짧게 실행되고 스테이트가 없다. 전통적인 의미의 트랜잭션에 이를 적용하면, 서버리스 애플리케이션은 실행된 이후에는 아무 것도 유지하지 않는 것이다.

서버리스 시스템은 애플리케이션 개발과 배치에 이런 방식으로 접근한다. 특정 기능을 실행하는 데 필요한 자원만을 할당해 처리한 다음에는 자원을 다시 공유 풀에 반환한다.

서버리스 시스템과 서버리스 개발자 모두에게 상태를 유지하는 것은 너무나 복잡한 일이다. 이런 식으로 애플리케이션은 실행 서비스로 깔끔하게 나뉘어 있으며, 서로 간에 독립적이고 느슨하게 연결되어 있다.

서버리스 시스템 상에서 스테이트풀 애플리케이션을 구축하고 실행하는 비법도 있지만, 보통은 좋지 않은 생각이다. 서버리스 개발과 배치에 실패하는 경우를 보면, 대부분 스테이트풀 애플리케이션이란 정사각형 나사를 서버리스라는 둥근 구멍에 끼워 넣은 경우이다.  editor@itworld.co.kr


X