IBM Cloud
This is not just any cloud.
This is the IBM Cloud.Lecture @ University College Cork
November 22nd 2017
Sanjay Nayak
Michael O’Sullivan
IBM
Cloud
What is IBM Cloud?
•
Platform as a Service (PaaS), Infrastructure as a Service
(IaaS), Containers as a Service
•
Used to develop and host anything, including:
•
Web
•
Mobile
•
Big Data
•
New technologies
•
Watson
•
IoT
•
Blockchain
•
….
IBM
Cloud
Cloud Service Models
IBM
Cloud
More openness and choice
IBM Cloud is open. You choose how you build, deploy and
manage your apps. IBM Cloud makes the infrastructure available
for you.
Compute
Choose the level of
infrastructure abstraction
based on your app’s
architectural needs.
You can deploy on
Baremetal servers, VMs,
using Docker As A Service,
or on direct runtimes.
IBM
Cloud
IBM Cloud embraces Cloud Foundry
Cloud Foundry is an open source Platform as a Service – IBM
Cloud extends it with IBM, third party, and community built
services.
Deploy an app with push: cf push my_app
Bind your app to services from the Catalog:
cf create-service mysql free my_db
cf bind-service my_app my_db
IBM
Cloud
How does IBM Cloud work?
IBM
Cloud
Cloud Foundry: Diego Cells – Where
your apps live...
Source: https://docs.cloudfoundry.org/concepts/diego/diego-architecture.html
IBM
Cloud
Cloud Foundry: Diego Cells – Where
your apps live...
Source: https://docs.cloudfoundry.org/concepts/diego/diego-architecture.html
1. Cloud controller sends request to BBS.
2. BBS asks Auctioneer to request auction.
3. Reps accept auction requests.
4. Rep creates Garden container
to execute task.
5. Tasks registered with GoRouter
for external access.
IBM
Cloud
Containerized Applications

IBM Cloud now supports the deployment and scaling of applications using
Containers technology – your application code runs within a container.

Behind the scenes, your code runs within it's own namespace
on a shared Virtual Machine.

Docker is the most commonly used container engine used today...

Application code is bundled within a Docker Image.

The image is then used to create containers running your application.
IBM
Cloud
How does a Virtual Machine compare to a
Container?
Source: http://www.slideshare.net/tuna20073882/dockerhanoi-meetup-introduction-about-docker
IBM
Cloud
Docker Architecture
Source: https://docs.docker.com/engine/docker-overview/
IBM
Cloud
Docker Architecture
Source: https://docs.docker.com/engine/docker-overview/
1. Developer bundles artifacts into
a Docker image with
docker build
2. Image can be pushed to registry
with docker push
3. The image (and many more) can
be downloaded with
docker pull <image>
4. The image is used to create a
container with
docker run
IBM
Cloud
Containers on IBM Cloud - Kubernetes
Kubernetes is an open-source system for automating deployment, scaling,
and management of containerized applications as clusters.

Can run Docker containers.

Containers organised into Pods.

Pods are distributed among nodes that
form the cluster.

Applications running within a pod's
containers are exposed as services.

Built-in load balancing across pods.

Supports, versioning, monitoring,
and scaling. Source: https://kubernetes.io/docs/concepts/architecture/cloud-controller/
IBM
Cloud
Source: https://kubernetes.io/docs/concepts/architecture/cloud-controller/
Kubernetes: Architecture
IBM
Cloud
Kubernetes: Architecture
Source: https://kubernetes.io/docs/concepts/architecture/cloud-controller/
1. User request to create a
deployment received by
kube-apiserver.
2. Desired state written to etcd.
3. kube-scheduler will schedule
desired pods on worker nodes.
4. etcd updated to reflect current
state.
5. Controller-manager, watching etcd,
will ensure current state matches
desired state.
6. Controller-manager will initiate any
required actions when
resource-change requested.
IBM
Cloud
Kubernetes: Deployment Manifest
apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2 # tells deployment to run 2 pods matching the template
template: # create pods using pod definition in this template
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
IBM
Cloud
https://console.bluemix.net/registration
Get an IBM Cloud Lite Account – free for life!
IBM
Cloud
IBM Cloud links
IBM Cloud home
https://bluemix.net
1. Quickly design, build & secure a mobile app with Bluemix (12m 8s)
https://www.youtube.com/watch?v=8mObPtPRBkg
2. Ed Shee's Bluemix demo at the Cloud World Forum 2015
node.js web app app using Watson services (3min 14s)
https://www.youtube.com/watch?v=RZpp-nbpYGc
3. Intro + Demo - Node.js with redis service (14m 31s)
https://www.youtube.com/watch?v=GsGnyZedlFk
4. Teach Me How to Bluemix (58m and 10s)
https://www.youtube.com/watch?v=10GV_MfasW4
IBM
Cloud
IBM Cloud links
IBM Cloud Developer Tools
https://github.com/IBM-Bluemix/ibm-cloud-developer-tools
https://www.ibm.com/blogs/bluemix/2017/10/using-bluemix-devops-local-git-repository
IBM Git hosting
https://git.ng.bluemix.net
IBM Cloud Documentation
https://console.bluemix.net/docs/
Kubernetes Documentation
https://kubernetes.io
"Lite" Account Info
https://www.ibm.com/blogs/bluemix/2017/11/introducing-ibm-cloud-lite-account/

