작업공간

10th Meet - 코독하구만 ( 서버리스 ) 본문

2021 하계 코독하구만

10th Meet - 코독하구만 ( 서버리스 )

씨코더 2021. 8. 3. 13:09

 

 

서비스 개발을 떠올리면

서비스 로직 뿐만 아니라 서버 구성, 관리 등 신경써야할 일들이 굉장히 많다.

 

 

 

 

 

 

서버리스란 서버에 대한 업무를 클라우드 제공업체 ( 대표적으로 amazon )가 담당하고

 

개발자는 서비스 ( 비즈니스 ) 로직만 담당하는 효율적인 개발 형태이다.

 

 

 

BaaS 와 FaaS

Backend as a Service - 다른 서비스와 액세스가 가능하도록 해준다. 데이터베이스도 제공해준다.

Function as a Service - 개발자는 사용자 정의 서버 측 로직을 작성할 수 있지만,

                                                이러한 로직은 클라우드 서비스 제공업체가 전체를 관리하는 컨테이너에서 구동된다.

                                                BaaS와 달리 FaaS는 사전 작성된 서비스 라이브러리에 의존하지 않고 사용자 정의 애플리케이션을

                                                생성하는 개발자에게 더 많은 제어 권한을 제공한다. 

 

장점

  • 서버리스 컴퓨팅은 개발자 생산성을 높이고 운영 비용을 줄일 수 있다. 서버 프로비저닝 및 관리와 같은 일상 업무의 부담을 줄여, 개발자가 애플리케이션에 더 많은 시간을 할애할 수 있다. 
  • 서버리스는 개발자가 프로비저닝하기 위한 작업에 필요한 인프라를 명시적으로 설명할 필요를 줄여줌으로써 DevOps 도입을 지원한다.  
  • 제3사 BaaS 오퍼링의 모든 구성 요소를 통합해 애플리케이션 개발을 더욱 간소화할 수도 있다.
  • 서버리스 모델에서 운영 비용이 낮아지는 이유는 항상 자체 서버를 실행하고 관리하는 대신 필요한 만큼 클라우드 기반 컴퓨팅 시간에 대해 비용을 지불하기 때문이다.

단점

  • 자체 서버를 실행하지 않거나 자체 서버측 로직을 제어하지 않는 데 따른 단점이 있다.
  • 클라우드 제공업체는 자사 구성 요소가 상호작용하는 방법을 엄격히 제한할 수 있어, 사용자 시스템의 유연성과 커스터마이징 수준에 영향을 주게 된다. BaaS 환경의 경우 개발자는 코드 제어 권한이 없는 서비스에 의존해야 할 수 있다.
  • IT 스택의 이러한 측면에 대한 제어 권한을 이전하면 벤더 종속성 문제도 발생할 수 있다. 제공업체를 변경하면 새로운 벤더 사양에 맞추기 위해 시스템을 업그레이드하는 비용이 발생할 수도 있다.