Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture...

67
Session ID: 3322A Company: Craftworkz Sam Hendrickx & Michiel Vandendriessche IBM InterConnect 2017 Conference eating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

Transcript of Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture...

Page 1: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

Session ID: 3322ACompany: Craftworkz

Sam Hendrickx & Michiel Vandendriessche

IBM InterConnect 2017 Conference

Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

Page 2: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix
Page 3: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

Hi handsome! How are you doing today?

Feeling great! Just visiting San Francisco. How r u?

Not yet, we just came back from a conference.

I’m doing fine. Any plans for tonight?

Want to go for a drink?

Yeah why not!

Awesome Michiel! Can you please verify your identity here so I know you’re not a creep: http://bit.ly/abc123

Page 4: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

OMG, IT’S A BOT!

Page 5: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix
Page 6: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

THE ERA OF BOTS

Page 7: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix
Page 8: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

BELGIUM

Page 9: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

FRENCH GERMAN

39%

DUTCH

1%60%

BELGIUM

Page 10: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NOBODY CARESABOUT DUTCH

Page 11: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

LET’S BUILD ITOURSELVES

Page 12: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix
Page 13: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION

RESPONSE

FIRST APPROACH

Page 14: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION

RESPONSE

FIRST APPROACH

Page 15: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION

RESPONSE

FIRST APPROACH

Page 16: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION

RESPONSE

FIRST APPROACH

Page 17: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION

RESPONSE

FIRST APPROACH

Page 18: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

What can you tell me about IBM InterConnect 2017?

InterConnect is a conference where you can tap into the most advanced cloud technology in the market today!

Where is it being held?

The location of InterConnect is Mandalay Bay, Las Vegas, NV

Page 19: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

DAMN, IT’S NOT SCALING!

Page 20: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

10 USERS10 MESSAGES

2,0 SEC

Page 21: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

1.000 USERS10 MESSAGES

TIMEOUTS

Page 22: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

ADD MOREINSTANCES!

Page 23: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION

RESPONSENLP

REST

SESSION

RESPONSENLP

REST

SESSION

RESPONSE

PYTHON RUNTIMES

. . .

Page 24: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

BOT SUFFERINGFROM AMNESIA

Page 25: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

What can you tell me about IBM InterConnect 2017?

InterConnect is a conference where you can tap into the most advanced cloud technology in the market today!

Where is it being held?

I don’t know how to answer that question…

Page 26: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

???

Page 27: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION

RESPONSENLP

REST

SESSION

RESPONSENLP

REST

SESSION

RESPONSE

PYTHON RUNTIMES

. . .

Page 28: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION

RESPONSE CONTEXT STORED IN MEMORY

Page 29: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION

RESPONSENLP

REST

SESSION

RESPONSENLP

REST

SESSION

RESPONSE

PYTHON RUNTIMES

. . .

Page 30: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

STORE SESSION INFO IN DATABASE

Page 31: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION MANAGER

RESPONSENLP

REST

SESSION MANAGER

RESPONSENLP

REST

SESSION MANAGER

RESPONSE

PYTHON RUNTIMES

. . .

SESSION

COMPOSE FOR MONGODB

Page 32: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

OUR BOT IS NOTON SOCIAL MEDIA!

Page 33: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix
Page 34: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

REST

SESSION MANAGER

RESPONSE

WE DON’T WANT TO MANAGE CONNECTIONS HERE

Page 35: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

ADD API MANAGERTO ARCHITECTURE

Page 36: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

SESSION

COMPOSE FOR MONGODB

APIMANAGER

APIMANAGER

APIMANAGER . . .

NODEJS RUNTIMES

NLP

REST

SESSION MANAGER

RESPONSENLP

REST

SESSION MANAGER

RESPONSENLP

REST

SESSION MANAGER

RESPONSE

PYTHON RUNTIMES

. . .

Page 37: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

SESSION

COMPOSE FOR MONGODB

APIMANAGER

APIMANAGER

APIMANAGER . . .

NODEJS RUNTIMES

NLP

REST

SESSION MANAGER

RESPONSENLP

REST

SESSION MANAGER

RESPONSENLP

REST

SESSION MANAGER

RESPONSE

PYTHON RUNTIMES

. . .

Page 38: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

SOME MESSAGESARE GETTING LOST!

