serverless computing의 정의
- serverless = 서버(server) + 없다(-less)가 합쳐진 단어입니다.
- 하지만 그렇다고 서버가 완전히 존재하지 않는다 라는 것은 아닙니다. 서버는 존재를 합니다
- 그런데 왜 서버리스일까요?
서버리스??
- 개발자는 서버를 신경쓸 필요가 없다 입니다.
- 서버에 관한 운영과 관련된 문제는 신경쓰지말고 코드개발에만 집중할수있기 때문에 서버리스였습니다.
- 그렇다면 서버리스의 장점이 무엇일까요? 제가 알고있는 Lambda 의 장점 및 최근 사용사례입니다.
Lambda의 장점
- 1) 서버 관리 없는 컴퓨터 확장이 가능합니다.
- 2) 미 실행시 과금을 하지 않습니다.
- 3) 무상태(Stateless) 앱 개발이 가능합니다.
- 4) 이벤트 기반의 앱 개발이 가능합니다.
AWS Lambda의 최근 사용사례
- 1) 웹 애플리케이션
- 2) 모바일 및 IoT 백엔드
- 3) 빅데이터 분석
- 4) 미디어/로그 처리
-
5) 인공지능
- 등 여러 IT서비스에서 서버리스로 변화하고 있습니다.
또한 AWS에서는 Lambda를 이용한 마이크로 서비스 아키텍처를 소개했었습니다.
마이크로서비스 아키텍처란?
-
기존의 모놀리식 아키텍처를 설명하자면 하나의 서비스에 하나의 프로젝트 단위로, 단일 디렉토리를 가지고 개발하는 구조 입니다.
- 반면에 마이크로 서비스 아키텍처는 작은 서비스의 결합 을 통하여 하나의 응용 프로그램을 개발하는 방법입니다.
- 각 서비스는 프로그래밍 언어, 프레임워크를 독립적으로 선택할수 있고, 다른 서비스들과 독립적으로 배포할수있다. 개발자는 다른 서비스들을 신경쓰지 않고 개발에 집중할수있다 그렇기 때문에 다른 서비스 들에 의존성이 없기 때문에 서비스를 배포할때 고려해야할 것들을 줄일수있습니다.
서버리스와 마이크로 서비스의 연결점은?
- Microservice와 Serverless가 공통적으로 추구하는 방향은 비즈니스 로직에 집중할수있습니다.
개발자는 서로 독립된 서비스에서 개발을 하고 서버를 신경을 쓰지 않기 때문에 오로지 개발에만 집중을 할수있습니다. - 그렇기 때문에 개발의 생산성이 올라가고 좋은 서비스가 개발이 되는것이죠
마무리
- 아직까지 개발은 모놀리식 아키텍처를 사용하고 있고 서버리스와 마이크로 서비스는 아직 도입중인 서비스입니다.
- 하지만 앞으로 이방향으로 개발환경및 아키텍처가 변화 할것이라고 생각되네요.
- 그렇다고 해서 마이크로서비스가 무조건 좋다는 말은 아닙니다.
- 개발환경 개발인원 회사에 맞게 사용을 해야되며 이런 아키텍처가 늘어날때 회사나 개발자가 선택을 할수있는 폭이 넓어진다는점이있었습니다.
- 계속 되는 클라우딩 서비스의 발전이 있고 그것에 맞춰서 발전을 해야되기떄문에 계속 공부하고 습득해야되겠네요.