Building advanced Chat Bots
Stève SFARTZ
API Evangelist - Cisco DevNet
stsfartz@cisco.com, @SteveSfartz, github://ObjectIsadvantag
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
/Cisco/DevNet/SteveSfartz
• API Evangelist @CiscoDevNet
• Cisco Spark Apps & Tropo APIs
• NodeJS mainly, a bit of #golang
• France and all around Europe
• hosted @PIRL – Paris Innovation
Center & Research Lab
• twitter://@SteveSfartz
• github://ObjectIsAdvantag
“vision without
execution is
hallucination”
-- Thomas Edison
stsfartz@cisco.com
@SteveSfartz
3
 Zero to advanced Bots
 Demoes & code samples with Cisco Spark
 Challenges & lessons learntT
so what’s on the menu
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 4
My first bot: Daisy Educational purposes
- Nice contact with French spelling
- Typing on Keyboard
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 5
Meet the CiscoDevNet bot
https://github.com/CiscoDevNet/node-sparkbot-samples
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 6
Meet the roomId bot
1. Add roomId@sparkbot.io to a group space
2. The bot sniffs room id, and posts it in a 1-1 space,
3. Finally leaves the group space you originally invited it to join
https://github.com/CiscoDevNet/node-sparkbot-samples
What it takes to code a bot ?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Spark
Secure & Open
Complete & Simple
Spark for Developers
User Integrations, APIs/SDKs...
Spark Hybrid Services
Cloud + Prem
Partner Services
Interconnect
Message Meeting Call
1:1 and team messaging Cloud-based phone systemAudio, video, and web meetings
8
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
‘Your App’
now with
Cisco Collab!
Spark APIs
extend Cisco Collaboration Cloud
GET
POST
DELETE
PUT
/Rooms
/Memberships
/Messages
/Webhooks
/People
9
/Teams
https://developer.ciscospark.com/
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Spark Cloud
Service
1. interacts in spaces
via a Cisco Spark client
Cisco Spark User
Your Bot code running
On-premise or on a Public Coud
2. posts notifications to
registered WebHooks
Publicly accessible APIs
3. posts messages
as notifications fly in
Bot Architecture
 Register WebHook
events your bot is
interested to
listened to
 Messages / created
 Memberships /
created
 As events happen