Page 39: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

SESSION

COMPOSE FOR MONGODB

APIMANAGER

APIMANAGER

APIMANAGER . . .

NODEJS RUNTIMES

NLP

REST

SESSION MANAGER

RESPONSENLP

REST

SESSION MANAGER

RESPONSENLP

REST

SESSION MANAGER

RESPONSE

PYTHON RUNTIMES

. . .

MESSAGELOSS!

Page 40: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

QUEUEING TOTHE RESCUE!

Page 41: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

SESSION

COMPOSE FOR MONGODB

APIMANAGER

APIMANAGER

APIMANAGER

. . . NODEJS RUNTIMES

COMPOSE FOR REDIS

NLP

SESSION MANAGER

RESPONSE

PYTHON RUNTIMES

. . . NLP

SESSION MANAGER

RESPONSE NLP

SESSION MANAGER

RESPONSE

Page 42: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

OUR AI NEEDSEXTERNAL DATA!

Page 43: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

LET’S MANAGE THOSECONNECTIONS!

Page 44: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NLP

CONNECTION MANAGER

SESSION MANAGER

RESPONSE

Page 45: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

SESSION

COMPOSE FOR MONGODB

APIMANAGER

APIMANAGER

APIMANAGER . . .

NODEJS RUNTIMES

COMPOSE FOR REDIS

PYTHON RUNTIMES

. . . NLP

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

NLP

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

NLP

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

Page 46: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

OOPS, THIS I/OIS QUITE SLOW!

Page 47: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

BEFORE

NLP

SESSION MANAGER

RESPONSE

Q

A

~ 20 ms

Page 48: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

WITH I/O

NLP

CONNECTION MANAGER

SESSION MANAGER

RESPONSE

Q

A

~ 200 ms

Page 49: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

10.000 USERS10 MESSAGES

SLOOOOW

Page 50: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix
Page 51: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

CPU USAGE

5%

Page 52: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

THREADS THREADSTHREADS THREADS!

Page 53: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix
Page 54: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

CPU USAGE

93%

Page 55: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

SESSION

COMPOSE FOR MONGODB

APIMANAGER

APIMANAGER

APIMANAGER . . .

NODEJS RUNTIMES

COMPOSE FOR REDIS

PYTHON RUNTIMES

. . . NLP

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

NLP

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

NLP

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

Page 56: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix
Page 57: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

RESULTS

2,6 SEC

Page 58: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

THESE INSTANCESSHOULD BE SCALING…

Page 59: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

BLUEMIX AUTO-SCALING,

TAKE IT AWAY!

Page 60: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix
Page 61: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

FINAL RESULTS

0,6 SEC

Page 62: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

DEMO

Page 63: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

NOBODY CARESABOUT DUTCH

Page 64: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

WATSON CARES!

Page 65: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

SESSION

COMPOSE FOR MONGODB

APIMANAGER

APIMANAGER

APIMANAGER . . .

NODEJS RUNTIMES

COMPOSE FOR REDIS

PYTHON RUNTIMES

. . . NLP

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

NLP

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

NLP

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

Page 66: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

SESSION

COMPOSE FOR MONGODB

APIMANAGER

APIMANAGER

APIMANAGER . . .

NODEJS RUNTIMES

COMPOSE FOR REDIS

PYTHON RUNTIMES

. . . SESSION MANAGER

RESPONSE

CONNECTION MANAGER

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

SESSION MANAGER

RESPONSE

CONNECTION MANAGER

Page 67: Craftworkz at InterConnect 2017 - Creating a Highly Scalable Chatbot in a Microservices Architecture Using IBM Bluemix

Get Connected

@craftworkz_co

Let’s stay in touch! We can meet you in one of our offices in Leuven or Kontich. Or we can come to you. Nothing beats a coffee and an interesting conversation ;-)

@craftworkz

@craftworkzco

@craftworkz_co

www.craftworkz.be

Veldkant 33A, 2550 Kontich

[email protected]

+32 498 44 50 61

Headquarter

Gaston Geenslaan 11 B4BE-3001 Leuven

LEUVEN (BE) OFFICE

Veldkant 33ABE-2550 Kontich

ANTWERP (BE) OFFICE

Pedro de Medinalaan 81,NL-1086 XP Amsterdam

AMSTERDAM (NL) OFFICE