A lecture to the students of the University College Cork 3rd year Undergraduate Computer Science class, CS3204 (Cloud Infrastructure and Services) on Cloud Application Platforms and Microservices. As part of IBM Hybrid Cloud, I talk about cloud integration at an enterprise level, and show how Red Hat OpenShift and IBM Cloud Paks can be used to accomplish this. I talk about breaking down large software into containerised microservices, and how the Operator SDK allows us to build custom resources and controllers for Kubernetes platforms to help us manage the lifecycle/reconciliation of microservice-based applications. I use IBM API Connect, part of the IBM Cloud Pak for Integration, deployed on Red Hat OpenShift as an example. A live demo was delivered during the presentation - screenshots of this are included, showing how IBM API Connect can be installed using an Operator from the Red Hat OpenShift OperatorHub - this deploys all the microservices used to run IBM API Connect.
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
IBM Hybrid Cloud Integration UCC Talk, 23rd November 2021 - Cloud Application Platforms and Microservices
1. IBM Cloud
Cloud Application Platforms and Microservices
Lecture @ University College Cork
November 23rd 2021
Dr. Michael J. O’Sullivan
IBM Hybrid Cloud,
IBM Cork
MichaelOSullivan@ie.ibm.com
2. IBM Cloud
What is IBM Cloud?
“IBM Cloud offers the most open and secure public cloud for business, a next-generation hybrid multicloud
platform, advanced data and AI capabilities, and deep enterprise expertise across 20 industries.”
https://ibm.com/cloud, https://cloud.ibm.com/docs/overview?topic=overview-whatis-platform
3. IBM Cloud
What does IBM Cloud provide?
• An open, standards-based cloud computing platform
• Combines Platform as a Service (PaaS) with Infrastructure as a Service (Iaas)
• Includes a Catalog of diverse platform and infrastructure services
• Used rapidly build, deploy, any kind of application, including:
• Web
• Mobile
• Big Data
• New technologies
• Watson
• IoT
• Blockchain
• …
• Cloud Paks: “AI-powered software, designed to accelerate application modernization with
pre-integrated data, automation and security capabilities.”
6. IBM Cloud
Cloud Computing Environments
Source: http://www.redbooks.ibm.com/redpapers/pdfs/redp4873.pdf
7. IBM Cloud
Hybrid Cloud
• 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 operate independently of each other
• The clouds communicate using a secure, encrypted connection, likely over
the public Internet
• Enterprises deploy applications on public and private clouds, and make use
of services on both – this is known as an Integration.
8. IBM Cloud
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?
10. IBM Cloud
IBM Cloud Paks
https://www.ibm.com/cloud/paks
IBM Cloud Pak applications and services run as Containers on Kubernetes Clusters.
11. IBM Cloud
Kubernetes can be complex…
• Take the example of running Wordpress on Kubernetes from
https://kubernetes.io/docs/tutorials/stateful-application/mysql-
wordpress-persistent-volume/
• You need to create three different Kubernetes resources each for
both the MySQL Database, and the Wordpress application
• You must manually deploy each of these resources, and manage
them
• The effort and complexity of this will grow for a large, enterprise
applications. How can this process be simplified?
12. IBM Cloud
Red Hat OpenShift
https://www.redhat.com/en/technologies/cloud-computing/openshift
Enterprise-ready Kubernetes that can simplify the deployment and management of large, hybrid-cloud applications.
13. IBM Cloud
Red Hat OpenShift on IBM Cloud
https://www.ibm.com/ie-en/cloud/openshift
14. IBM Cloud
IBM Cloud Pak for Integration
Source: https://www.ibm.com/downloads/cas/M103EDOO
Red Hat OpenShift can run on various cloud platforms, providing a consistent experience.
IBM Cloud Paks run on Red Hat OpenShift.
15. IBM Cloud
How to break-down big applications?
Microservices!
“Microservices (or microservices architecture) are a cloud native
architectural approach in which a single application is composed
of many loosely coupled and independently deployable smaller
components, or services.”
• Each have their own stack, inclusive of the database and data model
• They communicate with one another over a combination of REST APIs, event
streaming, and message brokers
• They are typically organized by business capability, with the line separating
services often referred to as a bounded context.
Source: https://www.ibm.com/cloud/learn/microservices
16. IBM Cloud
Microservices: Reference Architecture
Source: https://www.ibm.com/cloud/architecture/architectures/microservices/reference-architecture
17. IBM Cloud
Monolithic App vs. Microservices App
Source: https://www.ibm.com/cloud/architecture/architectures/microservices/
In a Monolith application, one large “Silo” component is used for the whole application, and does everything…
18. IBM Cloud
Monolithic App vs. Microservices App
Source: https://www.ibm.com/cloud/architecture/architectures/microservices/
The Monolithic web-server application (right) is broken up into a series of smaller applications single-purpose applications (left),
each with their own database (i.e., each manages their own data), and fronted with an API Gateway and a frontend service.
19. IBM Cloud
Microservices can be hard…
• Complexity can be a big challenge, with different parts of the application
deployed in different environments, with different execution runtimes…
• Understanding communication and dependencies between microservices
can be difficult
• Debugging an issue in an application can be challenging
• Deploying an application composed of numerous microservices is not always
straight-forward
Question: With these facts in mind, how can we make deploying and managing
the lifecycle of a microservice-based application easier?
20. IBM Cloud
Case Study - IBM API Connect
“API creation and management with security-rich features and
centralized governance”
• Automated, model-driven tools to create new APIs
• 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
• API usage analytics for both API providers and consumers, with runtime and
historical reporting on usage patterns and performance metrics
• Part of the IBM Cloud Pak for Integration.
Source: https://www.ibm.com/cloud/api-connect
21. IBM Cloud
IBM API Connect Components
Source: https://www.ibm.com/cloud/architecture/articles/ibmaot-redhat-openshift/03-cloud-paks-cloud-pak-for-integration-api-connect/
22. IBM Cloud
IBM API Connect runs from Numerous
Microservices in Pods…
Source: https://community.ibm.com/HigherLogic/System/DownloadDocumentFile.ashx?DocumentFileKey=ad1a8ba0-1515-f9a9-179d-4904f28eade2&forceDialog=0
Imagine if we had to manually manage Kubernetes resources for all of these Pods!
23. IBM Cloud
Kubernetes - Controllers
Source: https://kubernetes.io/docs/concepts/overview/components/
Every resource in Kubernetes is managed by a Controller manager, from Pods to Secrets. Controllers
execute control loops, watching the resources they track, to ensure current state equals desired state –
this is known as reconciliation.
24. IBM Cloud
Kubernetes Controllers - Control Loop
Source: https://developer.ibm.com/articles/introduction-to-kubernetes-operators/
25. IBM Cloud
Operator SDK: Build your own Controllers!
Source: https://developer.ibm.com/learningpaths/kubernetes-operators/develop-deploy-simple-operator/create-operator/
Using an Operator with custom Controllers for our application, Kubernetes can manage our microservices for us.
26. IBM Cloud
Live Demo: IBM API Connect Operator
on Red Hat OpenShift to install and manage the microservices for us.
27. IBM Cloud
Live Demo: IBM API Connect Operator
on Red Hat OpenShift to install and manage the microservices for us.
28. IBM Cloud
Live Demo: IBM API Connect Operator
on Red Hat OpenShift to install and manage the microservices for us.
29. IBM Cloud
Live Demo: IBM API Connect Operator
on Red Hat OpenShift to install and manage the microservices for us.
30. IBM Cloud
Live Demo: IBM API Connect Operator
on Red Hat OpenShift to install and manage the microservices for us.
32. 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
IBM Cloud Home
https://console.cloud.ibm.com
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
UCC CS3204 December 2020 Talk on IBM Cloud with Cloud Native, Microservices, and Serverless, by Michael
O’Sullivan
https://www.slideshare.net/MichaelOSullivan41/ibm-cloud-ucc-talk-8th-december-2020-cloud-native-
microservices-and-serverless
Kubernetes: An Introduction to the Open Source Container Orchestration Platform – Talk by Michael O’Sullivan
https://www.slideshare.net/MichaelOSullivan41/kubernetes-an-introduction-to-the-open-source-container-
orchestration-platform
Further Reading - “Microservices” by Martin Fowler: https://martinfowler.com/articles/microservices.html
Cloud Native Computing Foundation (CNCF): https://www.cncf.io