A lecture to the students of the University College Cork 3rd year Undergraduate Computer Science class, CS3311 (Middleware) module, and MSc Computer Science class, CS6312 (Mobile Devices and Systems) on IBM Hybrid Cloud. The presentation provides a brief overview of the different technologies that can be used to deploy applications on the IBM Cloud (formerly known as IBM Bluemix) - Cloud Foundry applications and services, Docker containers, and Kubernetes clusters. Following, the presentation focuses in on the Hybrid Cloud model, looking at Hybrid Cloud architectures, integration between on-prem, private, and public cloud services, API Economy, and finally, IBM API Connect as one IBM Hybrid Cloud Solution.
Acknowledgements to my team lead Sanjay Nayak for assisting in preparing some of the content used in this presentation that we have built and delivered together over the last few years, and Christopher Phillips for inspiration on topics to discuss.
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
IBM Hybrid Cloud Integration UCC Talk, 21st November 2018
1. IBM Cloud
This is not just any cloud.
This is the IBM Cloud.Lecture @ University College Cork
November 21st 2018
Dr. Michael J. O’Sullivan
IBM Hybrid Cloud,
IBM Cork
MichaelOSullivan@ie.ibm.com
2. 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
•
…
•
Integration Tools
4. 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, Virtual Machines,
or use containers with Docker as a Service, or
Kubernetes Clusters. You can even deploy on direct
runtimes with Cloud Foundry.
5. 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
7. IBM
Cloud
How does IBM Cloud work?
End-users access cloud
applications via web browsers
or dedicated mobile apps
Developers create and deploy
applications via web browsers
or command line tools
A router device in the cloud forwards
HTTP(S) requests for applications
to the Virtual Machine (VM) where the
requested application is deployed
The VMs run on physical servers
across IBM Cloud infrastructure
datacenters world-wide
Deployed cloud applications run
in Cloud Foundry containers. The
container system is known as Diego.
Diego Cells occupy the VMs that
make-up the data-center
9. IBM
Cloud
Introducing Hybrid Cloud
"One or more public clouds connected to something in my data
center. That thing could be a private cloud, that thing could just be
traditional data center infrastructure.”
- A “working definition” of Hybrid Cloud by Forrester.
10. IBM
Cloud
Hybrid Cloud – A Practical Example
The Forrester Definition essentially describes a Cloud Environment
with a particular topology and related requirements:
• Use of a combination of public cloud platforms (e.g. Amazon Web Services,
Microsoft Azure, or IBM Cloud) with private cloud platforms (e.g. IBM Cloud
Private, or on-premise server infrastructure) - this is known as Multicloud.
The same application may have components deployed into multiple clouds!
• The clouds still operate independently of each other.
• The clouds communicate using a secure, encrypted connection, likely over the
public Internet.
• Enterprises deploy applications to, and make use of services on both the
public and private platforms – this is known as an Integration.
11. IBM
Cloud
Example – IBM Cloud Private: A Developer
Cloud Platform
Source: https://www.ibm.com/cloud/garage/architectures/private-cloud/reference-architecture
12. IBM
Cloud
Example – IBM Cloud Private: A Developer
Cloud Platform
Source: https://www.ibm.com/cloud/garage/architectures/private-cloud/reference-architecture
• On the right, an enterprise
continues to use their
on-prem applications and
data.
• In the middle,
IBM Cloud Private
is used to provide a
private cloud
platform to avail of more
services locally within the
enterprise firewall.
• On the left, some public
cloud services are also
used for workloads that
may not have as-strict
privacy requirements.
14. IBM
Cloud
Evolving Hybrid Cloud Reference Architecture
• Basic, deep-level integration between
existing Systems of Engagement,
and Systems of Record, by surfacing
SOR via an API and Event Gateway.
• API Composition provides interfaces
between SOE and SOR.
• Events in the form of messages
allow data to flow in each direction.
• Data synchronization allows
for transactions to keep data
across systems in a consistent
state.
Source: https://developer.ibm.com/articles/mw-1606-clark-trs/
16. IBM
Cloud
Evolving Hybrid Cloud Reference Architecture
Source: https://developer.ibm.com/articles/mw-1606-clark-trs/
• A new API and Event
Gateway is introduced upon
Cloud-based applications
and services.
• This Gateway allows for
Public API Exposure.
• This allows external/public
developers to integrate
with SOE and business logic.
17. IBM
Cloud
Example: An Existing On-Premise Application Architecture
Source: https://www.ibm.com/developerworks/cloud/library/cl-adopt-a-hybrid-cloud-model-using-bluemix-trs/index.html
Note that applications, systems of record, and databases, are all located within the enterprise internal network.
18. IBM
Cloud
Example: Same Application Re-Architected for Hybrid Cloud
Source: https://www.ibm.com/developerworks/cloud/library/cl-adopt-a-hybrid-cloud-model-using-bluemix-trs/index.html
The same application re-architected for Hybrid cloud also comprises
applications and services across public and private clouds. Note that SOR remain within enterprise network.
19. IBM
Cloud
Hybrid Cloud – API Economy
• Application programming interfaces (APIs) are “tools” for providing
access to data and capabilities within a firewall.
• APIs allow interconnectivity between different service capabilities.
• Exposing APIs to share functionality and data enables rich user
experiences to be created via integrations.
• For organisations, this means that APIs are not simply developer
tools, but a source of value…
…this has driven the growth of what is known as the API Economy.
20. IBM
Cloud
API Economy - Integrations in Action: Uber
Source: https://www.uber.com/en-LB/newsroom/media-assets/uber-driver-app/
How many
API Integrations
can you see in the
Uber app?
Payment systems?
Mapping systems?
Driver review systems?
21. IBM
Cloud
IBM Cloud Catalog – Integration Solutions
Motivating question: To allow integrations – enterprises need to expose some data and functionality from SOR
within the firewall. How should this be accomplished securely?
22. IBM
Cloud
IBM API Connect
“API creation and management with security-rich features and
centralized governance”
• Automated, model-driven tools to create new APIs and microservices.
• Security, traffic management and mediation policies to ensure APIs and data
are protected.
• Simple management of APIs, versions, lifecycle, subscription plans and
subscribers.
• Self-service developer portal to empower internal and external developers to
discover, consume and access APIs (driving the API economy).
• API usage analytics for both API providers and consumers, with runtime and
historical reporting on usage patterns and performance metrics.
Source: https://www.ibm.com/cloud/api-connect
24. IBM
Cloud
IBM API Connect – Simplified Architecture
1. Developer creates API with
API Designer Tool
2. Developer publishes API
to API Connect Service
3. API Connect will deploy API
as an Application Server on a
Cloud-based Virtual Machine
4. Developer can test/edit API on
the Server from Designer Tool
5. End user/application can discover
and subscribe to published API
via a Developer Portal (not shown)
6. End user/application client can
then call API via API Connect
(via a public Gateway device
deployed by API Connect, not shown)
Source: https://www.ibm.com/cloud/api-connect
25. IBM
Cloud
IBM API Connect – OpenAPI Specification
“The OpenAPI Specification (OAS) defines a standard, language-agnostic
interface to RESTful APIs which allows both humans and computers to discover
and understand the capabilities of the service without access to source code,
documentation, or through network traffic inspection.”
•OAS was formerly known as the Swagger Specification, from the Swagger
project.
•APIs created with API Connect conform to OAS, and are stored in OAS
Documents.
•OAS Documents can therefore be imported and exported to/from API Connect,
and version controlled in a code repository (e.g. GitHub).
26. IBM
Cloud
OAS Document (SwaggerDoc) Sample
openapi: 3.0.0
info:
title: Sample API
description: Optional multiline or single-line description in CommonMark or HTML.
version: 0.1.9
servers:
- url: http://api.example.com/v1
description: Optional server description, e.g. Main (production) server
- url: http://staging-api.example.com
description: Optional server description, e.g. Internal staging server for testing
paths:
/users:
get:
summary: Returns a list of users.
description: Optional extended description in CommonMark or HTML.
responses:
'200': # status code
description: A JSON array of user names
content:
application/json:
schema:
type: array
items:
type: string
Source: https://swagger.io/docs/specification/basic-structure/
28. IBM
Cloud
IBM API Connect – Putting it all together…
The components of API Connect. Source: http://www.redbooks.ibm.com/redpapers/pdfs/redp5349.pdf
30. IBM
Cloud
IBM Cloud Links/Tutorials
An introduction to the IBM Cloud - Part 1 (12m 47s)
https://www.youtube.com/watch?v=vLMX9gyTEr4
An introduction to the IBM Cloud - Part 2 (Cloud Foundry: Node app to NoSQL dB) (13m 55s)
https://www.youtube.com/watch?v=OysQX0VwZEY
An introduction to the IBM Cloud - Part 3 (Containers: Node app to NoSQL dB) (20m 50s)
https://www.youtube.com/watch?v=CjqrO14u26g
Build your First IoTApplication with IBM Watson IoT(1h 1m 50s)
https://www.youtube.com/watch?v=MYp_aERiyew
Play with IBM Watson IoT Platform
http://discover-iot.eu-gb.mybluemix.net/#/play
DevOps (13m)
https://www.youtube.com/watch?v=TS94z1byTxw
31. IBM
Cloud
IBM Cloud Links/Tutorials
IBM Cloud Home
https://console.bluemix.net/
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 API Connect Version 5 End-End Demo
https://www.youtube.com/watch?v=hCvUYd67rbI
Swagger
https://swagger.io/
OpenAPI Specification
https://swagger.io/docs/specification/about/
UCC CS3311 November 2017 Talk on IBM Cloud with Cloud Foundry, Docker, and
Kubernetes, by Sanjay Nayak and Michael O’Sullivan
https://www.slideshare.net/MichaelOSullivan41/ibm-cloud-ucc-talk-22nd-november-2017
32. IBM
Cloud
Sanjay Nayak, Software Architect, IBM Hybrid Cloud, IBM Cork
Christopher Phillips, Hybrid Cloud Service UKI Lead, IBM API Connect
Acknowledgements
Hinweis der Redaktion
Bluemix is an open-standards cloud-based platform for building, managing & running applications of all types, including web, mobile, big data, analytics, and a bunchof new stuff like Watson, Blockchain, IoT etc.
Bluemix is an open-standards cloud-based platform for building, managing & running applications of all types, including web, mobile, big data, analytics, and a bunchof new stuff like Watson, Blockchain, IoT etc.
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 & IDEs, since this is online, you can access from anywhere – this is my phone editing a web page in the Web IDE