본문 바로가기

IT 서비스 바라보기/Website

클라우드 환경에서 프로그래밍하기, IBM 블루믹스(BlueMix)

클라우드 환경에서 프로그래밍하기, IBM 블루믹스(BlueMix)


클라우드라고 하면 웹하드처럼 용량을 제공하고, 언제 어디서든 내 파일에 손쉽게 접근할 수 있는 환경이라고 생각하는 분들이 많습니다. 하지만 클라우드는 2~3년 전부터 굉장히 폭 넓은 비지니스 환경을 만들어주는 대상이 되었고, 이를 플랫폼으로 제공해서 다양한 애플리케이션을 실행할 수 있도록 하는 서비스들이 나오고 있습니다.


회사에서 개개인에게 지급해주던 데스크탑을 클라우드 서버로 대체해 개인은 모니터와 마우스, 키보드만으로 모든 사무를 볼 수 있는 클라우드 OS환경을 구축한 회사들도 하나 둘 생겨나고 있고, IBM의 블루믹스(BlueMix)처럼 소프트웨어 개발자분들이 손들고 환영할 만한 클라우드 기반의 개발 환경도 생겨나고 있습니다.



IBM은 지난 2월, 본격적인 클라우드 시대를 맞이해 자체 PaaS(Platform-as-a-Service)에 10억 달러를 투자하겠다는 취지를 밝히며, 새로운 클라우드 애플리케이션 개발 플랫폼 블루믹스(Bluemix)의 베타 버전을 선보였습니다. 블루믹스는 오픈소스 클라운드 파운드리(Cloud Foundry)에 기반한 개발 플랫폼으로, 모바일, 웹 애플리케이션의 개발 및 운영, 구축이 가능한 클라우드 기반 플랫폼 서비스입니다.


클라우드 기반 서비스는 IaaS, PaaS, SaaS 등 다양한 서비스들이 존재하는데, 서로 갖고 있는 장점들이 다릅니다. 블루믹스는 플랫폼을 제공하는 클라우드 솔루션인 PaaS 기반 서비스입니다. 플랫폼은 어떤 애플리케이션이나 서비스를 구동시키기 위해 필요한 하드웨어와 소프트웨어 등을 모두 포함하고 있는 기반(장치)을 말합니다.


예전부터 지금까지 인터넷을 통한 특정 서비스들을 제공하기 위해서는 기본적으로 서버와 데이터 저장을 위한 스토리지, 이를 연결해주는 네트워크 환경까지 구축해야했습니다. 하지만 IaaS(Infrastructure as a Service)는 이런 물리적 장치를 굳이 따로 구축하지 않아도 간단히 서비스를 구축할 수 있는 클라우드 환경을 말합니다. 물론 IaaS만으로 서비스를 할 수 있는 것은 아니고 서비스 실행을 위한 가상화 시스템, 운영체제(OS), 데이터베이스, 미들웨어, 자바 등의 개발 언어를 구동하기 위한 환경 등이 필요합니다.


IaaS에 이런 환경까지 제공해주는 것이 PaaS 기반의 클라우드 서비스이고, 블루믹스가 여기에 속하는 개발 플랫폼입니다. 참고로 SaaS는 PaaS에 실제로 구동되는 서비스까지 함께 제공해주는 환경을 말합니다.



얘기가 좀 어려워졌는데, IBM의 블루믹스 서비스에 대해 소개해드리면서 풀어나가 보도록 하겠습니다. 블루믹스(BlueMix)는 애플리케이션 개발에 필요한 운영체제 등 모든 환경을 제공해주는 클라우드 애플리케이션 개발 플랫폼으로 개발자는 인프라에 신경 쓰지 않고 편리하게 프로그램을 개발할 수 있습니다. 다시 말해, 개발자들은 별도의 플랫폼을 구축할 필요 없이, 블루믹스를 통해 개발 요소들을 따로 구축할 필요 없이 웹을 통해 서비스로 접근하여 모바일용, 기업용 등 다양한 형태의 앱을 쉽고 빠르게 만들 수 있는 서비스입니다.



