클라우드 컴퓨팅 & NoSQL/PaaS 클라우드

IBM Bluemix 클라우드의 Openwhisk 소개

Terry Cho 2016. 3. 17. 22:55

 IBM 블루믹스의 openwhisk 에 대한 소개


조대협 (http://bcho.tistory.com)


오늘 IBM의 블루믹스 세미나에 다녀왔습니다.

세미나 내용중에서 흥미로운 기술들이 있어서 간단하게 소개합니다.

IBM 블루믹스 클라우드의 새로운 기능으로 Openwhisk 라는 서비스입니다http://www.ibm.com/cloud-computing/bluemix/openwhisk/

https://developer.ibm.com/openwhisk/ 아마존의 람다 기능과 유사한 기능인데 개념을 보면 다음과 같다.

 

이벤트가 발생하면, 이벤트 내용을 받아서 비지니스 로직이 들어 있는 액션을 수행한다.

아래 그림을 보면 REST API로 호출하거나 또는 데이타 베이스에 어떤 내용이 변경이 되거나 또는 Kafka와 같은 메세지 큐에 새로운 메세지가 들어오면 정해진 규칙 (이를 Openwhisk에서 Rule이라고 한다.)에 따라서 비지니스 로직을 호출한다. 이 비지니스 로직 덩어리를 Action이라고 하는데, Action을 여러개로 묶어서 아래 그림과 같이 체이닝이 가능하다.



 

이벤트 방식으로 비지니스 로직을 Invoke해주는 방식인데, 뒷단에 ActionAuto scaling이 가능해서 시스템의 용량등에 상관 없이 사용이 가능하다.

또한 이 ActionSwift, node.js, Java 와 같이 다양한 언어로 구현이 가능하다.

개발자는 아래 인프라를 신경쓸 필요가 없이 비지니스 로직만 구현하면 된다는 것이다.

 

과금 정책은 실제 Action이 실행되는 시간만 과금이 된다. 해당 로직을 수행하는데 30ms만 걸렸다면 30ms에 대한 금액만 과금된다. 유사한 기능을 EC2와 같은 VM위에 올리면, CPU를 많이 사용하는 로직일 경우 계속 CPU가 큰 CM을 켜놔야 하기 때문에 비용이 많이 나오지만 이 구조를 사용하면 비용이 딱 사용한 부분만 나온다.

 

다른 흥미로운 점은 IBM이 이 기능을 개발하면서 이 Openwhisk를 오픈소스화 했다는 것이다.

소스는 https://github.com/openwhisk/openwhisk 에 있는데, 이 말은 블루믹스를 사용하지 않더라도 AWS나 구글 글라우드에 Openwhisk를 옮길 수 있다는 것이다. 즉 클라우드 락인에 대한 문제를 해결하고 시작했다는 것이다.

 

AWS 람다와 유사한데, 근래 들어서 이런 형태의 기능들이 클라우드에 많이 나오는 것 같다.

톰캣이나 파이썬 장고와 같은 웹서버나 미들웨어를 알필요도 없고 복잡한 설정이나 스케일링에 대한 고려를 할필요도 없고 클라우드 자체를 플랫폼으로 그위에 비지니스 로직만 올리는 형태로 점점 클라우드가 발전해 가는 모습이 보인다.  나중에는 미들웨어 없이 클라우드 자체에 코드만 올리는 형태가 되지 않을까? 이미 AWS에서는 람다, 다니나모, S3, API 게이트웨이등을 조합하면 별도의 미들웨어 없이 왠만한 API들은 구현이 가능하다.

 

그리드형