2016년 7월 18일 월요일

개발자 입장에서 바라보는 클라우드 서비스의 발전


라우드로 인한 패러다임의 변화 
클라우드로 인해 어플리케이션과 서비스 개발에 대한 새로운 패러다임이 나타나고 있다-프레미스(On-premise; 그림5) 환경에서는 물리적 서버 준비운영체제 설치서비스 배포 등에 수많은 시간이 걸렸지만클라우드를 활용하면서 단시간에 원하는 자원을 준비하고 서비스를 배포할  있게 되었고 확장과 가용성을 가질  있게 되었다.

 컨테이너를 통한 서비스 배포 시간의 단축
다양한 서비스를 실행하는데 운영체제와 플랫폼의 제한 사항은 그대로지만자원을 효율적으로 사용하고 빠르게 서비스를 배포하고자컨테이너를 활용한다컨테이너는 기존 서버를 통해 2 이상의 어플리케이션을 배포하는 부담을 줄이기 위해 서비스를 실행하는데 필요한 프레임워크라이브러리소스 코드를 별도의 이미지로 만들어 실행할  있도록 만든 것이다도커(Docker) 컨테이너 서비스를 주도하고 있다.
개발자는 패키징  서비스를 단일 컨테이너에서 수백 개의 가상 서버에서 실행되는 수천 개의 컨테이너까지 쉽게 확장할  있다컨테이너 서비스를 통해 서비스를 원할 때마다 언제든지   내에 배포할  있다.

 서버 없는 클라우드 함수의 등장
AWS(Amazon Web Service)에서 제안된 서버 없는 클라우드는 개발자가 간단히 파이썬자바로 작성하여 특정한 클라우드 서비스에반응하는 함수로서 실행할  있다서버 없는 클라우드를 활용하면모든 유형의 어플리케이션이나 백엔드 서비스를 별도 서버 없이실행할  있다소스코드를 업로드 하면 높은 가용성으로 실행하고가용성과 확장성  필요한 모든 것을 자동으로 고려해주기 때문이다.
AWS에서 제공하는 AWS Lambda 기존 가상 서버컨테이너 서비스와 함께 서버 없이 확장성을 고민하지 않고 바로 원하는 어플리케이션을 빠르게 수행할  있다최근에는 이를 바로 개발 현장에 접목할  있는 Serverless Framework라는 오픈 소스 개발 플랫폼이 나와서 주목을 받고 있기도 하다.

클라우드 서비스 로커(CSB; Cloud Services Brokerage) 
IaaS 활성화 되면서 클라우드의 장점을 알고 있는 업체들은 하나의 클라우드 벤더만 사용하지 않고 필요성에 따라 다양한 벤더를 사용하게 되었다이러한 다중 클라우드 사용은 다양한 서비스를  곳에서 사용할  있다는 장점도 있지만 클라우드 자원 관리가 복잡해지는 단점도 있다이런 불편함을 덜기 위해 CSB 나타났다(그림6).

<그림6> CSB 서비스의 
 
출처 : www.liaison.com



더보기

소프트웨어 개발자 관점의 클라우드 서비스


앞에서 살펴본 것처럼클라우드 서비스는 소프트웨어를 구동시키기 위해 필요한 모든 것을 제공해준다클라우드 개념이 시작되면서가장 먼저 발전된 것은 하드웨어 분야인 IaaS였다비용이나 관리적으로 가장 많은 자원이 소요되는 분야이기도 했지만 소프트웨어나사용처의 특성을 크게 고려하지 않아도 서비스할  있었기 때문이다. IaaS 이후 가상의 서버를 비롯해 다양한 플랫폼들도 직접 구매하지 않고 클라우드 서비스를 통해 활용하기 시작했고소프트웨어 개발과 구동 환경이 일반화 되면서 PaaS 사용도 활발해지기 시작했다. PaaS 사용은 플랫폼의 표준적인 모델을 제공하였고 이에 기반하여 완성된 소프트웨어를 제공하는 SaaS 제공되기에 이르렀다(그림5).

<그림5> 클라우드 서비스 모델의 구분
 
출처 : LG CNS

그림5 살펴보면클라우드를 사용하지 않고 소프트웨어를 개발하면 좌측 Private 같이 모든 것을 고려해야 하지만클라우드를 사용함으로써 개발자의 부담은 점차 줄어들  있고 소프트웨어 개발에  집중할  있게 된다.



더보기