VM이나 Middleware 구성 불필요
수 초 내에 런타임 환경 구성이 가능하며, 자동 또는 수동으로 용량 확장 용이
140개 이상의 IBM, 3rd party 서비스 제공 (Mobile, IoT, Watson 및 다른 서비스 등)
고객의 기존 네트워크 연장선으로 느끼면서 클라우드의 장점을 활용할 수 있는 운영 모델
고객의 Firewall 뒤에 클라우드를 구축함으로써 프라이빗 클라우드 환경하에서 Bluemix 활용
Public | Dedicated | Local | |
---|---|---|---|
지불방식 | Pay-Go & Subscription | Subscription | Subscription |
인프라 | Bluemix Infra (Dallas & London & Sydney) | Bluemix Infra (판교 센터) | 고객의 DC (VMware) |
프로비저닝 | 즉시 | 증설 2주 / 신규 6주 | 고객 상황에 따라 상이 |
카탈로그 | Public | Syndicated | Syndicated |
IBM Managed Service 대상 | IaaS, PaaS | IaaS, PaaS | PaaS |
제공 서비스 | Watson, IoT 등 140여 개 이상의 서비스 제공 | 13+ Bluemix Public 서비스 제공 | 7+ Bluemix Public 서비스 제공 |
특징 | 다양한 서비스를 활용한 내외부적인 새로운 시도 지원 | 인프라포함 / 별도 분리된 전용 네트워크에서 Bluemix 사용 | Mission Critical Application |
Best Fits | 내부 개발자 기술 역량 향상 (신기술 도입 및 Enablement) | Bluemix Infra 에서의 Cloud 로드맵 확장 가능 | 기간계 시스템 연계 비중이 높거나 내부에 둬야 하는 데이터 정책 |
수 초 내에 런타임 환경 구성이 가능하며, 자동 또는 수동으로 용량 확장 용이
Java Liberty, Javascript, Ruby, Python, .NET 등 다양한 프로그래밍 언어 지원
Java Cloudant(WAS + NoSQL DB) 웹 스타터, IoT Platform 스타터 등 사전 정의된 다양한 표준 유형(템플릿) 제공을 통해 쉽고 빠른 App. 구현 가능
별도의 WAS 설치나 DB 설치 없이 서버 환경을 빠르게 구성할 수 있으며, Java, Node.js, Python, Ruby, Go, PHP 등 다양한 언어로 애플리케이션을 작성하여 배포할 수 있습니다.
Framework
Spring Boot Framework는 Embed Tomcat, Jetty를 이용해 Java Web Application을 직접 구동 가능하도록 도와줍니다. Spring Boot는 XML설정보다는 명명규칙을 통한 Convention을 권장하여 개발 생산성을 향상시키고, Starter Kit의 단순화된 POM 제공으로 개발환경 구성에 드는 노력을 최소화합니다. Spring Boot 기반의 Application은 경량화된 Application에 적합하며, 이는 마이크로서비스 앱을 만드는 것에 가장 적절한 java framework임을 의미합니다.
Platform
PaaS-TA는 Cloud Foundry를 기반으로 하는 오픈소스 PaaS 플랫폼입니다. Java, Node.js, Python, Ruby, Go, PHP 등의 다양한 언어 빌드팩을 지원하며, 별도의 언어 SDK, 미들웨어 설치 없이도 애플리케이션의 배포에 따라 구동환경 구성이 자동화됩니다. 서비스 마켓플레이스에서는 다양한 오픈소스 인프라 소프트웨어들이 SaaS형태로 제공되며 애플리케이션에서는 12 Factors App 원칙에 맞게 이를 바인딩(Binding)과정을 통해 연결합니다. 12 Factors App을 준수한 애플리케이션은 명령어 하나만으로 쉽게 스케일 인-아웃 할 수 있습니다.
Cloud Friendly App, Cloud Native App
Spring Boot를 통해 만들어진 12 Factors App은 Cloud Foundry 위에서 스케일링, 자동 복구, 로그 중앙 처리, 서비스 바인딩 등을 쉽게 할 수 있습니다. 12 Factors App을 준수하는 Cloud Friendly 애플리케이션은 클라우드의 효과를 상당 수 얻을 수 있습니다. 한 단계 나아가서 애플리케이션을 완전히 Modernizing하는 마이크로서비스로 재설계한다면 클라우드 효과는 극대화될 수 있습니다. 마이크로서비스 아키텍처 역시 Spring Boot와 Spring Netflix, 그리고 Cloud Foundry의 조합으로 구성이 가능합니다.
무중단 배포를 위한 블루-그린 배포 기능을 제공합니다. 신규 기능 배포 시 블루 서버를 자동 구성하여 서버 중단 없이 배포 주기를 짧게 단축시킬 수 있고, 문제 발생 시 빠른 롤백이 가능합니다. 새로운 UX에 대한 적용과 기존 기능을 동시에 서비스하면서 실시간 A/B 테스트를 수행할 수도 있습니다.
Jenkins와 연계하여 지속적 배포 파이프라인을 구성합니다. Cloud Foundry에서 제공하는 조직(Org)과 스페이스(Space) 개념은 DevOps를 위한 조직에서 적합한 구조입니다. 개발(DEV)과 테스트(UAT), 운영(PRD) 영역의 스페이스 구성에 애플리케이션 버전의 배포 현황을 Jenkins의 파이프라인 대시보드를 구성하여 가시적으로 관리할 수 있습니다.
12 Factors App은 클라우드 환경에서 SaaS를 유연하게 만들기 위한 원칙입니다. Self-Contained되고 Stateless한 애플리케이션들은 클라우드 환경에서 Scalable을 보장합니다. Cloud Foundry의 손쉬운 Scale out 기능을 통해 별도의 인프라 구성 없이도 쉽게 애플리케이션을 이중화하여 가용성을 높일 수 있습니다.
애플리케이션의 사용 리소스를 판단하여 자동 스케일 아웃을 동작시키는 자동 스케일러를 제공합니다. 애플리케이션의 특성에 맞는 임계치 CPU, 메모리 수치를 설정하여 스케일링 정책을 사용자가 직접 수립할 수 있습니다.
Cloud Foundry의 빌드팩(Buildpack)을 이용하면 별도의 미들웨어 설치 과정이 불필요합니다. Java, Node.js, Python, Ruby, Go, PHP 등 다양한 언어의 빌드팩을 제공하며, 배포되는 애플리케이션의 유형을 자동 감지하여 적절한 빌드팩을 선택해 줍니다. 배포 시 동적으로 구성되는 빌드팩 개념은 애플리케이션이 12 Factors App의 사상에 맞게 개발되어야 사용할 수 있습니다.
12 Factors App의 백엔드 서비스 개념에 맞게 서비스는 부착(bind)되어야 합니다. Cloud Foundry의 서비스 마켓플레이스는 필요한 서비스들을 애플리케이션에 쉽게 바인딩할 수 있는 구조를 제공합니다. 외부에서 바인딩된 서비스는 애플리케이션 컨테이너의 확장에 관계없이 독립적으로 연동되어 있어서 애플리케이션의 확장성을 방해하지 않습니다.