기본 콘텐츠로 건너뛰기

서버리스란 무엇인가?

서버리스란 무엇인가?

말 그대로 서버가 없는것이 아니라 인프라 엔지니어나 개발자가 관리하는 서버가 없다는 뜻으로 해석을 하면 편함

  1. 사용자는 클라우드 서비스 공급자가 제공한 주소로 요청을 전송
  2. 클라우드 서비스는 메시지를 기반으로 요청에 응답하는 데 사용할 패키지를 찾음
  3. 패키지가 선택되면 패키지를 실행할 도커 컨테이너로 로드한다
  4. 도커 컨테이너가 실행되고 요청이 처리
  5. 생성된 응답을 요청한 사용자에게 전송

클라우드 서버리스 서비스로는 BaaS(Backend as a Service) , FaaS(Function as a Service) 등이 있고 대표적으로 Firebase, AWS Lamda , Azure Functions, Google Cloud Functions 등이 있음

해당 서비스들은 도커 컨테이너가 실행되고 해당 함수 안에 정의된 프로세스를 완료한 시간(초) 만큼 과금이 부여됨

기존 IaaS 등 유휴 서버에 대해서 비용을 지불하는 과금을 서버리스는 유휴 서버에 대해 과금을 지불 하지 않고 실제 함수가 실행된 시간, 리소스 비용만 지불하는 과금 형태

서버리스의 장점

  • 확장성
  • 고가용성
  • 자원의 효율성
  • 비용 절감
  • 관리 서버의 인력 무
  • 지속적인 배포 가능

서버리스의 단점

  • 컨테이너 로드의 대기 시간 ( 기존 아키텍쳐보다 시간이 걸림 )
  • 클라우드 서비스 업체의 제약조건
  • 클라우드 서비스 업체의 종속성
  • 어려운 디버깅
  • 각 함수마다 배포를 실행 ( 공수가 많이듬 )
  • 장시간 실행되는 CPU를 많이 사용하는 작업 불가
  • 실시간 처리에 적합하지 않음
  • 빈번한 서버 함수 호출에 적합하지 않음

참고자료

https://github.com/PacktPublishing/Building-Serverless-Web-Applications
https://www.xenonstack.com/blog/serverless-openfaas-java/
https://velopert.com/3543

댓글

이 블로그의 인기 게시물

Message Queue 란 무엇인가

Message Queue 란 무엇인가?? 메시지 지향 미들웨어(Meesage Oriented Middleware: MOM)은 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터 송수신을 의미 MOM을 구현한 시스템을 메시지 큐(MessageQueue: MQ)라 함 Producer(sender) 가 메시지를 큐에 전송하면 Consumer(receiver) 가 처리하는 방식으로, producer 와 consumer 에 message 프로세스가 추가되는 것이 특징 메시지 큐의 장점 비동기(Asynchronous): Queue에 넣기 때문에 나중에 처리할 수 있습니다. 비동조(Decoupling): 애츨리케이션과 분리할 수 있습니다. 탄력성(Resilience): 일부가 실패 시 전체에 영향을 받지 않습니다. 과잉(Redundancy): 실패할 경우 재실행 가능합니다. 보증(Guarantees): 작업이 처리된걸 확인할 수 있습니다. 확장성(Scalable): 다수의 프로세스들이 큐에 메시지를 보낼 수 있습니다. 메시지 큐 종류 Apache ActiveMQ, Apache Kafka, Apache Qpid, Apache RocketMQ, Beanstalkd, Enduro/X, HTTPSQS, JBoss Messaging, JORAM, RabbitMQ, Sun Open Message Queue, and Tarantool 등 Apache ActiveMQ Java Message Service (JMS)를 사용하는 오픈소스 MQ Java, C, C ++, C #, Ruby, Perl, Python, PHP 등 다양한 크로스 언어 클라이언트 및 프로토콜 지원 Spring 지원으로 Spring xml config 메커니즘 이용 가능 JDBC 지원으로 DB 높은 퍼포먼스 가능 높은 퍼포먼스를 위해 클러스터링 구성 가능 Restful API 제공 단 모니터링 도구제공하지 않음 ...