in spaces, receive
notifications from
Cisco Spark
Demo
bot account, requestb.in
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Spark Cloud
Service
1. interacts in spaces
via a Cisco Spark client
Cisco Spark User
DMZ
2. posts notifications to
registered WebHooks
Publicly accessible
3. responds to
Webhook events
Your Bot code running
on-premises
Enterprise secured
2b. forwards notifications
Bot Architecture: on-premises
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Spark Cloud
Service
1. interacts in Rooms
via the various Spark Clients
Cisco Spark User
Tunneling
infrastructure
Your Bot code running
on your local machine
2. posts notifications to
registered WebHooks
Dev environmentPublicly accessible
2b. forwards
Webhook events
3. responds to
Webhook events
Bot Architecture: dev machine
ngrok, localtunnel…
What it takes to code a bot ?
2 lines of code …
… with a bot framework
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Run a bot sample
• Leverages the node-sparkbot framework
• aimed at Cisco Spark bot education
• https://github.com/CiscoDevNet/node-sparkbot
• Community frameworks for Cisco Spark
• Flint: https://github.com/flint-bot/flint
• BotKit: https://github.com/howdyai/botkit
https://github.com/CiscoDevNet/node-sparkbot-samples
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Bot community frameworks
• Flint, https://github.com/flint-bot/flint
• BotKit, https://github.com/howdyai/botkit
What it takes to code a bot ?
think User Experience
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Bot Contest
Sign in on CiscoSpark
Meet the Bot
quizbot@sparkbot.io
Take the challenge
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Meet the QuizBot
19
https://github.com/LucaCalabrese/codemotion-spark-bot
Java, AWS, PostGreSQL, WebHooks
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 20
@QuizBot help
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Best Practices: fallback command
• Help command
• better shown at invite, « welcome message »
• But how much help does it really provide?
• /hlp
• Help
• #help
• HELP!!!
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 22
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Best practices: Bring extra value!
23
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
…and context storage
24
https://github.com/CiscoDevNet/botkit-ciscospark-samples
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Bring conversations to the game…
25
https://github.com/ObjectIsAdvantag/devnet-botkit-sample
Demo
CiscoDevNet bot with BotKit
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 27
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Community frameworks for Cisco Spark
Flint
First Bot framework for Cisco
Spark
Highly tuned for the Cisco Spark
API (webhooks events,
moderation…)
Basic Key/Value data store
Coding best practices (ES6,
exception handling, logs, retries,
rate limitation)
BotKit
Largest community Bot framework
Cross platform support with code
reuse (no magic convert button:
events name, message
formatting)
Advanced Key/Value data store
(user / space level)
Powerful conversational paradigm
Taking bots to the next
stage
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
• EMEAR Digital Transformation Team
• Cisco Spark Apps & APIs
• #nodejs #python #django #js
#assembly #visualbasic #pascal
• Loves Home Automation
• twitter://@DJ_F3
• tools.sparkintegration.club
Dirk-Jan Uittenbogaard
“Nothing is impossible,
the word itself says
“I'm possible”!
-- Audry H
duittenb@cisco.com
@DJ_F3
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Spark
Secure & Open
Complete & Simple
Spark for Developers
User Integrations, APIs/SDKs...
Spark Hybrid Services
Cloud + Prem
Partner Services
Interconnect
Message Meeting Call
1:1 and team messaging Cloud-based phone systemAudio, video, and web meetings
31
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
• One Platform
• Over 35 Microservice APIs
• Over 600 REST endpoints
• Public and internal endpoints
Cisco Microservice Cloud
Identity
Video
Encryption
Call Control
Conversations
File Management
Devices
Provisioning
Event Delivery
Rooms
Messages
SOLUTION
Teams
Admin
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Spark SDK for JavaScript
Resources
Quick Start Guide
https://ciscospark.github.io/spark-js-
sdk/example/getting-started/
Sample App
https://ciscospark.github.io/spark-js-sdk/app/
Open source code
https://github.com/ciscospark/spark-js-sdk
API reference
https://ciscospark.github.io/spark-js-sdk/api/
And more to come …
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Spark SDK for iOS
… is a set of tools
Quick Start Guide
https://developer.ciscospark.com/iosquickstart.html
Sample App
https://github.com/ciscospark/spark-ios-sdk-example
Open source code
https://github.com/ciscospark/spark-ios-sdk
API reference
https://ciscospark.github.io/spark-ios-sdk/
And more to come …
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
How does the Spark Board recognize me?
Earth beams Sound
Patience Karma
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
How does the Spark Board recognize me?
Earth Beams Sound
Patience Karma
In the Greenhouse,
next to the entrance
Try it yourself !
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Taking bots to the next stage
• But who created the bot ?
• What is the usage policy ?
• How can I contact support, send feedback ?
• What about my data privacy ?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
@CiscoDevNet /about
39
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Is the bot down ?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 41
Enriched healthcheck
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Is the bot down ? a proposal
• Register the Bot in a Universal Database
• Chat services supported
• Healthcheck endpoints
• Author, Policies
• Metadata again…
• chatbot.land domain reserved
• who’s in ? twitter://@SteveSfartz
42
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Hosting
• Many options: IaaS, Containers, PaaS
• Concerns: Availability, Scalability, Security, Rate
Limitation
• Pricing balance: who’s willing to pay for the bot, and
how much
• Heroku PaaS Free Dynos
• AWS/Google/Microsoft free plans
• Currently testing Serverless Functions
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Google Functions
44
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Bots as serverless functions
45
Remember?
a bot is nothing more than
a POST endpoint …
with an healthcheck !
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
The Serverless Functions opportunity
> gcloud alpha functions deploy sparkbot
--entry-point googlefunction
--stage-bucket objectisadvantag-functions
--trigger-http
--memory 128MB
--timeout 1s
46
https://github.com/ObjectIsAdvantag/devnetexpress-bot
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Taking bots to the next stage
• Pick Bots coding best practices & frameworks
• Exception management, Retries
• Help, Fallback command, Healthcheck
• Conversations (test is challenging)
• Choose the best hosting approach
• Monitor your bot activity (Chatops / Analytics)
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Other considerations
Natural language processing
• Think twice before going to NLP
• Do you really need it ? B2C or B2B ?
• Extra costs
• Introduces a 3rd party (lowers your SLA)
• Choose the best approach (local vs 3rd party)
• https://devnetcreate.io/2017 Nick Marus’s Talk
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Other considerations
Machine Learning
• A bot companion can learn from my interactions,
incrementally
• Use case: classify my Twitter Followers
• Who’s ready to pay for it ?
• Data Privacy vs Real Cost
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
• Self-service 15’ labs
• Pre-installed laptops
• Proctors to assist
Get hands-on
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
May 16th
9:00 Big Container - The power of Connections
11:30 IoT: Voice and Messages to the resue
12:30 Building advanced ChatBots
All day Learn by taking a code lab with proctors
May 17th
11:30 Microservices and containers networking: Contiv
https://github.com/CiscoDevNet/codemotion-amsterdam-2017
Meet Cisco at CodeMotion
Thank you
@CiscoDevNet
@CiscoSparkDev
@SteveSfartz
@DJ_F3

Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017

  • 1.
    Building advanced ChatBots Stève SFARTZ API Evangelist - Cisco DevNet stsfartz@cisco.com, @SteveSfartz, github://ObjectIsadvantag
  • 2.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public /Cisco/DevNet/SteveSfartz • API Evangelist @CiscoDevNet • Cisco Spark Apps & Tropo APIs • NodeJS mainly, a bit of #golang • France and all around Europe • hosted @PIRL – Paris Innovation Center & Research Lab • twitter://@SteveSfartz • github://ObjectIsAdvantag “vision without execution is hallucination” -- Thomas Edison stsfartz@cisco.com @SteveSfartz
  • 3.
    3  Zero toadvanced Bots  Demoes & code samples with Cisco Spark  Challenges & lessons learntT so what’s on the menu
  • 4.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public 4 My first bot: Daisy Educational purposes - Nice contact with French spelling - Typing on Keyboard
  • 5.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public 5 Meet the CiscoDevNet bot https://github.com/CiscoDevNet/node-sparkbot-samples
  • 6.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public 6 Meet the roomId bot 1. Add roomId@sparkbot.io to a group space 2. The bot sniffs room id, and posts it in a 1-1 space, 3. Finally leaves the group space you originally invited it to join https://github.com/CiscoDevNet/node-sparkbot-samples
  • 7.
    What it takesto code a bot ?
  • 8.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Cisco Spark Secure & Open Complete & Simple Spark for Developers User Integrations, APIs/SDKs... Spark Hybrid Services Cloud + Prem Partner Services Interconnect Message Meeting Call 1:1 and team messaging Cloud-based phone systemAudio, video, and web meetings 8
  • 9.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public ‘Your App’ now with Cisco Collab! Spark APIs extend Cisco Collaboration Cloud GET POST DELETE PUT /Rooms /Memberships /Messages /Webhooks /People 9 /Teams https://developer.ciscospark.com/
  • 10.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Cisco Spark Cloud Service 1. interacts in spaces via a Cisco Spark client Cisco Spark User Your Bot code running On-premise or on a Public Coud 2. posts notifications to registered WebHooks Publicly accessible APIs 3. posts messages as notifications fly in Bot Architecture  Register WebHook events your bot is interested to listened to  Messages / created  Memberships / created  As events happen in spaces, receive notifications from Cisco Spark
  • 11.
  • 12.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Cisco Spark Cloud Service 1. interacts in spaces via a Cisco Spark client Cisco Spark User DMZ 2. posts notifications to registered WebHooks Publicly accessible 3. responds to Webhook events Your Bot code running on-premises Enterprise secured 2b. forwards notifications Bot Architecture: on-premises
  • 13.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Cisco Spark Cloud Service 1. interacts in Rooms via the various Spark Clients Cisco Spark User Tunneling infrastructure Your Bot code running on your local machine 2. posts notifications to registered WebHooks Dev environmentPublicly accessible 2b. forwards Webhook events 3. responds to Webhook events Bot Architecture: dev machine ngrok, localtunnel…
  • 14.
    What it takesto code a bot ? 2 lines of code … … with a bot framework
  • 15.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Run a bot sample • Leverages the node-sparkbot framework • aimed at Cisco Spark bot education • https://github.com/CiscoDevNet/node-sparkbot • Community frameworks for Cisco Spark • Flint: https://github.com/flint-bot/flint • BotKit: https://github.com/howdyai/botkit https://github.com/CiscoDevNet/node-sparkbot-samples
  • 16.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Bot community frameworks • Flint, https://github.com/flint-bot/flint • BotKit, https://github.com/howdyai/botkit
  • 17.
    What it takesto code a bot ? think User Experience
  • 18.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Bot Contest Sign in on CiscoSpark Meet the Bot quizbot@sparkbot.io Take the challenge
  • 19.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Meet the QuizBot 19 https://github.com/LucaCalabrese/codemotion-spark-bot Java, AWS, PostGreSQL, WebHooks
  • 20.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public 20 @QuizBot help
  • 21.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Best Practices: fallback command • Help command • better shown at invite, « welcome message » • But how much help does it really provide? • /hlp • Help • #help • HELP!!!
  • 22.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public 22
  • 23.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Best practices: Bring extra value! 23
  • 24.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public …and context storage 24 https://github.com/CiscoDevNet/botkit-ciscospark-samples
  • 25.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Bring conversations to the game… 25 https://github.com/ObjectIsAdvantag/devnet-botkit-sample
  • 26.
  • 27.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public 27
  • 28.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Community frameworks for Cisco Spark Flint First Bot framework for Cisco Spark Highly tuned for the Cisco Spark API (webhooks events, moderation…) Basic Key/Value data store Coding best practices (ES6, exception handling, logs, retries, rate limitation) BotKit Largest community Bot framework Cross platform support with code reuse (no magic convert button: events name, message formatting) Advanced Key/Value data store (user / space level) Powerful conversational paradigm
  • 29.
    Taking bots tothe next stage
  • 30.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public • EMEAR Digital Transformation Team • Cisco Spark Apps & APIs • #nodejs #python #django #js #assembly #visualbasic #pascal • Loves Home Automation • twitter://@DJ_F3 • tools.sparkintegration.club Dirk-Jan Uittenbogaard “Nothing is impossible, the word itself says “I'm possible”! -- Audry H duittenb@cisco.com @DJ_F3
  • 31.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Cisco Spark Secure & Open Complete & Simple Spark for Developers User Integrations, APIs/SDKs... Spark Hybrid Services Cloud + Prem Partner Services Interconnect Message Meeting Call 1:1 and team messaging Cloud-based phone systemAudio, video, and web meetings 31
  • 32.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public • One Platform • Over 35 Microservice APIs • Over 600 REST endpoints • Public and internal endpoints Cisco Microservice Cloud Identity Video Encryption Call Control Conversations File Management Devices Provisioning Event Delivery Rooms Messages SOLUTION Teams Admin
  • 33.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Spark SDK for JavaScript Resources Quick Start Guide https://ciscospark.github.io/spark-js- sdk/example/getting-started/ Sample App https://ciscospark.github.io/spark-js-sdk/app/ Open source code https://github.com/ciscospark/spark-js-sdk API reference https://ciscospark.github.io/spark-js-sdk/api/ And more to come …
  • 34.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Spark SDK for iOS … is a set of tools Quick Start Guide https://developer.ciscospark.com/iosquickstart.html Sample App https://github.com/ciscospark/spark-ios-sdk-example Open source code https://github.com/ciscospark/spark-ios-sdk API reference https://ciscospark.github.io/spark-ios-sdk/ And more to come …
  • 35.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public How does the Spark Board recognize me? Earth beams Sound Patience Karma
  • 36.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public How does the Spark Board recognize me? Earth Beams Sound Patience Karma In the Greenhouse, next to the entrance Try it yourself !
  • 37.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public
  • 38.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Taking bots to the next stage • But who created the bot ? • What is the usage policy ? • How can I contact support, send feedback ? • What about my data privacy ?
  • 39.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public @CiscoDevNet /about 39
  • 40.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Is the bot down ?
  • 41.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public 41 Enriched healthcheck
  • 42.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Is the bot down ? a proposal • Register the Bot in a Universal Database • Chat services supported • Healthcheck endpoints • Author, Policies • Metadata again… • chatbot.land domain reserved • who’s in ? twitter://@SteveSfartz 42
  • 43.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Hosting • Many options: IaaS, Containers, PaaS • Concerns: Availability, Scalability, Security, Rate Limitation • Pricing balance: who’s willing to pay for the bot, and how much • Heroku PaaS Free Dynos • AWS/Google/Microsoft free plans • Currently testing Serverless Functions
  • 44.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Google Functions 44
  • 45.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Bots as serverless functions 45 Remember? a bot is nothing more than a POST endpoint … with an healthcheck !
  • 46.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public The Serverless Functions opportunity > gcloud alpha functions deploy sparkbot --entry-point googlefunction --stage-bucket objectisadvantag-functions --trigger-http --memory 128MB --timeout 1s 46 https://github.com/ObjectIsAdvantag/devnetexpress-bot
  • 47.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Taking bots to the next stage • Pick Bots coding best practices & frameworks • Exception management, Retries • Help, Fallback command, Healthcheck • Conversations (test is challenging) • Choose the best hosting approach • Monitor your bot activity (Chatops / Analytics)
  • 48.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Other considerations Natural language processing • Think twice before going to NLP • Do you really need it ? B2C or B2B ? • Extra costs • Introduces a 3rd party (lowers your SLA) • Choose the best approach (local vs 3rd party) • https://devnetcreate.io/2017 Nick Marus’s Talk
  • 49.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public Other considerations Machine Learning • A bot companion can learn from my interactions, incrementally • Use case: classify my Twitter Followers • Who’s ready to pay for it ? • Data Privacy vs Real Cost
  • 50.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public • Self-service 15’ labs • Pre-installed laptops • Proctors to assist Get hands-on
  • 51.
    © 2017 Ciscoand/or its affiliates. All rights reserved. Cisco Public May 16th 9:00 Big Container - The power of Connections 11:30 IoT: Voice and Messages to the resue 12:30 Building advanced ChatBots All day Learn by taking a code lab with proctors May 17th 11:30 Microservices and containers networking: Contiv https://github.com/CiscoDevNet/codemotion-amsterdam-2017 Meet Cisco at CodeMotion
  • 52.