SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Kubernetes
And
Serverless Computing
Workshop
With
IBM Cloud
Kubernetes and Serverless Workshop with IBM Cloud 1 / 39
Administrative Stuff before we start 3
Create account 3
Applying the voucher 5
Creating a Kubernetes Cluster 7
Serverless Computing 9
Quickstart “Hello World” 10
Seeing Serverless Code 10
REST access to a function 11
Postman 13
Web access to a function 14
A more complex example - Cloudant Events 15
Create a database 16
Gettings Database credentials 17
Create a database 19
Deploy the template 20
Function code 20
Add a document to the database 21
Monitor serverless computing 22
Kubernetes 23
Nodes 23
Web Apps 24
Python Watson Assistant Basic 25
Deploy project 25
Toolchain 27
See the demo in action 28
Kubernetes Dashboard 29
Kubernetes yaml file 30
Orion - the build-in editor 32
Repositor code checkin 34
See your application in action 35
The Watson Assistant 36
Intents 37
Entities 38
Conversation Flow 39
Kubernetes and Serverless Workshop with IBM Cloud 2 / 39
Administrative Stuff before we start
Hello and welcome to a journey into Serverless, Kubernetes, Devops, Watson Service and
hopefully fun. First of all, this tutorial is not meant to be done in one session, so don’t worry if
you don’t make it in the workshop itself. So let’s get ready to rock and roll.
Create account
We start with signing up for an
account at ​https://bluemix.net.
Sign up with your Email address,
name and a very secure
password.
Kubernetes and Serverless Workshop with IBM Cloud 3 / 39
After clicking create IBM creates a new account for you.
IBM will send you an email as shown below, please
click the containing link.
After clicking the link in your email your IBM ID and therefore the IBM Cloud account is ready
to be used. Yeah!
Kubernetes and Serverless Workshop with IBM Cloud 4 / 39
Welcome to the world of IBM Cloud aka Bluemix. This is the main dashboard. Whenever you
are lost somewhere just press the IBM Cloud button on top left to come back to this
dashboard.
The newly created account is a so called free account. Forever free without expiration but
with a limited amount of possibilities. So first we need to add a voucher to upgrade to a
normal account. This can be done in the Manage / Billing and Usage menu.
Applying the voucher
Kubernetes and Serverless Workshop with IBM Cloud 5 / 39
Under Billing / Feature Code please add the voucher code from IBM.
Sorry if you have to type it in and can not copy-paste it, it’s really long.
After doing so you will get this upgrade
information box. Very important here, the
upgrade to the trial account which we will
need for Kubernetes.
Kubernetes and Serverless Workshop with IBM Cloud 6 / 39
Let’s go back the the dashboard and press the “hamburger” menu icon on the left top side.
This will bring us to the All Categories Menu. For example here to the Watson Services part
where you can try the IBM Watson Services for free, give it try later on.
Creating a Kubernetes Cluster
As creating a Kubernetes Cluster in Bluemix takes some time we do it first before we
continue to work with the serverless part. The cluster management can be found under
“Containers”.
Please press the
“Containers in
Kubernetes Clusters”.
This will bring you to a
list of available
features. For now we
just press the “Create”
button.
Kubernetes and Serverless Workshop with IBM Cloud 7 / 39
Here we can see the kind of Kubernetes cluster we can create. With the trial account we can
only configure one free cluster. Let’s select the free cluster now. And press “Create Cluster”.
This will start the Kubernetes management system and one worker node.
IBM Cloud is doing now all the magic which is necessary to create a Kubernetes cluster in
the background.
Under Overview we can see the Cluster is in “Deploying” state and has one pending node.
Kubernetes and Serverless Workshop with IBM Cloud 8 / 39
Serverless Computing
Let’s give the IBM Cloud system some time to setup the Kubernetes cluster while we work
on the serverless part. If you don’t see the menu on the left side just press the “Hamburg”
menu button next to IBM
cloud again. Then press
“functions” or as marketing
likes to call it “serverless
computing”.
Serverless consists of
actions (functions written in
python, javascript or even C
or C++ inside docker
containers) which are
orchestrated in sequences
and triggered by external
events like e.g. DB entries,
IoT or slack chats. We will
see how all this works now
and try it with two examples.
Beside using the command
line tools (CLI) there is a very nice way to try out IBM functions or openwhisk just in a
browser window. So please press “start creating”.
Kubernetes and Serverless Workshop with IBM Cloud 9 / 39
Quickstart “Hello World”
For now we use the Quickstart Template to test out a very simple “Hello World”.
Please press the “Hello World”
template.
Seeing Serverless Code
This brings us to the configuration menu. Here you can change the language for the
template and give the package a nice name. It doesn't matter which language you choose,
as this is just a hello world and it’s available in many different languages, the concept is
always the same. Please select your favourite one and see how the functions should be
written in a very simple case of hello world. The following picture shows the javascript code.
As you can see each function is called with a json object as parameter and returns one json
object.
Kubernetes and Serverless Workshop with IBM Cloud 10 / 39
As you can see in the code the function checks for the key “name” in the input json and
returns a greeting with the name if it is in the json dictionary or just “hello stranger”.
Gratulation you just deployed your first serverless application. Well a very small one but it’s
already deployed in the IBM cloud and ready to be used globally. Now let’s see for the other
menu parts in the serverless menu.
Under runtime the timeout and the maximum amount of RAM used by this function can be
configured. As serverless computing is charged my TIME*RAM it can become really handy
to check here for the upper thresholds in order to minimize the cost in case a function does
not end or consumes all available RAM.
REST access to a function
Now we have a function deployed in the cloud but how can we trigger / access this function
to do some useful stuff for us. “Endpoints” lets you configure REST API endpoints or even
very simple web access in case you want your application to be public accessible.
Kubernetes and Serverless Workshop with IBM Cloud 11 / 39
First is the REST API endpoint. As this one is secured by an API-KEY we first need to
configure this API-KEY by pressing the link API-KEY. For now please copy this KEY by
pressing the copy icon to your clipboard.
The API-KEY consists of two parts, separated by “:”. The first part can we seen as a
username, while the second part is the password. An example API-KEY looks like this:
Kubernetes and Serverless Workshop with IBM Cloud 12 / 39
Postman
Testing a REST api can be done without any computer language by a very handy tool called
POSTMAN (​https://www.getpostman.com​). If you want you can install it now for the REST
api test, or just take a look at the screenshots for now.
Select POST as connection type and copy the URL from IBM Cloud into it. The API-KEY is
necessary for the Authorization part. As described the API-KEY consists of username and
password divided by “:”. Please copy the key parts into the Username and Password fields.
This is everything we need to do to access our serverless function. Press send to see the
result.
The function itself looks for the “name” in the calling json so if we want to try this part of the
serverless function we can click Body, select raw, JSON(application/json) and add this very
simple json file “{“name”:”ansi”}. Then press the send button to see the result of our call.
Kubernetes and Serverless Workshop with IBM Cloud 13 / 39
The response is a complex json file will all kind of runtime environment and statistic
information. Very important beside the response/result value is also the start and end time.
One key feature of serverless computing is the response time. These functions are loaded
and executed very fast without costing anything while not active. So you can have thousands
of functions waiting for being called without paying a single cent. Only when an event is
triggered the function is called and you pay by TIME*RAM which can be very very low.
As a technical background information you need to know the function itself is not actively
waiting for your call. It’s stored in a database and when you call it the first time the function is
pulled from the database and wrapped in the runtime environment before it is expected. This
can take up to 300 hundred milliseconds when it’s code like python or javascript. When it is a
docker container for java or C++ or even GO it can take some time to fetch the docker
container out of a repository. But this is only the first call, all following calls are started within
some milliseconds. When a function is not called for several minutes the runtime is removed
and the following later call will take again some time.
Web access to a function
Using the API-KEY and the full REST interface is necessary when you want to use the
function with your program. Maybe you place some parts of your program in Kubernetes
some other parts in Cloud Foundry and other parts in Openwhisk. Is this case the access
need to be controlled.
But sometimes you want to expose your function to the web itself without password. In this
case you can activate the “Enable as Web Action”. In this case Openwhisk provides an URL
which can be called without any password directly from a webpage. E.g. a Formular. Try the
Public URL in your browser.
Kubernetes and Serverless Workshop with IBM Cloud 14 / 39
A more complex example - Cloudant Events
Now let’s do something more complex and meaningfull. For example monitor a database
and calculate some values whenever there is a new document or someone changed a
document.
Let’s go back to the “Hamburger” menu and press Functions and again the “Quickstart
Templates”.
This time we select “Cloudant Events” as the template.
As you can see this time it is more complex and there is an action sequence involved. The
first one reads data from a database and hands it over to the second one.
Kubernetes and Serverless Workshop with IBM Cloud 15 / 39
Beside the action sequence there is also a trigger involved. Listening to the cloudant
database for changes and starts the sequence in case of changes.
Create a database
As we want to work with a database we need to create one first. This can be done very
easily in bluemix. Select the “Create a new instance” and you will see this popup.
The “Let’s go” button brings
us to the cloudant service
request menu. Make sure
you select the right location
where you have done
everything else before and
press create.
Kubernetes and Serverless Workshop with IBM Cloud 16 / 39
Now we have a NoSQL database
up and running. What we need now
are the credentials to access this
database. This can be done in the
“Service credentials” on the left
side.
Gettings Database credentials
On a newly created database there are no external credentials configured. So let’s create
one by pressing “New credentials”.
Kubernetes and Serverless Workshop with IBM Cloud 17 / 39
Nothing special to configure so just
press “Add”.
Now we have REST credentials for
the cloudant database. Press the
little arrow down next to “View
Credentials”. These credentials we
will need later on for the trigger in
your function.
Beside the access credentials we also need a database configured. This can be done with
the Cloudant web interface. Press the “Manage” menu on the left side and then the
“LAUNCH” on the right side.
This brings is to the cloudant
dashboard. We can modify
databases, see and modify data
aso. For now we just want to add
a new database.
Kubernetes and Serverless Workshop with IBM Cloud 18 / 39
Create a database
This can be done
on the top right
side with “Create
Database”. This
name is also
important for the
trigger
configuration.
Back to the function window in your browser. Press “OK” on the popup.
Kubernetes and Serverless Workshop with IBM Cloud 19 / 39
Deploy the template
Now we can add the Username, Password, Host from the credentials window and also the
database name we created. “Deploy” will install the trigger, actions and also the sequence.
Under “Sequence” we can now see, modify and trigger our sequence.
Function code
But first let’s have a look at the code itself and find out what the “Process-Change” is doing.
As we can see it searches for “name” and “color” fields in the database document and
returns a message containing both words. So let’s create a new database document
containing these keywords.
Kubernetes and Serverless Workshop with IBM Cloud 20 / 39
Add a document to the database
So let’s create a new database document with these words and see what happens. Please
go back to your Cloudant dashboard window and press the Database Symbol on the left
side. (The stacked disks.)
And then select your database. Top right there is the “Create Document” button.
NoSQL databases work with
json documents. So all we
need to do is to add at least
two key-value entries like
these to the database. Please
make sure you have commas
behind each line, except the
last one.
Kubernetes and Serverless Workshop with IBM Cloud 21 / 39
After pressing “Create Document” we will see the document added to our database.
Monitor serverless computing
But back to the function window where we hopefully see the trigger and sequence in action.
This can be done on the left menu with “Monitor”. Under activity log there is hopefully an
entry, telling you the created message with the name and color included.
This was the function aka serverless part of the workshop. Now for a simple demo deploy in
kubernetes.
Kubernetes and Serverless Workshop with IBM Cloud 22 / 39
Kubernetes
OK, let’s dive right into Kubernetes. Click the IBM Cloud logo in order to get back to the main
dashboard. Here we see now the kubernetes cluster with 1 node. Click on your clustername.
Nodes
As we can see now in the overview the cluster is ready and the node is ready too.
Under worker nodes you can get more information on the workers, add more worker nodes
or delete worker nodes. Depending on your workload you can manage your servers here.
Kubernetes and Serverless Workshop with IBM Cloud 23 / 39
Web Apps
Like we saw in the serverless part there is
an easy way to install templates and already
existing demo approcations. Please press
the “Hamburger” menu and select “Web
Apps”.
This brings us to the
Cloud App Service
Center. Beside
information on the
command line
interface there is
also the Web part. A
perfect place to
deploy and manage
complex
applications. Please
press the “Get
Started” button
there.
Kubernetes and Serverless Workshop with IBM Cloud 24 / 39
Python Watson Assistant Basic
Now you see a huge variation of already
existing applications. A great start from
“Hello World” to already complex
applications. For now we select the “Python
Watson Assistant Basic” application.
As we configure now a complete project
with source code, deployment pipeline and
services we need to provide a project name
and also a hostname plus domain. Please
press “Create Project”.
Deploy project
Now our project and the requested services are configured. Let’s deploy the project now on
the cloud by
pressing
“Deploy to
Cloud”.
Kubernetes and Serverless Workshop with IBM Cloud 25 / 39
Here we can choose between a kubernetes and cloud foundry installation. So let’s select our
cluster and press “Create”.
Now we have the project
configured and a
deployment pipeline for
our project, including a
toolchain for change
management and
automatic deploy. Press
the “view toolchain” in
order to see how the
source code is managed
and the automatic deploy
works.
Kubernetes and Serverless Workshop with IBM Cloud 26 / 39
Toolchain
This is our toolchain. IBM
Cloud has a build in github
including git source
management and Issue
tracking. For now let’s
concentrate on the deliver
part of the toolchain. Simply
press the “Deliver Pipeline”
icon.
The deployment has 2 steps. The first one takes care of getting the source code and building
the docker container
and the second stage
is responsible for
deploying the
container on the
kubernetes cluster.
Kubernetes and Serverless Workshop with IBM Cloud 27 / 39
In order to get the URL for our active project we need to have a look at the logfiles in the
“Deploy Stage”. Please press “View logs and history”. Scroll down to the very end and check
for the URL. In this case 184.173.47.76:32590
See the demo in action
If you open this URL you can see your installation of a very simple chat bot application using
Watson services. On the left side you can chat with your car-AI and on the right side you see
the JSON object which are exchanged between your app and the Watson conversation
service.
Kubernetes and Serverless Workshop with IBM Cloud 28 / 39
Kubernetes Dashboard
Now let’s see how the application is installed on kubernetes. Let’s go back to the main
dashboard and then to your cluster. On the top right is the “Kubernetes Dashboard” button.
This opens a new window the the official kubernetes dashboard.
Here you can get all information about your cluster, the installed applications, the services
within kube and a lot of other stuff.
Kubernetes and Serverless Workshop with IBM Cloud 29 / 39
For now we concentrate on the installed application. This is managed in a “Pod”.
Kubernetes yaml file
If you want to see the configuration and the deployment yaml files there is a “Edit” button on
top right of your dashboard.
Kubernetes and Serverless Workshop with IBM Cloud 30 / 39
Now let’s see how easy it is to chance the application
code and see the deployment pipeline in action. First
we need to go back to our DevOps pipeline. The
easiest path is via the “Hamburger” menu, then
DepOps, ToolChains and then your project.
Kubernetes and Serverless Workshop with IBM Cloud 31 / 39
Orion - the build-in editor
This time we use the web based online Editor “Orion”
This brings us directly to our source code. The landing page just show you the README.md
file of your project. What we want to do now is to chance one line in the CSS file. This file
can be found by opening the source code tree on the left side.
Kubernetes and Serverless Workshop with IBM Cloud 32 / 39
The CSS file is located at public / css. Please change the line 118 in app.css “color: “ to
whatever color you like.
Kubernetes and Serverless Workshop with IBM Cloud 33 / 39
Repositor code checkin
Now we changed to source code and need to check it in into our repository. The build in
version manager can be found on the left side. Directly under the edit icon. First we need to
commit our change by adding a comment and pressing the “Commit” button and then we
can push our changes to the repository with the sync button on the left side.
After syncing the repository manager should report “Nothing to commit”
Kubernetes and Serverless Workshop with IBM Cloud 34 / 39
Now back to our
deployment pipeline. Here
we see the first stage has
picked up the changes and
rebuild the container.
See your application in action
As soon as the second stage is finished we can reload our application in the other browser
window. No Watsons anser has changed from white to your selected color.
Kubernetes and Serverless Workshop with IBM Cloud 35 / 39
Now as a final step, let’s have a look at the underlying watson service. If you open the main
IBM cloud dashboard you see there is a new service called “Watson Assistant”, press it in
order to open the detailed information page. At the Manage page you see the “Open tool”
button. Please press it.
The Watson Assistant
The Watson Assistant is a very powerful but also complex service. Just let’s have a very very
short impression. Please press the Workspaces button to see the existing workspaces.
Kubernetes and Serverless Workshop with IBM Cloud 36 / 39
The Workspace we used is the “Car Dashboard sample”.
Intents
Every Conversation consists if 3 parts. The First one is the “Intents”, basically what is the
intention a conversation has.
Kubernetes and Serverless Workshop with IBM Cloud 37 / 39
Entities
The second one are the entities which we may encounter in our conversation.
Kubernetes and Serverless Workshop with IBM Cloud 38 / 39
Conversation Flow
And the last one is the conversation flow. For example if we ask to switch on music the
system does not know what kind of music so the conversation service ask for the genre
before the underlying business code can switch on the radio.
This is the end of this tutorial. Ufffffff. I hope you had some fun and learned how to use
Kubernetes and Serverless in the IBM Cloud. For sure this was a rough ride and only on the
surface but I can be used as a starter to a fantastic journey. If you have more questions the
documentation which you can always find on the top right corner is very detailed and
explains both the high level part but also the low level API access parts.
Kubernetes and Serverless Workshop with IBM Cloud 39 / 39

Más contenido relacionado

La actualidad más candente

Migrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsMigrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsYan Cui
 
JOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best PracticesJOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best PracticesJordan Open Source Association
 
Cutting the Fat
Cutting the FatCutting the Fat
Cutting the FatCodemotion
 
I can haz HTTP - Consuming and producing HTTP APIs in the Ruby ecosystem
I can haz HTTP - Consuming and producing HTTP APIs in the Ruby ecosystemI can haz HTTP - Consuming and producing HTTP APIs in the Ruby ecosystem
I can haz HTTP - Consuming and producing HTTP APIs in the Ruby ecosystemSidu Ponnappa
 
WF 4.0 Overview
WF 4.0 OverviewWF 4.0 Overview
WF 4.0 Overviewdannicola
 
Building Event Driven API Services Using Webhooks
Building Event Driven API Services Using WebhooksBuilding Event Driven API Services Using Webhooks
Building Event Driven API Services Using WebhooksCloud Elements
 
Node.js to the rescue
Node.js to the rescueNode.js to the rescue
Node.js to the rescueMarko Heijnen
 
10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James Clancey10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James ClanceyXamarin
 
Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5John Coggeshall
 
Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3Vishal Biyani
 
Asynchronous reading and writing http r equest
Asynchronous reading and writing http r equestAsynchronous reading and writing http r equest
Asynchronous reading and writing http r equestPragyanshis Patnaik
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastAtlassian
 
"Building a Production-Grade Serverless Deployment" - Eoin Shanaghy, CTO, fo...
"Building a Production-Grade Serverless Deployment"  - Eoin Shanaghy, CTO, fo..."Building a Production-Grade Serverless Deployment"  - Eoin Shanaghy, CTO, fo...
"Building a Production-Grade Serverless Deployment" - Eoin Shanaghy, CTO, fo...LCloud
 
Ntu workshop : REST, PayPal APIs & Async
Ntu workshop : REST, PayPal APIs & AsyncNtu workshop : REST, PayPal APIs & Async
Ntu workshop : REST, PayPal APIs & AsyncAeshan Wijetunge
 
Using CI for continuous delivery Part 2
Using CI for continuous delivery Part 2Using CI for continuous delivery Part 2
Using CI for continuous delivery Part 2Vishal Biyani
 

La actualidad más candente (20)

Migrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 stepsMigrating existing monolith to serverless in 8 steps
Migrating existing monolith to serverless in 8 steps
 
Hidden Gems in ColdFusion 11
Hidden Gems in ColdFusion 11Hidden Gems in ColdFusion 11
Hidden Gems in ColdFusion 11
 
JOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best PracticesJOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best Practices
 
Cutting the Fat
Cutting the FatCutting the Fat
Cutting the Fat
 
I can haz HTTP - Consuming and producing HTTP APIs in the Ruby ecosystem
I can haz HTTP - Consuming and producing HTTP APIs in the Ruby ecosystemI can haz HTTP - Consuming and producing HTTP APIs in the Ruby ecosystem
I can haz HTTP - Consuming and producing HTTP APIs in the Ruby ecosystem
 
Cocoon OSGi CocoonGT2007
Cocoon OSGi CocoonGT2007Cocoon OSGi CocoonGT2007
Cocoon OSGi CocoonGT2007
 
WF 4.0 Overview
WF 4.0 OverviewWF 4.0 Overview
WF 4.0 Overview
 
Building Event Driven API Services Using Webhooks
Building Event Driven API Services Using WebhooksBuilding Event Driven API Services Using Webhooks
Building Event Driven API Services Using Webhooks
 
Node.js to the rescue
Node.js to the rescueNode.js to the rescue
Node.js to the rescue
 
Web Hooks
Web HooksWeb Hooks
Web Hooks
 
10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James Clancey10 Must-Use Components for Your Mobile Apps, James Clancey
10 Must-Use Components for Your Mobile Apps, James Clancey
 
Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5
 
Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3Using CI for continuous delivery Part 3
Using CI for continuous delivery Part 3
 
java
java java
java
 
Asynchronous reading and writing http r equest
Asynchronous reading and writing http r equestAsynchronous reading and writing http r equest
Asynchronous reading and writing http r equest
 
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fastHow Bitbucket Pipelines Loads Connect UI Assets Super-fast
How Bitbucket Pipelines Loads Connect UI Assets Super-fast
 
"Building a Production-Grade Serverless Deployment" - Eoin Shanaghy, CTO, fo...
"Building a Production-Grade Serverless Deployment"  - Eoin Shanaghy, CTO, fo..."Building a Production-Grade Serverless Deployment"  - Eoin Shanaghy, CTO, fo...
"Building a Production-Grade Serverless Deployment" - Eoin Shanaghy, CTO, fo...
 
Ntu workshop : REST, PayPal APIs & Async
Ntu workshop : REST, PayPal APIs & AsyncNtu workshop : REST, PayPal APIs & Async
Ntu workshop : REST, PayPal APIs & Async
 
Chatbots
ChatbotsChatbots
Chatbots
 
Using CI for continuous delivery Part 2
Using CI for continuous delivery Part 2Using CI for continuous delivery Part 2
Using CI for continuous delivery Part 2
 

Similar a Serverless and Kubernetes Workshop on IBM Cloud

Untangling the web9
Untangling the web9Untangling the web9
Untangling the web9Derek Jacoby
 
learn mvc project in 7 day
learn mvc project in 7 daylearn mvc project in 7 day
learn mvc project in 7 dayQuach Long
 
Serverless in production, an experience report (London js community)
Serverless in production, an experience report (London js community)Serverless in production, an experience report (London js community)
Serverless in production, an experience report (London js community)Yan Cui
 
Part 1 implementing a simple_web_service
Part 1 implementing a simple_web_servicePart 1 implementing a simple_web_service
Part 1 implementing a simple_web_servicekrishmdkk
 
Serverless in production, an experience report (microservices london)
Serverless in production, an experience report (microservices london)Serverless in production, an experience report (microservices london)
Serverless in production, an experience report (microservices london)Yan Cui
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Mikkel Flindt Heisterberg
 
Lecture2 interactive-start
Lecture2 interactive-startLecture2 interactive-start
Lecture2 interactive-startDennis Seidel
 
Serverless in production, an experience report (BuildStuff)
Serverless in production, an experience report (BuildStuff)Serverless in production, an experience report (BuildStuff)
Serverless in production, an experience report (BuildStuff)Yan Cui
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Yan Cui
 
End-to-end CI/CD deployments of containerized applications using AWS services
End-to-end CI/CD deployments of containerized applications using AWS servicesEnd-to-end CI/CD deployments of containerized applications using AWS services
End-to-end CI/CD deployments of containerized applications using AWS servicesMassimo Ferre'
 
NTS: What We Do With OpenNebula - and Why We Do It
NTS: What We Do With OpenNebula - and Why We Do ItNTS: What We Do With OpenNebula - and Why We Do It
NTS: What We Do With OpenNebula - and Why We Do ItOpenNebula Project
 
Accelerating your application development with IBM BlueMix (Your dream devel...
Accelerating your application development with IBM BlueMix (Your dream devel...Accelerating your application development with IBM BlueMix (Your dream devel...
Accelerating your application development with IBM BlueMix (Your dream devel...Supal Chowdhury
 
Containers Lab
Containers Lab Containers Lab
Containers Lab Dev_Events
 
Creating & consuming simple web service
Creating & consuming simple web serviceCreating & consuming simple web service
Creating & consuming simple web serviceAbhijit B.
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 serversMark Myers
 
Building A Simple Web Service With CXF
Building A Simple Web Service With CXFBuilding A Simple Web Service With CXF
Building A Simple Web Service With CXFCarl Lu
 
AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless Way
 AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless Way AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless Way
AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless WaySrushith Repakula
 
AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless W...
AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless W...AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless W...
AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless W...CodeOps Technologies LLP
 
3 Ways to Get Started with a React App in 2024.pdf
3 Ways to Get Started with a React App in 2024.pdf3 Ways to Get Started with a React App in 2024.pdf
3 Ways to Get Started with a React App in 2024.pdfBOSC Tech Labs
 

Similar a Serverless and Kubernetes Workshop on IBM Cloud (20)

Untangling the web9
Untangling the web9Untangling the web9
Untangling the web9
 
learn mvc project in 7 day
learn mvc project in 7 daylearn mvc project in 7 day
learn mvc project in 7 day
 
Serverless in production, an experience report (London js community)
Serverless in production, an experience report (London js community)Serverless in production, an experience report (London js community)
Serverless in production, an experience report (London js community)
 
Part 1 implementing a simple_web_service
Part 1 implementing a simple_web_servicePart 1 implementing a simple_web_service
Part 1 implementing a simple_web_service
 
Serverless in production, an experience report (microservices london)
Serverless in production, an experience report (microservices london)Serverless in production, an experience report (microservices london)
Serverless in production, an experience report (microservices london)
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
Lecture2 interactive-start
Lecture2 interactive-startLecture2 interactive-start
Lecture2 interactive-start
 
Serverless in production, an experience report (BuildStuff)
Serverless in production, an experience report (BuildStuff)Serverless in production, an experience report (BuildStuff)
Serverless in production, an experience report (BuildStuff)
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)
 
Bluemix DevOps Services
Bluemix DevOps Services Bluemix DevOps Services
Bluemix DevOps Services
 
End-to-end CI/CD deployments of containerized applications using AWS services
End-to-end CI/CD deployments of containerized applications using AWS servicesEnd-to-end CI/CD deployments of containerized applications using AWS services
End-to-end CI/CD deployments of containerized applications using AWS services
 
NTS: What We Do With OpenNebula - and Why We Do It
NTS: What We Do With OpenNebula - and Why We Do ItNTS: What We Do With OpenNebula - and Why We Do It
NTS: What We Do With OpenNebula - and Why We Do It
 
Accelerating your application development with IBM BlueMix (Your dream devel...
Accelerating your application development with IBM BlueMix (Your dream devel...Accelerating your application development with IBM BlueMix (Your dream devel...
Accelerating your application development with IBM BlueMix (Your dream devel...
 
Containers Lab
Containers Lab Containers Lab
Containers Lab
 
Creating & consuming simple web service
Creating & consuming simple web serviceCreating & consuming simple web service
Creating & consuming simple web service
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 servers
 
Building A Simple Web Service With CXF
Building A Simple Web Service With CXFBuilding A Simple Web Service With CXF
Building A Simple Web Service With CXF
 
AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless Way
 AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless Way AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless Way
AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless Way
 
AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless W...
AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless W...AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless W...
AWS Lambda Hands-on: How to Create Phone Call Notifications in a Serverless W...
 
3 Ways to Get Started with a React App in 2024.pdf
3 Ways to Get Started with a React App in 2024.pdf3 Ways to Get Started with a React App in 2024.pdf
3 Ways to Get Started with a React App in 2024.pdf
 

Último

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Serverless and Kubernetes Workshop on IBM Cloud

  • 1. Kubernetes And Serverless Computing Workshop With IBM Cloud Kubernetes and Serverless Workshop with IBM Cloud 1 / 39
  • 2. Administrative Stuff before we start 3 Create account 3 Applying the voucher 5 Creating a Kubernetes Cluster 7 Serverless Computing 9 Quickstart “Hello World” 10 Seeing Serverless Code 10 REST access to a function 11 Postman 13 Web access to a function 14 A more complex example - Cloudant Events 15 Create a database 16 Gettings Database credentials 17 Create a database 19 Deploy the template 20 Function code 20 Add a document to the database 21 Monitor serverless computing 22 Kubernetes 23 Nodes 23 Web Apps 24 Python Watson Assistant Basic 25 Deploy project 25 Toolchain 27 See the demo in action 28 Kubernetes Dashboard 29 Kubernetes yaml file 30 Orion - the build-in editor 32 Repositor code checkin 34 See your application in action 35 The Watson Assistant 36 Intents 37 Entities 38 Conversation Flow 39 Kubernetes and Serverless Workshop with IBM Cloud 2 / 39
  • 3. Administrative Stuff before we start Hello and welcome to a journey into Serverless, Kubernetes, Devops, Watson Service and hopefully fun. First of all, this tutorial is not meant to be done in one session, so don’t worry if you don’t make it in the workshop itself. So let’s get ready to rock and roll. Create account We start with signing up for an account at ​https://bluemix.net. Sign up with your Email address, name and a very secure password. Kubernetes and Serverless Workshop with IBM Cloud 3 / 39
  • 4. After clicking create IBM creates a new account for you. IBM will send you an email as shown below, please click the containing link. After clicking the link in your email your IBM ID and therefore the IBM Cloud account is ready to be used. Yeah! Kubernetes and Serverless Workshop with IBM Cloud 4 / 39
  • 5. Welcome to the world of IBM Cloud aka Bluemix. This is the main dashboard. Whenever you are lost somewhere just press the IBM Cloud button on top left to come back to this dashboard. The newly created account is a so called free account. Forever free without expiration but with a limited amount of possibilities. So first we need to add a voucher to upgrade to a normal account. This can be done in the Manage / Billing and Usage menu. Applying the voucher Kubernetes and Serverless Workshop with IBM Cloud 5 / 39
  • 6. Under Billing / Feature Code please add the voucher code from IBM. Sorry if you have to type it in and can not copy-paste it, it’s really long. After doing so you will get this upgrade information box. Very important here, the upgrade to the trial account which we will need for Kubernetes. Kubernetes and Serverless Workshop with IBM Cloud 6 / 39
  • 7. Let’s go back the the dashboard and press the “hamburger” menu icon on the left top side. This will bring us to the All Categories Menu. For example here to the Watson Services part where you can try the IBM Watson Services for free, give it try later on. Creating a Kubernetes Cluster As creating a Kubernetes Cluster in Bluemix takes some time we do it first before we continue to work with the serverless part. The cluster management can be found under “Containers”. Please press the “Containers in Kubernetes Clusters”. This will bring you to a list of available features. For now we just press the “Create” button. Kubernetes and Serverless Workshop with IBM Cloud 7 / 39
  • 8. Here we can see the kind of Kubernetes cluster we can create. With the trial account we can only configure one free cluster. Let’s select the free cluster now. And press “Create Cluster”. This will start the Kubernetes management system and one worker node. IBM Cloud is doing now all the magic which is necessary to create a Kubernetes cluster in the background. Under Overview we can see the Cluster is in “Deploying” state and has one pending node. Kubernetes and Serverless Workshop with IBM Cloud 8 / 39
  • 9. Serverless Computing Let’s give the IBM Cloud system some time to setup the Kubernetes cluster while we work on the serverless part. If you don’t see the menu on the left side just press the “Hamburg” menu button next to IBM cloud again. Then press “functions” or as marketing likes to call it “serverless computing”. Serverless consists of actions (functions written in python, javascript or even C or C++ inside docker containers) which are orchestrated in sequences and triggered by external events like e.g. DB entries, IoT or slack chats. We will see how all this works now and try it with two examples. Beside using the command line tools (CLI) there is a very nice way to try out IBM functions or openwhisk just in a browser window. So please press “start creating”. Kubernetes and Serverless Workshop with IBM Cloud 9 / 39
  • 10. Quickstart “Hello World” For now we use the Quickstart Template to test out a very simple “Hello World”. Please press the “Hello World” template. Seeing Serverless Code This brings us to the configuration menu. Here you can change the language for the template and give the package a nice name. It doesn't matter which language you choose, as this is just a hello world and it’s available in many different languages, the concept is always the same. Please select your favourite one and see how the functions should be written in a very simple case of hello world. The following picture shows the javascript code. As you can see each function is called with a json object as parameter and returns one json object. Kubernetes and Serverless Workshop with IBM Cloud 10 / 39
  • 11. As you can see in the code the function checks for the key “name” in the input json and returns a greeting with the name if it is in the json dictionary or just “hello stranger”. Gratulation you just deployed your first serverless application. Well a very small one but it’s already deployed in the IBM cloud and ready to be used globally. Now let’s see for the other menu parts in the serverless menu. Under runtime the timeout and the maximum amount of RAM used by this function can be configured. As serverless computing is charged my TIME*RAM it can become really handy to check here for the upper thresholds in order to minimize the cost in case a function does not end or consumes all available RAM. REST access to a function Now we have a function deployed in the cloud but how can we trigger / access this function to do some useful stuff for us. “Endpoints” lets you configure REST API endpoints or even very simple web access in case you want your application to be public accessible. Kubernetes and Serverless Workshop with IBM Cloud 11 / 39
  • 12. First is the REST API endpoint. As this one is secured by an API-KEY we first need to configure this API-KEY by pressing the link API-KEY. For now please copy this KEY by pressing the copy icon to your clipboard. The API-KEY consists of two parts, separated by “:”. The first part can we seen as a username, while the second part is the password. An example API-KEY looks like this: Kubernetes and Serverless Workshop with IBM Cloud 12 / 39
  • 13. Postman Testing a REST api can be done without any computer language by a very handy tool called POSTMAN (​https://www.getpostman.com​). If you want you can install it now for the REST api test, or just take a look at the screenshots for now. Select POST as connection type and copy the URL from IBM Cloud into it. The API-KEY is necessary for the Authorization part. As described the API-KEY consists of username and password divided by “:”. Please copy the key parts into the Username and Password fields. This is everything we need to do to access our serverless function. Press send to see the result. The function itself looks for the “name” in the calling json so if we want to try this part of the serverless function we can click Body, select raw, JSON(application/json) and add this very simple json file “{“name”:”ansi”}. Then press the send button to see the result of our call. Kubernetes and Serverless Workshop with IBM Cloud 13 / 39
  • 14. The response is a complex json file will all kind of runtime environment and statistic information. Very important beside the response/result value is also the start and end time. One key feature of serverless computing is the response time. These functions are loaded and executed very fast without costing anything while not active. So you can have thousands of functions waiting for being called without paying a single cent. Only when an event is triggered the function is called and you pay by TIME*RAM which can be very very low. As a technical background information you need to know the function itself is not actively waiting for your call. It’s stored in a database and when you call it the first time the function is pulled from the database and wrapped in the runtime environment before it is expected. This can take up to 300 hundred milliseconds when it’s code like python or javascript. When it is a docker container for java or C++ or even GO it can take some time to fetch the docker container out of a repository. But this is only the first call, all following calls are started within some milliseconds. When a function is not called for several minutes the runtime is removed and the following later call will take again some time. Web access to a function Using the API-KEY and the full REST interface is necessary when you want to use the function with your program. Maybe you place some parts of your program in Kubernetes some other parts in Cloud Foundry and other parts in Openwhisk. Is this case the access need to be controlled. But sometimes you want to expose your function to the web itself without password. In this case you can activate the “Enable as Web Action”. In this case Openwhisk provides an URL which can be called without any password directly from a webpage. E.g. a Formular. Try the Public URL in your browser. Kubernetes and Serverless Workshop with IBM Cloud 14 / 39
  • 15. A more complex example - Cloudant Events Now let’s do something more complex and meaningfull. For example monitor a database and calculate some values whenever there is a new document or someone changed a document. Let’s go back to the “Hamburger” menu and press Functions and again the “Quickstart Templates”. This time we select “Cloudant Events” as the template. As you can see this time it is more complex and there is an action sequence involved. The first one reads data from a database and hands it over to the second one. Kubernetes and Serverless Workshop with IBM Cloud 15 / 39
  • 16. Beside the action sequence there is also a trigger involved. Listening to the cloudant database for changes and starts the sequence in case of changes. Create a database As we want to work with a database we need to create one first. This can be done very easily in bluemix. Select the “Create a new instance” and you will see this popup. The “Let’s go” button brings us to the cloudant service request menu. Make sure you select the right location where you have done everything else before and press create. Kubernetes and Serverless Workshop with IBM Cloud 16 / 39
  • 17. Now we have a NoSQL database up and running. What we need now are the credentials to access this database. This can be done in the “Service credentials” on the left side. Gettings Database credentials On a newly created database there are no external credentials configured. So let’s create one by pressing “New credentials”. Kubernetes and Serverless Workshop with IBM Cloud 17 / 39
  • 18. Nothing special to configure so just press “Add”. Now we have REST credentials for the cloudant database. Press the little arrow down next to “View Credentials”. These credentials we will need later on for the trigger in your function. Beside the access credentials we also need a database configured. This can be done with the Cloudant web interface. Press the “Manage” menu on the left side and then the “LAUNCH” on the right side. This brings is to the cloudant dashboard. We can modify databases, see and modify data aso. For now we just want to add a new database. Kubernetes and Serverless Workshop with IBM Cloud 18 / 39
  • 19. Create a database This can be done on the top right side with “Create Database”. This name is also important for the trigger configuration. Back to the function window in your browser. Press “OK” on the popup. Kubernetes and Serverless Workshop with IBM Cloud 19 / 39
  • 20. Deploy the template Now we can add the Username, Password, Host from the credentials window and also the database name we created. “Deploy” will install the trigger, actions and also the sequence. Under “Sequence” we can now see, modify and trigger our sequence. Function code But first let’s have a look at the code itself and find out what the “Process-Change” is doing. As we can see it searches for “name” and “color” fields in the database document and returns a message containing both words. So let’s create a new database document containing these keywords. Kubernetes and Serverless Workshop with IBM Cloud 20 / 39
  • 21. Add a document to the database So let’s create a new database document with these words and see what happens. Please go back to your Cloudant dashboard window and press the Database Symbol on the left side. (The stacked disks.) And then select your database. Top right there is the “Create Document” button. NoSQL databases work with json documents. So all we need to do is to add at least two key-value entries like these to the database. Please make sure you have commas behind each line, except the last one. Kubernetes and Serverless Workshop with IBM Cloud 21 / 39
  • 22. After pressing “Create Document” we will see the document added to our database. Monitor serverless computing But back to the function window where we hopefully see the trigger and sequence in action. This can be done on the left menu with “Monitor”. Under activity log there is hopefully an entry, telling you the created message with the name and color included. This was the function aka serverless part of the workshop. Now for a simple demo deploy in kubernetes. Kubernetes and Serverless Workshop with IBM Cloud 22 / 39
  • 23. Kubernetes OK, let’s dive right into Kubernetes. Click the IBM Cloud logo in order to get back to the main dashboard. Here we see now the kubernetes cluster with 1 node. Click on your clustername. Nodes As we can see now in the overview the cluster is ready and the node is ready too. Under worker nodes you can get more information on the workers, add more worker nodes or delete worker nodes. Depending on your workload you can manage your servers here. Kubernetes and Serverless Workshop with IBM Cloud 23 / 39
  • 24. Web Apps Like we saw in the serverless part there is an easy way to install templates and already existing demo approcations. Please press the “Hamburger” menu and select “Web Apps”. This brings us to the Cloud App Service Center. Beside information on the command line interface there is also the Web part. A perfect place to deploy and manage complex applications. Please press the “Get Started” button there. Kubernetes and Serverless Workshop with IBM Cloud 24 / 39
  • 25. Python Watson Assistant Basic Now you see a huge variation of already existing applications. A great start from “Hello World” to already complex applications. For now we select the “Python Watson Assistant Basic” application. As we configure now a complete project with source code, deployment pipeline and services we need to provide a project name and also a hostname plus domain. Please press “Create Project”. Deploy project Now our project and the requested services are configured. Let’s deploy the project now on the cloud by pressing “Deploy to Cloud”. Kubernetes and Serverless Workshop with IBM Cloud 25 / 39
  • 26. Here we can choose between a kubernetes and cloud foundry installation. So let’s select our cluster and press “Create”. Now we have the project configured and a deployment pipeline for our project, including a toolchain for change management and automatic deploy. Press the “view toolchain” in order to see how the source code is managed and the automatic deploy works. Kubernetes and Serverless Workshop with IBM Cloud 26 / 39
  • 27. Toolchain This is our toolchain. IBM Cloud has a build in github including git source management and Issue tracking. For now let’s concentrate on the deliver part of the toolchain. Simply press the “Deliver Pipeline” icon. The deployment has 2 steps. The first one takes care of getting the source code and building the docker container and the second stage is responsible for deploying the container on the kubernetes cluster. Kubernetes and Serverless Workshop with IBM Cloud 27 / 39
  • 28. In order to get the URL for our active project we need to have a look at the logfiles in the “Deploy Stage”. Please press “View logs and history”. Scroll down to the very end and check for the URL. In this case 184.173.47.76:32590 See the demo in action If you open this URL you can see your installation of a very simple chat bot application using Watson services. On the left side you can chat with your car-AI and on the right side you see the JSON object which are exchanged between your app and the Watson conversation service. Kubernetes and Serverless Workshop with IBM Cloud 28 / 39
  • 29. Kubernetes Dashboard Now let’s see how the application is installed on kubernetes. Let’s go back to the main dashboard and then to your cluster. On the top right is the “Kubernetes Dashboard” button. This opens a new window the the official kubernetes dashboard. Here you can get all information about your cluster, the installed applications, the services within kube and a lot of other stuff. Kubernetes and Serverless Workshop with IBM Cloud 29 / 39
  • 30. For now we concentrate on the installed application. This is managed in a “Pod”. Kubernetes yaml file If you want to see the configuration and the deployment yaml files there is a “Edit” button on top right of your dashboard. Kubernetes and Serverless Workshop with IBM Cloud 30 / 39
  • 31. Now let’s see how easy it is to chance the application code and see the deployment pipeline in action. First we need to go back to our DevOps pipeline. The easiest path is via the “Hamburger” menu, then DepOps, ToolChains and then your project. Kubernetes and Serverless Workshop with IBM Cloud 31 / 39
  • 32. Orion - the build-in editor This time we use the web based online Editor “Orion” This brings us directly to our source code. The landing page just show you the README.md file of your project. What we want to do now is to chance one line in the CSS file. This file can be found by opening the source code tree on the left side. Kubernetes and Serverless Workshop with IBM Cloud 32 / 39
  • 33. The CSS file is located at public / css. Please change the line 118 in app.css “color: “ to whatever color you like. Kubernetes and Serverless Workshop with IBM Cloud 33 / 39
  • 34. Repositor code checkin Now we changed to source code and need to check it in into our repository. The build in version manager can be found on the left side. Directly under the edit icon. First we need to commit our change by adding a comment and pressing the “Commit” button and then we can push our changes to the repository with the sync button on the left side. After syncing the repository manager should report “Nothing to commit” Kubernetes and Serverless Workshop with IBM Cloud 34 / 39
  • 35. Now back to our deployment pipeline. Here we see the first stage has picked up the changes and rebuild the container. See your application in action As soon as the second stage is finished we can reload our application in the other browser window. No Watsons anser has changed from white to your selected color. Kubernetes and Serverless Workshop with IBM Cloud 35 / 39
  • 36. Now as a final step, let’s have a look at the underlying watson service. If you open the main IBM cloud dashboard you see there is a new service called “Watson Assistant”, press it in order to open the detailed information page. At the Manage page you see the “Open tool” button. Please press it. The Watson Assistant The Watson Assistant is a very powerful but also complex service. Just let’s have a very very short impression. Please press the Workspaces button to see the existing workspaces. Kubernetes and Serverless Workshop with IBM Cloud 36 / 39
  • 37. The Workspace we used is the “Car Dashboard sample”. Intents Every Conversation consists if 3 parts. The First one is the “Intents”, basically what is the intention a conversation has. Kubernetes and Serverless Workshop with IBM Cloud 37 / 39
  • 38. Entities The second one are the entities which we may encounter in our conversation. Kubernetes and Serverless Workshop with IBM Cloud 38 / 39
  • 39. Conversation Flow And the last one is the conversation flow. For example if we ask to switch on music the system does not know what kind of music so the conversation service ask for the genre before the underlying business code can switch on the radio. This is the end of this tutorial. Ufffffff. I hope you had some fun and learned how to use Kubernetes and Serverless in the IBM Cloud. For sure this was a rough ride and only on the surface but I can be used as a starter to a fantastic journey. If you have more questions the documentation which you can always find on the top right corner is very detailed and explains both the high level part but also the low level API access parts. Kubernetes and Serverless Workshop with IBM Cloud 39 / 39