블루믹스 서비스 (https://ace.ng.bluemix.net) 에 접속해서 간단한 가입 절차를 마치면 30일간 무료로 사용할 수 있도록 사용권이 부여되는데, 웹개발 경험이 이미 있는 분들은 몇 번만 클릭해보면 클라우드 기반의 애플리케이션 개발 플랫폼이란 이런 서비스를 말하는 것이구나...라는걸 금방 알 수 있도록 간단한 UI/UX로 설계되어있습니다.


무료 버전은 20GB의 메모리, 등록 가능한 서비스 10개를 기본 제공하고, 대시보드를 통해 애플리케이션 및 서비스를 간단히 추가하고 수정할 수 있으며, 서비스의 상태도 한눈에 알아볼 수 있는 기능을 제공합니다.



우선 간단히 Starters로 선택해서 웹앱을 등록하는 절차를 진행해봤습니다. 블루믹스는 모바일 및 웹 애플리케이션, 데이터 매니지먼트, 빅 데이터, 보안 애플리케이션, 비지니스 애널리틱스 등의 서비스를 클릭 몇 번으로 간단히 구축할 수 있도록 도와주는데, 웹 애플리케이션의 경우, Node.JS, 자바 웹스타터, 자바 DB 웹스타터 등의 다양한 기반을 제공하며 Node.JS, Ruby On Rails 등의 다양한 런타임 언어도 제공합니다. 개발자에게 익숙한 환경을 선택한 뒤, 생성하면 됩니다.


▲ 블루믹스 서비스를 통해 자바 기반의 웹 앱을 간단히 생성하는 방법



▲ 클릭 몇 번으로 서비스가 생성되고, 새로운 서비스나 앱들을 추가할 수 있으며, 인스턴스 및 메모리 등의 시스템에 대한 설정도 간단히 할 수 있다.



▲ 블루믹스에서는 다양한 개발 플랫폼을 제공해, 개발자가 원하는 다양한 형태의 서비스를 손쉽게 구축할 수 있도록 도와준다.


소프트웨어 개발 방법론 중 애자일에 대한 이야기가 아주 오래전부터 회자되어있습니다. IBM에서는 애자일 개발 환경을 가능하게 하는 것이 바로 블루믹스라고 소개했었는데, 잠시 사용해보니 왜 그런 얘기가 나왔는지 어느 정도 납득이 되었습니다. 개발자는 프로그래밍 언어를 선택하거나 자신이 만들 수 있고, 한 번의 명령어로 애플리케이션 수행이 가능하다는 점, 개방형 통합 개발 환경인 데스옵스 환경을 통해 IT 운영자와 효율적으로 협업할 수 있다는 점 등이 이를 뒷받침하고 있습니다.


▲ 블루믹스 대시보드를 통해 직접 소스 코드를 편집 할 수 있다.


블루믹스는 개방형 표준에 기반을 두고 있으며, 클라우드에서 서비스형 모델을 통해 자바, 모바일 백엔드 개발, 애플리케이션 모니터링 같은 IBM에서 제공하는 소프트웨어 그룹을 활용할 수 있고, 오픈소스와 서드파티 소프트웨어와 더불어 IBM이 보유하고 있는 빅데이터, 분석, 왓슨(Watson) 인지컴퓨팅, 사물인터넷 서비스 지원 등 기존 서비스가 통합되어 풍부한 콘텐츠를 제공하는 것이 특징이라고 할 수 있습니다.


또한, IBM에서 올해 초 인수한 클라우던트의 기술을 바탕으로 블루믹스의 클라우드 데이터베이스를 강화할 예정이라고 하니, 개발자들은 다양한 호스트 계층에서 클라우드 애플리케이션을 제작, 시험, 구축 및 확장할 수 있는 도구와 자원을 제공받을 수 있을 것 같아 더욱 파워풀한 플랫폼으로 거듭날 것 같습니다.


블루믹스는 대규모의 고급 클라우드 프로젝트뿐만 아니라 중소기업이나 스타트업의 프로젝트에도 적합한 개발 플랫폼이라고 할 수 있으며, 소규모 스타트업에게 있어 블루믹스는 개발에서부터 판매까지 유기적으로 연결하는 환경을 제공하기 때문에 개발 장벽을 낮춰주는 역할을 할 수 있을 것 같습니다.


평소 클라우드 기반의 개발 플랫폼과 PaaS 서비스에 관심 많으셨던 개발자분들, 기업 담당자분들께서는 IBM의 블루믹스 서비스를 한 번 활용해보시길 바랍니다. 매력적인 서비스라고 생각됩니다!


이상, 하늘다래였습니다. Seeit!