IBM Cloud UCC Talk, 22nd November 2017

  • 1.
    IBM Cloud This isnot just any cloud. This is the IBM Cloud.Lecture @ University College Cork November 22nd 2017 Sanjay Nayak Michael O’Sullivan
  • 2.
    IBM Cloud What is IBMCloud? • Platform as a Service (PaaS), Infrastructure as a Service (IaaS), Containers as a Service • Used to develop and host anything, including: • Web • Mobile • Big Data • New technologies • Watson • IoT • Blockchain • ….
  • 3.
  • 4.
    IBM Cloud More openness andchoice IBM Cloud is open. You choose how you build, deploy and manage your apps. IBM Cloud makes the infrastructure available for you. Compute Choose the level of infrastructure abstraction based on your app’s architectural needs. You can deploy on Baremetal servers, VMs, using Docker As A Service, or on direct runtimes.
  • 5.
    IBM Cloud IBM Cloud embracesCloud Foundry Cloud Foundry is an open source Platform as a Service – IBM Cloud extends it with IBM, third party, and community built services. Deploy an app with push: cf push my_app Bind your app to services from the Catalog: cf create-service mysql free my_db cf bind-service my_app my_db
  • 6.
  • 7.
    IBM Cloud Cloud Foundry: DiegoCells – Where your apps live... Source: https://docs.cloudfoundry.org/concepts/diego/diego-architecture.html
  • 8.
    IBM Cloud Cloud Foundry: DiegoCells – Where your apps live... Source: https://docs.cloudfoundry.org/concepts/diego/diego-architecture.html 1. Cloud controller sends request to BBS. 2. BBS asks Auctioneer to request auction. 3. Reps accept auction requests. 4. Rep creates Garden container to execute task. 5. Tasks registered with GoRouter for external access.
  • 9.
    IBM Cloud Containerized Applications  IBM Cloudnow supports the deployment and scaling of applications using Containers technology – your application code runs within a container.  Behind the scenes, your code runs within it's own namespace on a shared Virtual Machine.  Docker is the most commonly used container engine used today...  Application code is bundled within a Docker Image.  The image is then used to create containers running your application.
  • 10.
    IBM Cloud How does aVirtual Machine compare to a Container? Source: http://www.slideshare.net/tuna20073882/dockerhanoi-meetup-introduction-about-docker
  • 11.
  • 12.
    IBM Cloud Docker Architecture Source: https://docs.docker.com/engine/docker-overview/ 1.Developer bundles artifacts into a Docker image with docker build 2. Image can be pushed to registry with docker push 3. The image (and many more) can be downloaded with docker pull <image> 4. The image is used to create a container with docker run
  • 13.
    IBM Cloud Containers on IBMCloud - Kubernetes Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications as clusters.  Can run Docker containers.  Containers organised into Pods.  Pods are distributed among nodes that form the cluster.  Applications running within a pod's containers are exposed as services.  Built-in load balancing across pods.  Supports, versioning, monitoring, and scaling. Source: https://kubernetes.io/docs/concepts/architecture/cloud-controller/
  • 14.
  • 15.
    IBM Cloud Kubernetes: Architecture Source: https://kubernetes.io/docs/concepts/architecture/cloud-controller/ 1.User request to create a deployment received by kube-apiserver. 2. Desired state written to etcd. 3. kube-scheduler will schedule desired pods on worker nodes. 4. etcd updated to reflect current state. 5. Controller-manager, watching etcd, will ensure current state matches desired state. 6. Controller-manager will initiate any required actions when resource-change requested.
  • 16.
    IBM Cloud Kubernetes: Deployment Manifest apiVersion:apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 # tells deployment to run 2 pods matching the template template: # create pods using pod definition in this template metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80
  • 17.
  • 18.
    IBM Cloud IBM Cloud links IBMCloud home https://bluemix.net 1. Quickly design, build & secure a mobile app with Bluemix (12m 8s) https://www.youtube.com/watch?v=8mObPtPRBkg 2. Ed Shee's Bluemix demo at the Cloud World Forum 2015 node.js web app app using Watson services (3min 14s) https://www.youtube.com/watch?v=RZpp-nbpYGc 3. Intro + Demo - Node.js with redis service (14m 31s) https://www.youtube.com/watch?v=GsGnyZedlFk 4. Teach Me How to Bluemix (58m and 10s) https://www.youtube.com/watch?v=10GV_MfasW4
  • 19.
    IBM Cloud IBM Cloud links IBMCloud Developer Tools https://github.com/IBM-Bluemix/ibm-cloud-developer-tools https://www.ibm.com/blogs/bluemix/2017/10/using-bluemix-devops-local-git-repository IBM Git hosting https://git.ng.bluemix.net IBM Cloud Documentation https://console.bluemix.net/docs/ Kubernetes Documentation https://kubernetes.io "Lite" Account Info https://www.ibm.com/blogs/bluemix/2017/11/introducing-ibm-cloud-lite-account/

Editor's Notes

  • #3 Bluemix is an open-standards cloud-based platform for building, managing &amp; running applications of all types, including web, mobile, big data, analytics, and a bunchof new stuff like Watson, Blockchain, IoT etc.
  • #4 Bluemix is an open-standards cloud-based platform for building, managing &amp; running applications of all types, including web, mobile, big data, analytics, and a bunchof new stuff like Watson, Blockchain, IoT etc.
  • #5 You can deploy on OpenStack VMs, using Docker As A Service, or on direct runtimes Bluemix has its own Git, and it also has Jazz, but you can connect your Github account to it too – that allows you to keep your code externally Edit using the web IDE, or locally and use cloudfoundry command line tools. The dev tools include integration with Eclipse and cloud9 IDEs. I usually simply edit locally, commit using git, and then build on the service. The build can use Jenkins - Ask if they know Jenkins There’s a huge set of technologies and services – from IBM, from IBM partners, OpenSource, and you can use your own too On the subject of editing &amp; IDEs, since this is online, you can access from anywhere – this is my phone editing a web page in the Web IDE