SlideShare una empresa de Scribd logo
1 de 132
Descargar para leer sin conexión
Business and IT
agility
through DevOps
and microservice
architecture
powered by
containers and
cloud
Business and IT agility through DevOps and microservice architecture
Oracle Code Roma, 4 april 2019
Lucas Jellema, CTO & Architect AMIS, Oracle Groundbreaker Ambassador
Overview
• Business Objectives and IT requirements
• Microservices architecture – what, why, how
• domain driven design, bounded context, events, statelessness and APIs
• Introducing Cloud, Containers and the Container Platform: Kubernetes
• Hands On: Docker Containers & Kubernetes
• Microservices concepts
• workflow choreography, the CQRS data(base) pattern for cross domain
data sharing and serverless architecture, service mesh and operational
challenges
• Hands On: Do It Yourself Microservices and introduction Apache Kafka
Business and IT agility through DevOps and microservice architecture
How do we implement microservices?
• And how we make the containers horizontally scalable
Business and IT agility through DevOps and microservice architecture
How do we get
from a Monolith
to Microservices?
Why?
What?
How?
Business and IT agility through DevOps and microservice architecture
What is IT all about?
Application
Production Runtime
Business and IT agility through DevOps and microservice architecture
What is IT all about?
Application
Production Runtime
Platform
Business and IT agility through DevOps and microservice architecture
Objectives
• Business Agility
• In functionality: quick, cheap, effortless and risk free
• IT Agility
• In non-functionality: scale, resilience, infrastructure & location
• Real working applications with rapid relevant evolution that run reliably
Business and IT agility through DevOps and microservice architecture
What is IT all about?
Application
Platform
Production Runtime
Operations
Monitoring &
Management
PlatformPlatform
Business and IT agility through DevOps and microservice architecture
Production Runtime is the Result of Preparation Runtime
Application
Platform
Production Runtime
Operations
Monitoring &
ManagementApplication
Preparation Runtime
Platform
Development
CD
Agile Design,
Build, Test
Business and IT agility through DevOps and microservice architecture
What?
Business and IT agility through DevOps and microservice architecture
One team has Agile responsibility through full lifecyle
Application
Platform
Production Runtime
Operations
Monitoring &
ManagementApplication
Preparation Runtime
Platform
Development
CD
Agile Design,
Build, Test
Business and IT agility through DevOps and microservice architecture
One team has Agile responsibility through full lifecyle
Application
Platform
Production Runtime
Operations
Monitoring &
ManagementApplication
Preparation Runtime
Platform
Development
CD
Agile Design,
Build, Test
Business and IT agility through DevOps and microservice architecture
One team has Agile responsibility through full lifecyle
Application
Platform
Application
Platform
Business and IT agility through DevOps and microservice architecture
DevOps team owns and runs one (or more) products
Application
Platform
Generic Infrastructure Platform for running DevOps Products
Floorspace, Power,
Cooling, Storage,
Compute
Monitoring, Management,
Cache, Authentication,
RDBMS, Event Hub
Business and IT agility through DevOps and microservice architecture
Multiple products from multiple teams run on a shared generic
infrastructure
Generic Infrastructure Platform for running DevOps Products
Floorspace, Power,
Cooling, Storage,
Compute
Monitoring, Management,
Cache, Authentication,
RDBMS, Event Hub
Application
Platform
Application
Platform
Application
Platform
Application
Platform
Application
Platform
Business and IT agility through DevOps and microservice architecture
(Application plus platform)under DevOps ==
Generic Infrastructure Platform for running DevOps Products
µ µ µ µ µ
Microservice
Business and IT agility through DevOps and microservice architecture
Software Objectives
• Develop/evolve
• At scale (teams)
• Agile
• Innovative technology
• Quick ramp up (new team members)
• Manage
• Agile (quick, reliable rollout)
• Scaleable
• Reliable
• Physically distributed
• Robust (if one part fails, not everything is dragged down)
Business and IT agility through DevOps and microservice architecture
What?
• Realistic approach (technology, people, process) => Something that works!
• No dependency on individuals
• Able to scale in rate of change
• Small, well: comprehensible, manageable
• Clear business ownership
• Stand alone /isolated/encapsulated
(in terms of change, release/deploy, scale, location, implementation technology)
• Provide clear and meaningful functionality in a way that it can be consumed
• One microservice does not completely fall over when other microservices break
(or are redeployed)
• Able to scale elastically & horizontally and relocate easily
• A microservice exists within a single bounded context
• Multiple microservices can share the same bounded context
Business and IT agility through DevOps and microservice architecture
Microservices Architecture
• Bounded Context or Domain, Team Ownership, Loose dependencies
outside domains, independently (re)deployable components
Business and IT agility through DevOps and microservice architecture
µ
manage
scale
deploy
test
organize
own monitor
µ
µ
µ
µ
µ
µ
µ
µ
µ
manage
scale
deploy
test
organize
own
monitor manage
scale
deploy
test
organize
own
monitor
manage
scale
deploy
test
organize
own
monitor
manage
scale
deploy
test
organize
own
monitor
manage
scale
deploy
test
organize
own
monitor
manage
scale
deploy
test
organize
own
monitor
manage
scale
deploy
test
organize
own
monitor
manage
scale
deploy
test
organize
own
monitor
manage
scale
deploy
test
organize
own
monitor
vs.
Business and IT agility through DevOps and microservice architecture
[mini] µonolith
µ
µ
µ
µ
Business and IT agility through DevOps and microservice architecture
µ
µ
Owned by Business Manager X
High Change Rate
Highly Available
Needs to scale up to 10x between 7-
10PM
Can be done by team of 5
Owned by Business Manager Y
Business Hours availability
Some Highly Secure Data
Fairly constant load
Very strict QA steps in CI/CD process
Can be done by team of 3Business and IT agility through DevOps and microservice architecture
Webshop
Web Shop Portal
Backend
Business and IT agility through DevOps and microservice architecture
Microservices based Webshop
µ Customers µ Orders µ Products µ Loyalty µ Financeµ Logistics
Web Shop Portal
µ
Customers
µ Orders µ Products µ Loyalty µ Finance
Business and IT agility through DevOps and microservice architecture
µ
Logistics
Warehousing
Shipping
µ
Business and IT agility through DevOps and microservice architecture
How?
Business and IT agility through DevOps and microservice architecture
How microservices
• One team owns the microservice and can do functional and technical
evolution and deployment continuously and independently
• The business ownership is clearly defined
Business and IT agility through DevOps and microservice architecture
Application
Platform
The Microservice
API
HTTP REST/JSON
Business and IT agility through DevOps and microservice architecture
Extended API of microservice
• Deployment API
• Injectable dependencies – reference to cache, logging, storage URL, …
• Configurable meta-data – run time parameters, log level, credential (key)
• Interaction API
• REST Resources & Operations – query and URL parameters, message formats
• Events Consumed – alternative way to call | activate a microservice
• Reference to entry in Event Catalog
• May include reference to shared Cache Resource
• Events Produced – alternative output from microservice
• Event can be an asynchronous response to a stateless consumer
API
Business and IT agility through DevOps and microservice architecture
How?
Run & Operate
Business and IT agility through DevOps and microservice architecture
Run & Operate Microservices
• Rapid rollout
• Including scale out & recover
• Non breaking upgrade & rollback
strategies (e.g. canary release)
• Agile infrastructure
• Relocate, independent of
infra specifics
• Health management
• Monitor and safeguard SLA requirements on response time, success
and availability
• Scale elastically
• TCO management
• DevOps: one team creates and runs
Business and IT agility through DevOps and microservice architecture
Generic Infrastructure Platform for running DevOps Products
µ µ µ µ µ
The elephant in the room…
Business and IT agility through DevOps and microservice architecture
whale
Setup for Oracle OpenWorld Demo
What I needed
• Local installation of a Kafka Cluster
• At least one Broker node and the Zookeeper
Kafka
Broker
Zookeeper
Demo Application
Business and IT agility through DevOps and microservice architecture
Setup for Oracle OpenWorld Demo
What I received from Guido
• Simple text file – 140 lines
Business and IT agility through DevOps and microservice architecture
Name of Docker
image to run
Hostname on internal network
between Docker containers
Environment variable
to pass to container
Dependency on other
container (to start first)
Container port to
expose externally
Setup for Oracle OpenWorld Demo
What I created in a few minutes
Business and IT agility through DevOps and microservice architecture
Kafka
Broker
Zookeeper
Kafka
Rest ProxyKafka
Schema
Registry
Kafka
Connect
Kafka
Connect UI
Kafka
Schema
Registry UI
Kafka
Manager
9092
2181
9000
8084
80018083
8081
8002
Some Quick Conclusions
• Docker provides a great way to
• Build environments (application & platform)
(from simple, text based build files & public images)
• Share & Ship these environments
(either through build files or through ready-to-run images)
• Run environments making efficient use of physical resources
(that can be complex and have complex interdependencies)
• And Guido is a very nice guy
• And also:
• [Docker] Containers are pivotal in cloud native environments,
microservices architecture, DevOps and CD
• Any IT professional should know her or his way around containers
Business and IT agility through DevOps and microservice architecture
Linux essentials
• Applications share resources
Business and IT agility through DevOps and microservice architecture
Disk Storage
Memory
CPUs
Application A
Application B
Application C
• Network interface
• IP address
• Ports
• Users & groups
• Environment
Variables
• Packages
• Services
Linux essentials: Control Groups and Namespaces
• Compartmentalize Resources
into isolated
units
Business and IT agility through DevOps and microservice architecture
Disk
Storage
Memory
CPUs
• Network interface
• IP address
• Ports
• Users & groups
• Environment
Variables
• Packages
• Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Linux essentials: Control Groups and Namespaces
• Expose units through
mapped network
ports
Business and IT agility through DevOps and microservice architecture
Disk
Storage
Memory
CPUs
• Network interface
• IP address
• Ports
• Users & groups
• Environment
Variables
• Packages
• Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Linux essentials: Each unit runs its own processes
• Units run their own
processes:
• OS (Linux)
• Platform
• Application
Business and IT agility through DevOps and microservice architecture
Disk
Storage
Memory
CPUs
• Network interface
• IP address
• Ports
• Users & groups
• Environment
Variables
• Packages
• Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Application A Application B
Application C
This stuff is complex
• Core Linux features were hard to use
Business and IT agility through DevOps and microservice architecture
Disk
Storage
Memory
CPUs• Network interface
• IP
address
• Ports
• Users & groups
• Environment Variables
• Packages
• Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Application A Application B
Application C
Docker has democratized Linux Containers
• Container Image – a serialized file from which we can instantiate a container
• Container Build script and workflow – to automate the creation of a container
(image) using straightforward vocabulary
• Engine – runtime platform for instantiating, running and managing containers,
volumes and networks (REST API and CLI)
• Docker Registry – Repository for Container Images
• And now also Docker Store
Business and IT agility through DevOps and microservice architecture
Disk
Storage
Memory
CPUs• Network interface
• IP
add
res
s
• Por
ts
• Users & groups
• Environment Variables
• Packages
• Services
Network
interface
IP address
Ports
Users & groups
Environment
Variables
Packages
Services
Network
interface
IP address
Ports
Users & groups
Environment
Variables
Packages
Services
Network
interface
IP address
Ports
Users & groups
Environment
Variables
Packages
Services
Network
interface
IP address
Ports
Users & groups
Environment
Variables
Packages
Services
Application A Application B
Application
C
Running Containers using Docker
• Create Container(s)
from Image plus:
• Port mapping
• Volume
• Environment
Variable
• (inter container)
Network
• Startup script
Business and IT agility through DevOps and microservice architecture
Disk
Storage
Memory
CPUs
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Network interface
IP address
Ports
Users & groups
Environment Variables
Packages
Services
Application A Application B
Application C
Docker Hub
Docker Engine
Container
images
Running Containers using Docker on Windows
• Docker is a Linux mechanism
• In order to run on a Windows server,
we use
• a Linux VM on VirtualBox
• Docker for Windows on Hyper-V
• …
• It is possible to run the Docker Engine inside a Docker Container
• Docker Container inside Docker Container [inside VM]
Disk
Storage
Memory
CPUs• Network interface
• IP
add
res
s
• Por
ts
• Users & groups
• Environment Variables
• Packages
• Services
Network
interface
IP address
Ports
Users & groups
Environment
Variables
Packages
Services
Network
interface
IP address
Ports
Users & groups
Environment
Variables
Packages
Services
Network
interface
IP address
Ports
Users & groups
Environment
Variables
Packages
Services
Network
interface
IP address
Ports
Users & groups
Environment
Variables
Packages
Services
Application A Application B
Application
C
Business and IT agility through DevOps and microservice architecture
Run container
image on
Docker host
Running Docker
Containers
Business and IT agility through DevOps and microservice architecture
Running Containers using Docker
Application A
Docker Hub
Docker Engine
docker run
--name ApplicationA
amis/NodeAppRunnerImage:latest
/bin/bash
amis/NodeAppRunnerImage:1.4
ApplicationA
Business and IT agility through DevOps and microservice architecture
Running Containers using Docker
Business and IT agility through DevOps and microservice architecture
Application A
Docker Hub
Docker Engine
docker run
--name ApplicationA
-p 8010:8080 -p 8011:1521
--network=myBridgeNW
-e APP_HOME=/home/apps/applicationA
-e PARAM1=value1
amis/NodeAppRunnerImage:latest
/bin/bash
amis/NodeAppRunnerImage:1.4
8010
8011
8080
1521
ApplicationA
APP_HOME=
/home/apps/applicationA
PARAM1=
value1
Running Containers using Docker
Business and IT agility through DevOps and microservice architecture
Disk
Storage
/host_files
/data
Application A
Docker Hub
Docker Engine
docker run
--name ApplicationA
-p 8010:8080 -p 8011:1521
--network=myBridgeNW
-v /hostworkdir
-v /tmp/files:/host_files
--volumes-from dataContainer
-e APP_HOME=/home/apps/applicationA
-e PARAM1=value1
amis/NodeAppRunnerImage:latest
/bin/bash
amis/NodeAppRunnerImage:1.4
8010
8011
8080
1521
dataContainer
ApplicationA
APP_HOME=
/home/apps/applicationA
PARAM1=
value1
Containers are ephemeral (*
Business and IT agility through DevOps and microservice architecture
(* Candidate for IT word of the year 2018
Container state that needs to survive should be on an
externally mapped volume
Business and IT agility through DevOps and microservice architecture
Host Disk Volume
-v /data:/u01/app/data
/u01/app/data
--mount source=/u01,target= /u01/app/data
/data
Cloud Native Storage
(AWS S3, ….)
Implicit Docker Container Image Interface:
environment variables, ports, volumes
Business and IT agility through DevOps and microservice architecture
Docker Hub
link mysql
Parameters:
WORDPRESS_DB_PASSWORD,
WORDPRESS_DB_USER, …
Volume
..:/var/lib
/mysql
Parameters:
MYSQL_DATABASE,
MYSQL_ROOT_PASSWORD
Running and Managing Containers
• Start | Pause | Stop | Delete | Export | Import containers
• Save | Load Images
• List containers | images | networks | …
• Inspect container
• Run multiple instances of an image
• Execute into running container
• Attach to (standard input | output | error stream of)
running container
• Get Container Logs
• Create Network
• Connect container to network
• Experimental feature: Snapshot (CRIU)
Business and IT agility through DevOps and microservice architecture
Ship (Container Images)
• Package, Distribute, Share, Publish and Consume container images
• The frozen state of a container (committed after building and further manipulating)
• With everything needed to run the micro service: application and underlying platform &
OS, ready to run on any Docker Engine anywhere
• With an implicit interface (environment variables, ports, volume)
Business and IT agility through DevOps and microservice architecture
Public Docker
Registry
Docker Hub
Docker Image Registry
push
Private Docker
Registry
Docker Hub
push
Business and IT agility through DevOps and microservice architecture
Container Use Cases for IT professionals
• R&D (aka Play) – try out technology
• Quickly, easily, cleanly
• Complex, multi-node configurations
• Leverage huge number of resources available out in the open
• Prepare and Share (running) environments for
• Playing, Training, Testing, Beta-testing,
• Deploy and Run application on generic cloud infrastructure
• Especially ephemeral (stateless) and dynamically scalable
• Streamlined CD across Development, Test and Production
• Prepare for Cloud (consolidate, lift & shift workloads)
• Analysis & What If Scenarios
• Clone an environment, spin up, investigate, tear down & quit
• Automated Testing
• Against rich dataset with minimum set up and tear down
• Microservices – implement, deploy and run
Business and IT agility through DevOps and microservice architecture
Containers
• As vehicle for:
• Encapsulate
• Build
• Share & Ship
• Automated Tests
• Deploy
• Run
• Scale
• Relocate
• Standardize
Business and IT agility through DevOps and microservice architecture
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute
Node
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node
Cloud
Storage
SAN
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node
Cloud
Storage
SAN
Configuration
Map
Configuration
Map
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node
Compute
Node
Compute
Node
Compute
Node
Compute
Node
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute Node
Compute
Node
Compute
Node
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute Node
Compute
Node
Compute
Node
Looking for a runtime platform for
Business and IT agility through DevOps and microservice architecture
Compute Node
v2
v2
v2
v2
v2
Business and IT agility through DevOps and microservice architecture
Business and IT agility through DevOps and microservice architecture
Introducing Kubernetes
• Distributed Container Run Time Management platform
• Based on Google’s Borg system (in use at Google for over a decade)
• Initial announcement: 2014
• Kubernetes v1.0 was released on July 21, 2015
• A Kubernetes cluster typically spans multiple compute nodes
• Either in the cloud, on premises, on a single machine (minikube) or hybrid
• K8S manages Pods in which containers are running
• K8S schedules Pods on one or more nodes
• Docker can be the container runtime; other engines are supported as well,
such as rkt and containerd
• K8S handles network traffic to, between and from Pods
• The kubectl command line interface is used for most management activities
Business and IT agility through DevOps and microservice architecture
Cloud Native & Vendor Neutral
• Cloud Native Computing Foundation - CNCF
• All major – and not so major – vendors are member
• Cloud Native: container packaged, dynamically managed, microservices oriented
• Open technology for running container based workloads in a cross cloud vendor neutral
way
Business and IT agility through DevOps and microservice architecture
Key constituents of Kubernetes
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node Kubernetes
cluster
pod
container
Key constituents of Kubernetes
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node Kubernetes
cluster
pod
container
Key constituents of Kubernetes
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node Kubernetes
service
cluster
pod
service
container
Some external
consumer
Key constituents of Kubernetes
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node Kubernetes
service
cluster
pod
service
container
Key constituents of Kubernetes
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node Kubernetes
service
cluster
pod
poddeployment
Key constituents of Kubernetes
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node Kubernetes
service
cluster
pod
poddeployment
Key constituents of Kubernetes
Business and IT agility through DevOps and microservice architecture
Compute
Node
Compute Node
Compute
Node
namespace
service service
namespace
Business and IT agility through DevOps and microservice architecture
Visualizing Kubernetes Resources with WeaveScope
Business and IT agility through DevOps and microservice architecture
Handson Docker & Kubernetes
Business and IT agility through DevOps and microservice architecture
To get the slides and workshop materials:
http://bit.ly/fontys1april
Real life microservices
• Events
• CQRS
• Workflow
• Cloud
• Service Mesh
Business and IT agility through DevOps and microservice architecture
How microservices: design & implement
• Business & Team ownership of application and associated platform
• Automated CD – including regression test
• Open (standards, protocols) on the outside,
whatever you like inside
• Deployable on enterprise standardized microservices platform
• API & Event
• Standard protocols for interaction
• Horizontally scalable: multiple parallel instances
• Stateless instances – horizontally scalable up & down,
can handle fail over & restart
• Private Bounded (Data) Context
• Including derived data from other domains
Business and IT agility through DevOps and microservice architecture
Microservices State
Cache
RDBMS
Document
Store
NoSQL
Generic Platform for running microservices
Event Hub
Big Data
Block
Storage
LDAP
Business and IT agility through DevOps and microservice architecture
Bounded context in microservices
• A micoservice needs to be able to run independently
• It needs to contain & own all data required to run
• It cannot depend on other microservices
API
Customer
APIUI
OrderCustomerModified event
Business and IT agility through DevOps and microservice architecture
Business and IT agility through DevOps and microservice architecture
Products
Data Manipulation
Data
Retrieval
Business and IT agility through DevOps and microservice architecture
Special
Products
Product
Clusters
ProductsData Manipulation
Data Retrieval
Food
Stuff
Toys
Quick Product
Search Index
Product Store in
SaaS app
CQRS = Command Query Responsibility Segregation
Comand Query Responsbility Segregation = CQRS
Business and IT agility through DevOps and microservice architecture
Special
Products
Product Clusters
ProductsData Manipulation
Data Retrieval
Food Stuff
Toys
Quick Product Search
Index
Product Store in
SaaS app
Detect changes
Extract Data
Microservices based Webshop
µ Customers µ Orders µ Products µ Loyalty µ Financeµ Logistics
Web Shop Portal
µ
Customers
µ Orders µ Products µ Loyalty µ Finance
Business and IT agility through DevOps and microservice architecture
Event
Monitor
…. Event-(First) Driven
Order
Products
Logistics
Shop
Customers
Loyalty Program Finance
Event Hub
Topic X Topic Y Topic Z Topic Q
• Order Payment
Received
• Customer Frozen• Product Stock
Update
• Shipping News
• Order Create
• Order Cancelled
• Customer Loyalty
Status Change
• Product Update
• Product added
to Shopping Cart
• New Customer
• Customer Profile Changed
• Customer Sign In
Business and IT agility through DevOps and microservice architecture
API Gateway
Business and IT agility through DevOps and microservice architecture
API Portal
Web Shop Portal
µ
Customers
µ Orders µ Products µ Loyalty µ Finance
API Platform
Many other
consumers
API Portal
Web Shop Portal
µ
Customers
µ Orders µ Products µ Loyalty µ Finance
API Platform
Backoffice
UI
Event Hub
Event
Schema
Registry
λ
Business and IT agility through DevOps and microservice architecture
It would be so nice if I could
publish my ideas and actions,
accessible near instantly for
everyone who is interested
Heck, I do not even know these people
and they may not know me [personally]
– just my pearls of wisdom. And if they
are late to the party, they can also
check out the historic archives of my
eloquence
Without fretting about the numbers of
readers involved and whether they are
in the same time zone as me and online
when I publish my messages – and
which device they use
It would be so nice if I could
publish my ideas and actions,
accessible near instantly for
everyone who is interested
Heck, I do not even know these people
and they may not know me [personally]
– just my pearls of wisdom. And if they
are late to the party, they can also
check out the historic archives of my
eloquence
Without fretting about the numbers of
readers involved and whether they are
in the same time zone as me and online
when I publish my messages – and
which device they use
• Decoupled communication
• 0, 1 or many followers
• Scalable number of messages (and parties)
• Reliable (mostly available, few messages lost)
• Full history
• Open: cross device, cross location
• Not Sub-second, near real-time fast
• Rate limited (#messages/minute)
• Size limited (140-280 characters)
• Format limited (text)
• Not for private interactions
• Not (really) for programmatic use
What does the Twitter for System Driven Event Interaction
look like?
Business and IT agility through DevOps and microservice architecture
• Decoupled communication – organized per topic
• 0, 1 or many Consumers per Topic
• Scalable number of messages (and parties)
• Reliable (distributed)
• Full history
• Open: libraries in many technologie & REST APIs
What does the Twitter for System Driven Event Interaction
look like?
Business and IT agility through DevOps and microservice architecture
• Decoupled communication – organized per topic
• 0, 1 or many Consumers per Topic
• Scalable number of messages (and parties)
• Reliable (distributed)
• Full history
• Open: libraries in many technologie & REST APIs
• Near real-time fast
• No Rate Limit
• No enforced size limit
• Anything goes (it’s all byte[])
• On premises or in cloud, private or trusted
• Very much for programmatic use
Events
Producers
Consumers
Robust, Scalable, Fast,
History Retention
Containerized/Cloud-
enabled
Open
Business and IT agility through DevOps and microservice architecture
Messaging as we know it
• JMS, Oracle Advanced Queuing, IBM MQ, MS MQ, RabbitMQ, MQTT,
XMPP, WebSockets, Apache Active MQ, AMQP , …
• Challenges
• Costs
• Scalability (size and speed)
• (lack of) Distribution (and therefore availability)
• Complexity of infrastructure
• Message delivery guarantees
• Lack of technology openness
• Deal with temporarily offline consumers
• Retain history
Business and IT agility through DevOps and microservice architecture
Introducing Apache Kafka
• ..- 2010 – creation at Linkedin
• Message Bus | Event Broker
• High volume, low latency, highly reliable, cross technology
• Scalable, distributed, strict message ordering, ….
• 2011/2012 – open source under the Apache Incubator/ Top Project
• Kafka is used by many large corporations:
• Walmart, Cisco, Netflix, PayPal, LinkedIn, eBay, Spotify, Uber, Sift
Science, Zalando, The New York Times, Airbnb, Coursera, ING Bank,…
• And embraced by many software vendors & cloud providers
• Client libraries available for Node, Java, C/C++, Python, Ruby, PHP, Go,
Rust, .NET, Perl, Scala DSL, Clojure, Swift and more
• Commercial backing by and Enterprise support from Confluent
Business and IT agility through DevOps and microservice architecture
Producers
Consumers
tcp
tcp
Business and IT agility through DevOps and microservice architecture
Producers
Consumers
Topic
Business and IT agility through DevOps and microservice architecture
Kafka terminology
• Topic
• Message
• == ByteArray
• Broker
• Producer
• Consumer
Producer Consumer
Topic
Broker
Key
Value
Time
Message
Business and IT agility through DevOps and microservice architecture
Producers
Consumers
Topic
Broker
Key
Value
Time
Business and IT agility through DevOps and microservice architecture
Consuming
• Messages are available to consumers only when they have been committed
• Kafka does not push
• Unlike JMS
• Read does not destroy
• Unlike JMS Topic
• (some) History available
• Offline consumers can catch up
• Consumers can re-consume from the past
• Delivery Guarantees
• Ordering maintained
• At-least-once (per consumer) by default; at-most-once and exactly-once
can be implemented
Business and IT agility through DevOps and microservice architecture
Producers
Consumers
Topic
Broker
Key
Value
Time
Business and IT agility through DevOps and microservice architecture
Producers
Consumers
Topic
Broker
tcp
tcp
Consumer Group
Partition
Business and IT agility through DevOps and microservice architecture
What’s so special?
• Durable
• Scalable
• High volume
• High speed
• Available
• Distributed
• Open
• Quick start
• Free (no license costs)
• “Self Fulfilling Prophecy”
(positive feedback loop feeding from buzz around Kafka)
• Eco system, tools/libraries/resources, cloud services
Business and IT agility through DevOps and microservice architecture
Ecosystem – Kafka and Friends
• Clients
• CLI
• Java, Node/JavaScript, C/C++, Python, Go, Rust, .NET, Ruby, Clojure, Perl, …
• REST Proxy
• Kafka Schema Registry
• Kafka Connect – read data and change events from many sources and/or write
to many targets
• Also see Debezium
• Kafka Streams
• Kafka KSQL
Business and IT agility through DevOps and microservice architecture
Getting Started with Apache Kafka
• Get Access to an Apache Kafka Cluster environment
• Download, Install, Configure and Run
• Pull and Run a Docker Container (optionally on a Kubernetes cluster)
• Sign up for a Managed Apache Kafka Cloud Service (e.g. Oracle Event Hub)
• Configure Topic(s) & Partition(s) (optional)
• Get an Apache Kafka Client Library
• For Java, Spring Boot, Node, Python, …
• Or expose Apache Kafka REST Proxy service
• Develop Client Application to
• Produce Events to Kafka Topic
• Consume Events from Kafka Topic
• Optionally
• Use Schema Registry to design, publish and enforce event payload structure
• Use Kafka Connect[ors] to integrate with specific source or sink technology
• Use tooling for monitoring, tuning, reporting, administration, …
Business and IT agility through DevOps and microservice architecture
Topic
Develop Client Applications
• Leveraging a precreated Event Hub Managed Kafka Topic in the cloud
• Simple Node client
• To publish message to Apache Kafka
• using kafka-node npm module
• Simple Java client
• To consume messages from Apache Kafka
• using org.apache.kafka.kafka_2.12 Maven dependency
Business and IT agility through DevOps and microservice architecture
Topic
Hands On Microservices on Kubernetes
• Run Kafka on Minikube
• Locally or on Katacoda
• Deploy microservices &
workflow orchestration
Business and IT agility through DevOps and microservice architecture
Summary
• IT has to enable business objectives
• Needs to be flexible
• Microservices are a way to make IT manageable
• Design time (Dev) and Run Time (Ops)
• Containers and the Kubernetes platform enable isolated runtimes
• Automated build and delivery, scalable, automated recovery and roll out
• Increasingly relevant: Cloud Native - Serverless
• Events are essential for decoupled interaction
• Apache Kafka is the defacto standard event bus platform
• Workflows executed by microservices are governed by workflow slips and
choreographed through events
• Technologies to learn more about:
• Docker, Kubernetes, Kafka, Redis, WeaveScope, Katacoda
• Bonus: Camunda, Istio, Traefik, Grafana, Prometheus, Kiali, Jaeger, …
Business and IT agility through DevOps and microservice architecture
Contact Details
Business and IT agility through DevOps and microservice architecture
• Blog: technology.amis.nl
• Email: lucas.jellema@amis.nl
• : lucasjellema
• : lucas-jellema
• : www.amis.nl, info@amis.nl
+31 306016000
Edisonbaan 15,
Nieuwegein
Defining Workflow
• Cross domain cutting concern
• Composite transaction
• Multi-step chain
• Long running process
• System initiated human participation
• For example: the order flow
• Submit order, check availability, collect payment,
organize picking and shipping, and update loyalty status
Business and IT agility through DevOps and microservice architecture
Approaches
• Orchestration
• Choreography
• Hybrid
• Coordinated | Facilitated Choreography
• Mixing orchestration and choreography
Business and IT agility through DevOps and microservice architecture
Desired Workflow
Tweet about JFall Validate Tweet
No simple retweet, no
black listed words
used, no known robot
tweeter or otherwise
excluded authors, no
undesirable location
Enrich Tweet
Details about author,
location, hashtags,
acronyms and abbreviations
used in tweet
Add Tweet to
TweetBoard
Add the tweet to the
top of the TweetBoard
– a list of recent,
relevant tweets
Publish TweetBoard
Publish the
TweetBoard through
API and UI (HTML
web document)
done
Business and IT agility through DevOps and microservice architecture
Microservices to map the workflow to
Microservices Platform
API
Event Bus
REST/
JSON
APIUI
NodeJS &
Express in
ACCS
On premises
Tweet
BoardValidate
Tweet
API
Java
SE
REST/
JSON Enrich
Tweet
Java
SE/
Node.js
Cache
Business and IT agility through DevOps and microservice architecture
Choreographed workflow
#hashtag
Microservices Platform
APIAPI
Event Bus
APIUI
On premises
TweetBoard
Validate
Tweet
Tweet
Receiver
API
Enrich
Tweet
Workflow
Launcher
Cache
Business and IT agility through DevOps and microservice architecture
Routing Slip published by workflow Launcher
Validate
Tweet
Enrich
Tweet
Add Tweet
to
TweetBoard
Publish
TweetBoard
If NOK, then done
Business and IT agility through DevOps and microservice architecture
Routing Slip for completed workflow
Business and IT agility through DevOps and microservice architecture
Choreographed workflow
#hashtag
Microservices Platform
APIAPI
Event Bus
APIUI
On premises
TweetBoard
Validate
Tweet
Tweet
Receiver
API
Enrich
TweetWorkflow
Launcher
Cache
Business and IT agility through DevOps and microservice architecture
Event Bus
Microservice Choreography Topology
Workflow
Launcher
Tweet
Validator
Tweet
Enricher
Tweet
Board
Cache Cache
Inspector
LogMonitorTweet
Receiver
Business and IT agility through DevOps and microservice architecture
Choreography partners – Pods in Kubernetes
Business and IT agility through DevOps and microservice architecture
Extending the workflow choreography – with translation of
the tweet
Validate
Tweet
Enrich
Tweet
Add Tweet
to
TweetBoard
Publish
TweetBoard
If NOK, then done
Translate
Tweet
Business and IT agility through DevOps and microservice architecture
Extending the workflow choreography – with translation of
the tweet
• Implement microservice
for
• Translating tweets
• Participating in Workflow
• Deploy microservice –
with access to Event Bus & Cache
• Extend Workflow Template
• Add new ‘translation’ step – dependency on Enrich Tweet
• Change current ‘tweetboard’ step – modify dependency to Translation
Validate
Tweet
Enrich
Tweet
Add Tweet
to
TweetBoard
Publish
TweetBoard
If NOK, then done
Translate
Tweet
Business and IT agility through DevOps and microservice architecture
Choreographed workflow
#hashtag
Microservices Platform
APIAPI
Event Bus
APIUI
On premises
TweetBoard
Validate
Tweet
Tweet
Receiver
API
Enrich
TweetWorkflow
Launcher
Cache
A
PI
Translate
Tweet
API
Business and IT agility through DevOps and microservice architecture
Modified workflow template
A
PI
Translate
Tweet
API
APIUI
Tweet
Board
Business and IT agility through DevOps and microservice architecture
Result on tweet board including translation
Business and IT agility through DevOps and microservice architecture
Hands On Microservices on Kubernetes
• Run Kafka on Minikube
• Locally or on Katacoda
• Deploy microservices &
workflow orchestration
Business and IT agility through DevOps and microservice architecture
Summary
• IT has to enable business objectives
• Needs to be flexible
• Microservices are a way to make IT manageable
• Design time (Dev) and Run Time (Ops)
• Containers and the Kubernetes platform enable isolated runtimes
• Automated build and delivery, scalable, automated recovery and roll out
• Increasingly relevant: Cloud Native - Serverless
• Events are essential for decoupled interaction
• Apache Kafka is the defacto standard event bus platform
• Workflows executed by microservices are governed by workflow slips and
choreographed through events
• Technologies to learn more about:
• Docker, Kubernetes, Kafka, Redis, WeaveScope, Katacoda
• Bonus: Camunda, Istio, Traefik, Grafana, Prometheus, Kiali, Jaeger, …
Business and IT agility through DevOps and microservice architecture
Contact Details
Business and IT agility through DevOps and microservice architecture
• Blog: technology.amis.nl
• Email: lucas.jellema@amis.nl
• : lucasjellema
• : lucas-jellema
• : www.amis.nl, info@amis.nl
+31 306016000
Edisonbaan 15,
Nieuwegein

Más contenido relacionado

La actualidad más candente

Microservices in the Enterprise
Microservices in the Enterprise Microservices in the Enterprise
Microservices in the Enterprise Jesus Rodriguez
 
Oracle Cloud Native Application Development (Meetup, 20th January 2020)
Oracle Cloud Native Application Development (Meetup, 20th January 2020)Oracle Cloud Native Application Development (Meetup, 20th January 2020)
Oracle Cloud Native Application Development (Meetup, 20th January 2020)Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (Sangam20, December 2020)
6Reinventing Oracle Systems in a Cloudy World (Sangam20, December 2020)6Reinventing Oracle Systems in a Cloudy World (Sangam20, December 2020)
6Reinventing Oracle Systems in a Cloudy World (Sangam20, December 2020)Lucas Jellema
 
Modern Data Warehouse Overview
Modern Data Warehouse OverviewModern Data Warehouse Overview
Modern Data Warehouse OverviewJohn Chang
 
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...Alex Gorbachev
 
Azure architecture design patterns - proven solutions to common challenges
Azure architecture design patterns - proven solutions to common challengesAzure architecture design patterns - proven solutions to common challenges
Azure architecture design patterns - proven solutions to common challengesIvo Andreev
 
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive sessionMicrosoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive sessionTravis Wright
 
Oracle Cloud Infrastructure (OCI)
Oracle Cloud Infrastructure (OCI)Oracle Cloud Infrastructure (OCI)
Oracle Cloud Infrastructure (OCI)emmajones88
 
Breaching the 100TB Mark with SQL Over Hadoop
Breaching the 100TB Mark with SQL Over HadoopBreaching the 100TB Mark with SQL Over Hadoop
Breaching the 100TB Mark with SQL Over HadoopDataWorks Summit
 
2017 OpenWorld Keynote for Data Integration
2017 OpenWorld Keynote for Data Integration2017 OpenWorld Keynote for Data Integration
2017 OpenWorld Keynote for Data IntegrationJeffrey T. Pollock
 
Choosing technologies for a big data solution in the cloud
Choosing technologies for a big data solution in the cloudChoosing technologies for a big data solution in the cloud
Choosing technologies for a big data solution in the cloudJames Serra
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGateJeffrey T. Pollock
 
OAC - From Cloud Entry to Data Engineering to Data Science
OAC - From Cloud Entry to Data Engineering to Data ScienceOAC - From Cloud Entry to Data Engineering to Data Science
OAC - From Cloud Entry to Data Engineering to Data ScienceChristian Berg
 
Sidecars and a Microservices Mesh
Sidecars and a Microservices MeshSidecars and a Microservices Mesh
Sidecars and a Microservices MeshRed Hat Developers
 
Machine Learning for z/OS
Machine Learning for z/OSMachine Learning for z/OS
Machine Learning for z/OSCuneyt Goksu
 
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...Lucas Jellema
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to CloudMarcus Vinicius Miguel Pedro
 
Time to Talk about Data Mesh
Time to Talk about Data MeshTime to Talk about Data Mesh
Time to Talk about Data MeshLibbySchulze
 

La actualidad más candente (20)

Microservices in the Enterprise
Microservices in the Enterprise Microservices in the Enterprise
Microservices in the Enterprise
 
GIS Into to Cloud Microsoft Azure
GIS  Into  to Cloud Microsoft Azure GIS  Into  to Cloud Microsoft Azure
GIS Into to Cloud Microsoft Azure
 
Oracle Cloud Native Application Development (Meetup, 20th January 2020)
Oracle Cloud Native Application Development (Meetup, 20th January 2020)Oracle Cloud Native Application Development (Meetup, 20th January 2020)
Oracle Cloud Native Application Development (Meetup, 20th January 2020)
 
6Reinventing Oracle Systems in a Cloudy World (Sangam20, December 2020)
6Reinventing Oracle Systems in a Cloudy World (Sangam20, December 2020)6Reinventing Oracle Systems in a Cloudy World (Sangam20, December 2020)
6Reinventing Oracle Systems in a Cloudy World (Sangam20, December 2020)
 
Modern Data Warehouse Overview
Modern Data Warehouse OverviewModern Data Warehouse Overview
Modern Data Warehouse Overview
 
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
Bridging Oracle Database and Hadoop by Alex Gorbachev, Pythian from Oracle Op...
 
Azure architecture design patterns - proven solutions to common challenges
Azure architecture design patterns - proven solutions to common challengesAzure architecture design patterns - proven solutions to common challenges
Azure architecture design patterns - proven solutions to common challenges
 
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive sessionMicrosoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
 
Oracle Cloud Infrastructure (OCI)
Oracle Cloud Infrastructure (OCI)Oracle Cloud Infrastructure (OCI)
Oracle Cloud Infrastructure (OCI)
 
Breaching the 100TB Mark with SQL Over Hadoop
Breaching the 100TB Mark with SQL Over HadoopBreaching the 100TB Mark with SQL Over Hadoop
Breaching the 100TB Mark with SQL Over Hadoop
 
2017 OpenWorld Keynote for Data Integration
2017 OpenWorld Keynote for Data Integration2017 OpenWorld Keynote for Data Integration
2017 OpenWorld Keynote for Data Integration
 
Choosing technologies for a big data solution in the cloud
Choosing technologies for a big data solution in the cloudChoosing technologies for a big data solution in the cloud
Choosing technologies for a big data solution in the cloud
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
 
OAC - From Cloud Entry to Data Engineering to Data Science
OAC - From Cloud Entry to Data Engineering to Data ScienceOAC - From Cloud Entry to Data Engineering to Data Science
OAC - From Cloud Entry to Data Engineering to Data Science
 
Sidecars and a Microservices Mesh
Sidecars and a Microservices MeshSidecars and a Microservices Mesh
Sidecars and a Microservices Mesh
 
Machine Learning for z/OS
Machine Learning for z/OSMachine Learning for z/OS
Machine Learning for z/OS
 
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
Systems on the edge - your stepping stones into Oracle Public PaaS Cloud - AM...
 
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
Oracle OpenWorld 2017 Review (31st October 2017 - 250 slides)
 
2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud2019 - OOW - Database Migration Methods from On-Premise to Cloud
2019 - OOW - Database Migration Methods from On-Premise to Cloud
 
Time to Talk about Data Mesh
Time to Talk about Data MeshTime to Talk about Data Mesh
Time to Talk about Data Mesh
 

Similar a Business and IT agility through DevOps and microservice architecture powered by containers and cloud (Oracle Code Rome - April 2019)

Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Ken Owens
 
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...Lucas Jellema
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing MicroservicesDavid Chou
 
Implementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureImplementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureDavide Veronese
 
Webinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy ApplicationsWebinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy ApplicationsStorage Switzerland
 
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...Docker, Inc.
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesRick Hightower
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesAtlassian
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and dockerAlex Ivy
 
Java Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudJava Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudMongoDB
 
Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and S...
Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and S...Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and S...
Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and S...Lucas Jellema
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics sbbabu
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesHector Tapia
 
Cisco ACI for the Microsoft Cloud Platform
Cisco ACI for the Microsoft Cloud PlatformCisco ACI for the Microsoft Cloud Platform
Cisco ACI for the Microsoft Cloud PlatformShashi Kiran
 
Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak
 

Similar a Business and IT agility through DevOps and microservice architecture powered by containers and cloud (Oracle Code Rome - April 2019) (20)

Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015
 
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
 
Designing Microservices
Designing MicroservicesDesigning Microservices
Designing Microservices
 
Implementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architectureImplementing dev ops to face a two speed it architecture
Implementing dev ops to face a two speed it architecture
 
Webinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy ApplicationsWebinar: How and Why to Containerize Your Legacy Applications
Webinar: How and Why to Containerize Your Legacy Applications
 
56k.cloud training
56k.cloud training56k.cloud training
56k.cloud training
 
Newt global meetup microservices
Newt global meetup microservicesNewt global meetup microservices
Newt global meetup microservices
 
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and Kubernetes
 
Getting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick StinematesGetting Started with Docker - Nick Stinemates
Getting Started with Docker - Nick Stinemates
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
 
Java Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudJava Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the Cloud
 
Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and S...
Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and S...Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and S...
Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and S...
 
Cloud Native Application Development
Cloud Native Application DevelopmentCloud Native Application Development
Cloud Native Application Development
 
Architecting for Scale
Architecting for ScaleArchitecting for Scale
Architecting for Scale
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServices
 
Cisco ACI for the Microsoft Cloud Platform
Cisco ACI for the Microsoft Cloud PlatformCisco ACI for the Microsoft Cloud Platform
Cisco ACI for the Microsoft Cloud Platform
 
Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud Management
 
Md Zahir Uddin
Md Zahir UddinMd Zahir Uddin
Md Zahir Uddin
 

Más de Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Lucas Jellema
 

Más de Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Último

OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorShane Coughlan
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024Mind IT Systems
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Incrobinwilliams8624
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native BuildpacksVish Abrams
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyRaymond Okyere-Forson
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmonyelliciumsolutionspun
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfBrain Inventory
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesSoftwareMill
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionsNirav Modi
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxJoão Esperancinha
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesShyamsundar Das
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadIvo Andreev
 

Último (20)

OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS Calculator
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
Salesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptxSalesforce AI Associate Certification.pptx
Salesforce AI Associate Certification.pptx
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
Top Software Development Trends in 2024
Top Software Development Trends in  2024Top Software Development Trends in  2024
Top Software Development Trends in 2024
 
Enterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze IncEnterprise Document Management System - Qualityze Inc
Enterprise Document Management System - Qualityze Inc
 
Streamlining Your Application Builds with Cloud Native Buildpacks
Streamlining Your Application Builds  with Cloud Native BuildpacksStreamlining Your Application Builds  with Cloud Native Buildpacks
Streamlining Your Application Builds with Cloud Native Buildpacks
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
AI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human BeautyAI Embracing Every Shade of Human Beauty
AI Embracing Every Shade of Human Beauty
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdf
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retries
 
eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspections
 
Fields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptxFields in Java and Kotlin and what to expect.pptx
Fields in Java and Kotlin and what to expect.pptx
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security Challenges
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and Bad
 

Business and IT agility through DevOps and microservice architecture powered by containers and cloud (Oracle Code Rome - April 2019)

  • 1. Business and IT agility through DevOps and microservice architecture powered by containers and cloud Business and IT agility through DevOps and microservice architecture Oracle Code Roma, 4 april 2019 Lucas Jellema, CTO & Architect AMIS, Oracle Groundbreaker Ambassador
  • 2. Overview • Business Objectives and IT requirements • Microservices architecture – what, why, how • domain driven design, bounded context, events, statelessness and APIs • Introducing Cloud, Containers and the Container Platform: Kubernetes • Hands On: Docker Containers & Kubernetes • Microservices concepts • workflow choreography, the CQRS data(base) pattern for cross domain data sharing and serverless architecture, service mesh and operational challenges • Hands On: Do It Yourself Microservices and introduction Apache Kafka Business and IT agility through DevOps and microservice architecture
  • 3. How do we implement microservices? • And how we make the containers horizontally scalable Business and IT agility through DevOps and microservice architecture How do we get from a Monolith to Microservices?
  • 4. Why? What? How? Business and IT agility through DevOps and microservice architecture
  • 5. What is IT all about? Application Production Runtime Business and IT agility through DevOps and microservice architecture
  • 6. What is IT all about? Application Production Runtime Platform Business and IT agility through DevOps and microservice architecture
  • 7. Objectives • Business Agility • In functionality: quick, cheap, effortless and risk free • IT Agility • In non-functionality: scale, resilience, infrastructure & location • Real working applications with rapid relevant evolution that run reliably Business and IT agility through DevOps and microservice architecture
  • 8. What is IT all about? Application Platform Production Runtime Operations Monitoring & Management PlatformPlatform Business and IT agility through DevOps and microservice architecture
  • 9. Production Runtime is the Result of Preparation Runtime Application Platform Production Runtime Operations Monitoring & ManagementApplication Preparation Runtime Platform Development CD Agile Design, Build, Test Business and IT agility through DevOps and microservice architecture
  • 10. What? Business and IT agility through DevOps and microservice architecture
  • 11. One team has Agile responsibility through full lifecyle Application Platform Production Runtime Operations Monitoring & ManagementApplication Preparation Runtime Platform Development CD Agile Design, Build, Test Business and IT agility through DevOps and microservice architecture
  • 12. One team has Agile responsibility through full lifecyle Application Platform Production Runtime Operations Monitoring & ManagementApplication Preparation Runtime Platform Development CD Agile Design, Build, Test Business and IT agility through DevOps and microservice architecture
  • 13. One team has Agile responsibility through full lifecyle Application Platform Application Platform Business and IT agility through DevOps and microservice architecture
  • 14. DevOps team owns and runs one (or more) products Application Platform Generic Infrastructure Platform for running DevOps Products Floorspace, Power, Cooling, Storage, Compute Monitoring, Management, Cache, Authentication, RDBMS, Event Hub Business and IT agility through DevOps and microservice architecture
  • 15. Multiple products from multiple teams run on a shared generic infrastructure Generic Infrastructure Platform for running DevOps Products Floorspace, Power, Cooling, Storage, Compute Monitoring, Management, Cache, Authentication, RDBMS, Event Hub Application Platform Application Platform Application Platform Application Platform Application Platform Business and IT agility through DevOps and microservice architecture
  • 16. (Application plus platform)under DevOps == Generic Infrastructure Platform for running DevOps Products µ µ µ µ µ Microservice Business and IT agility through DevOps and microservice architecture
  • 17. Software Objectives • Develop/evolve • At scale (teams) • Agile • Innovative technology • Quick ramp up (new team members) • Manage • Agile (quick, reliable rollout) • Scaleable • Reliable • Physically distributed • Robust (if one part fails, not everything is dragged down) Business and IT agility through DevOps and microservice architecture
  • 18. What? • Realistic approach (technology, people, process) => Something that works! • No dependency on individuals • Able to scale in rate of change • Small, well: comprehensible, manageable • Clear business ownership • Stand alone /isolated/encapsulated (in terms of change, release/deploy, scale, location, implementation technology) • Provide clear and meaningful functionality in a way that it can be consumed • One microservice does not completely fall over when other microservices break (or are redeployed) • Able to scale elastically & horizontally and relocate easily • A microservice exists within a single bounded context • Multiple microservices can share the same bounded context Business and IT agility through DevOps and microservice architecture
  • 19. Microservices Architecture • Bounded Context or Domain, Team Ownership, Loose dependencies outside domains, independently (re)deployable components Business and IT agility through DevOps and microservice architecture
  • 21. [mini] µonolith µ µ µ µ Business and IT agility through DevOps and microservice architecture
  • 22. µ µ Owned by Business Manager X High Change Rate Highly Available Needs to scale up to 10x between 7- 10PM Can be done by team of 5 Owned by Business Manager Y Business Hours availability Some Highly Secure Data Fairly constant load Very strict QA steps in CI/CD process Can be done by team of 3Business and IT agility through DevOps and microservice architecture
  • 23. Webshop Web Shop Portal Backend Business and IT agility through DevOps and microservice architecture
  • 24. Microservices based Webshop µ Customers µ Orders µ Products µ Loyalty µ Financeµ Logistics Web Shop Portal µ Customers µ Orders µ Products µ Loyalty µ Finance Business and IT agility through DevOps and microservice architecture
  • 25. µ Logistics Warehousing Shipping µ Business and IT agility through DevOps and microservice architecture
  • 26. How? Business and IT agility through DevOps and microservice architecture
  • 27. How microservices • One team owns the microservice and can do functional and technical evolution and deployment continuously and independently • The business ownership is clearly defined Business and IT agility through DevOps and microservice architecture Application Platform
  • 28. The Microservice API HTTP REST/JSON Business and IT agility through DevOps and microservice architecture
  • 29. Extended API of microservice • Deployment API • Injectable dependencies – reference to cache, logging, storage URL, … • Configurable meta-data – run time parameters, log level, credential (key) • Interaction API • REST Resources & Operations – query and URL parameters, message formats • Events Consumed – alternative way to call | activate a microservice • Reference to entry in Event Catalog • May include reference to shared Cache Resource • Events Produced – alternative output from microservice • Event can be an asynchronous response to a stateless consumer API Business and IT agility through DevOps and microservice architecture
  • 30. How? Run & Operate Business and IT agility through DevOps and microservice architecture
  • 31. Run & Operate Microservices • Rapid rollout • Including scale out & recover • Non breaking upgrade & rollback strategies (e.g. canary release) • Agile infrastructure • Relocate, independent of infra specifics • Health management • Monitor and safeguard SLA requirements on response time, success and availability • Scale elastically • TCO management • DevOps: one team creates and runs Business and IT agility through DevOps and microservice architecture Generic Infrastructure Platform for running DevOps Products µ µ µ µ µ
  • 32. The elephant in the room… Business and IT agility through DevOps and microservice architecture whale
  • 33. Setup for Oracle OpenWorld Demo What I needed • Local installation of a Kafka Cluster • At least one Broker node and the Zookeeper Kafka Broker Zookeeper Demo Application Business and IT agility through DevOps and microservice architecture
  • 34. Setup for Oracle OpenWorld Demo What I received from Guido • Simple text file – 140 lines Business and IT agility through DevOps and microservice architecture Name of Docker image to run Hostname on internal network between Docker containers Environment variable to pass to container Dependency on other container (to start first) Container port to expose externally
  • 35. Setup for Oracle OpenWorld Demo What I created in a few minutes Business and IT agility through DevOps and microservice architecture Kafka Broker Zookeeper Kafka Rest ProxyKafka Schema Registry Kafka Connect Kafka Connect UI Kafka Schema Registry UI Kafka Manager 9092 2181 9000 8084 80018083 8081 8002
  • 36. Some Quick Conclusions • Docker provides a great way to • Build environments (application & platform) (from simple, text based build files & public images) • Share & Ship these environments (either through build files or through ready-to-run images) • Run environments making efficient use of physical resources (that can be complex and have complex interdependencies) • And Guido is a very nice guy • And also: • [Docker] Containers are pivotal in cloud native environments, microservices architecture, DevOps and CD • Any IT professional should know her or his way around containers Business and IT agility through DevOps and microservice architecture
  • 37. Linux essentials • Applications share resources Business and IT agility through DevOps and microservice architecture Disk Storage Memory CPUs Application A Application B Application C • Network interface • IP address • Ports • Users & groups • Environment Variables • Packages • Services
  • 38. Linux essentials: Control Groups and Namespaces • Compartmentalize Resources into isolated units Business and IT agility through DevOps and microservice architecture Disk Storage Memory CPUs • Network interface • IP address • Ports • Users & groups • Environment Variables • Packages • Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services
  • 39. Linux essentials: Control Groups and Namespaces • Expose units through mapped network ports Business and IT agility through DevOps and microservice architecture Disk Storage Memory CPUs • Network interface • IP address • Ports • Users & groups • Environment Variables • Packages • Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services
  • 40. Linux essentials: Each unit runs its own processes • Units run their own processes: • OS (Linux) • Platform • Application Business and IT agility through DevOps and microservice architecture Disk Storage Memory CPUs • Network interface • IP address • Ports • Users & groups • Environment Variables • Packages • Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Application A Application B Application C
  • 41. This stuff is complex • Core Linux features were hard to use Business and IT agility through DevOps and microservice architecture Disk Storage Memory CPUs• Network interface • IP address • Ports • Users & groups • Environment Variables • Packages • Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Application A Application B Application C
  • 42. Docker has democratized Linux Containers • Container Image – a serialized file from which we can instantiate a container • Container Build script and workflow – to automate the creation of a container (image) using straightforward vocabulary • Engine – runtime platform for instantiating, running and managing containers, volumes and networks (REST API and CLI) • Docker Registry – Repository for Container Images • And now also Docker Store Business and IT agility through DevOps and microservice architecture Disk Storage Memory CPUs• Network interface • IP add res s • Por ts • Users & groups • Environment Variables • Packages • Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Application A Application B Application C
  • 43. Running Containers using Docker • Create Container(s) from Image plus: • Port mapping • Volume • Environment Variable • (inter container) Network • Startup script Business and IT agility through DevOps and microservice architecture Disk Storage Memory CPUs Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Application A Application B Application C Docker Hub Docker Engine Container images
  • 44. Running Containers using Docker on Windows • Docker is a Linux mechanism • In order to run on a Windows server, we use • a Linux VM on VirtualBox • Docker for Windows on Hyper-V • … • It is possible to run the Docker Engine inside a Docker Container • Docker Container inside Docker Container [inside VM] Disk Storage Memory CPUs• Network interface • IP add res s • Por ts • Users & groups • Environment Variables • Packages • Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Network interface IP address Ports Users & groups Environment Variables Packages Services Application A Application B Application C Business and IT agility through DevOps and microservice architecture
  • 45. Run container image on Docker host Running Docker Containers Business and IT agility through DevOps and microservice architecture
  • 46. Running Containers using Docker Application A Docker Hub Docker Engine docker run --name ApplicationA amis/NodeAppRunnerImage:latest /bin/bash amis/NodeAppRunnerImage:1.4 ApplicationA Business and IT agility through DevOps and microservice architecture
  • 47. Running Containers using Docker Business and IT agility through DevOps and microservice architecture Application A Docker Hub Docker Engine docker run --name ApplicationA -p 8010:8080 -p 8011:1521 --network=myBridgeNW -e APP_HOME=/home/apps/applicationA -e PARAM1=value1 amis/NodeAppRunnerImage:latest /bin/bash amis/NodeAppRunnerImage:1.4 8010 8011 8080 1521 ApplicationA APP_HOME= /home/apps/applicationA PARAM1= value1
  • 48. Running Containers using Docker Business and IT agility through DevOps and microservice architecture Disk Storage /host_files /data Application A Docker Hub Docker Engine docker run --name ApplicationA -p 8010:8080 -p 8011:1521 --network=myBridgeNW -v /hostworkdir -v /tmp/files:/host_files --volumes-from dataContainer -e APP_HOME=/home/apps/applicationA -e PARAM1=value1 amis/NodeAppRunnerImage:latest /bin/bash amis/NodeAppRunnerImage:1.4 8010 8011 8080 1521 dataContainer ApplicationA APP_HOME= /home/apps/applicationA PARAM1= value1
  • 49. Containers are ephemeral (* Business and IT agility through DevOps and microservice architecture (* Candidate for IT word of the year 2018
  • 50. Container state that needs to survive should be on an externally mapped volume Business and IT agility through DevOps and microservice architecture Host Disk Volume -v /data:/u01/app/data /u01/app/data --mount source=/u01,target= /u01/app/data /data Cloud Native Storage (AWS S3, ….)
  • 51. Implicit Docker Container Image Interface: environment variables, ports, volumes Business and IT agility through DevOps and microservice architecture Docker Hub link mysql Parameters: WORDPRESS_DB_PASSWORD, WORDPRESS_DB_USER, … Volume ..:/var/lib /mysql Parameters: MYSQL_DATABASE, MYSQL_ROOT_PASSWORD
  • 52. Running and Managing Containers • Start | Pause | Stop | Delete | Export | Import containers • Save | Load Images • List containers | images | networks | … • Inspect container • Run multiple instances of an image • Execute into running container • Attach to (standard input | output | error stream of) running container • Get Container Logs • Create Network • Connect container to network • Experimental feature: Snapshot (CRIU) Business and IT agility through DevOps and microservice architecture
  • 53. Ship (Container Images) • Package, Distribute, Share, Publish and Consume container images • The frozen state of a container (committed after building and further manipulating) • With everything needed to run the micro service: application and underlying platform & OS, ready to run on any Docker Engine anywhere • With an implicit interface (environment variables, ports, volume) Business and IT agility through DevOps and microservice architecture
  • 54. Public Docker Registry Docker Hub Docker Image Registry push Private Docker Registry Docker Hub push Business and IT agility through DevOps and microservice architecture
  • 55. Container Use Cases for IT professionals • R&D (aka Play) – try out technology • Quickly, easily, cleanly • Complex, multi-node configurations • Leverage huge number of resources available out in the open • Prepare and Share (running) environments for • Playing, Training, Testing, Beta-testing, • Deploy and Run application on generic cloud infrastructure • Especially ephemeral (stateless) and dynamically scalable • Streamlined CD across Development, Test and Production • Prepare for Cloud (consolidate, lift & shift workloads) • Analysis & What If Scenarios • Clone an environment, spin up, investigate, tear down & quit • Automated Testing • Against rich dataset with minimum set up and tear down • Microservices – implement, deploy and run Business and IT agility through DevOps and microservice architecture
  • 56. Containers • As vehicle for: • Encapsulate • Build • Share & Ship • Automated Tests • Deploy • Run • Scale • Relocate • Standardize Business and IT agility through DevOps and microservice architecture
  • 57. Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node
  • 58. Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node
  • 59. Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node
  • 60. Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node
  • 61. Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node
  • 62. Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node Cloud Storage SAN
  • 63. Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node Cloud Storage SAN Configuration Map Configuration Map
  • 64. Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node
  • 65. Compute Node Compute Node Compute Node Compute Node Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node
  • 66. Compute Node Compute Node Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node
  • 67. Compute Node Compute Node Looking for a runtime platform for Business and IT agility through DevOps and microservice architecture Compute Node v2 v2 v2 v2 v2
  • 68. Business and IT agility through DevOps and microservice architecture
  • 69. Business and IT agility through DevOps and microservice architecture
  • 70. Introducing Kubernetes • Distributed Container Run Time Management platform • Based on Google’s Borg system (in use at Google for over a decade) • Initial announcement: 2014 • Kubernetes v1.0 was released on July 21, 2015 • A Kubernetes cluster typically spans multiple compute nodes • Either in the cloud, on premises, on a single machine (minikube) or hybrid • K8S manages Pods in which containers are running • K8S schedules Pods on one or more nodes • Docker can be the container runtime; other engines are supported as well, such as rkt and containerd • K8S handles network traffic to, between and from Pods • The kubectl command line interface is used for most management activities Business and IT agility through DevOps and microservice architecture
  • 71. Cloud Native & Vendor Neutral • Cloud Native Computing Foundation - CNCF • All major – and not so major – vendors are member • Cloud Native: container packaged, dynamically managed, microservices oriented • Open technology for running container based workloads in a cross cloud vendor neutral way Business and IT agility through DevOps and microservice architecture
  • 72. Key constituents of Kubernetes Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node Kubernetes cluster pod container
  • 73. Key constituents of Kubernetes Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node Kubernetes cluster pod container
  • 74. Key constituents of Kubernetes Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node Kubernetes service cluster pod service container Some external consumer
  • 75. Key constituents of Kubernetes Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node Kubernetes service cluster pod service container
  • 76. Key constituents of Kubernetes Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node Kubernetes service cluster pod poddeployment
  • 77. Key constituents of Kubernetes Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node Kubernetes service cluster pod poddeployment
  • 78. Key constituents of Kubernetes Business and IT agility through DevOps and microservice architecture Compute Node Compute Node Compute Node namespace service service namespace
  • 79. Business and IT agility through DevOps and microservice architecture
  • 80. Visualizing Kubernetes Resources with WeaveScope Business and IT agility through DevOps and microservice architecture
  • 81. Handson Docker & Kubernetes Business and IT agility through DevOps and microservice architecture To get the slides and workshop materials: http://bit.ly/fontys1april
  • 82. Real life microservices • Events • CQRS • Workflow • Cloud • Service Mesh Business and IT agility through DevOps and microservice architecture
  • 83. How microservices: design & implement • Business & Team ownership of application and associated platform • Automated CD – including regression test • Open (standards, protocols) on the outside, whatever you like inside • Deployable on enterprise standardized microservices platform • API & Event • Standard protocols for interaction • Horizontally scalable: multiple parallel instances • Stateless instances – horizontally scalable up & down, can handle fail over & restart • Private Bounded (Data) Context • Including derived data from other domains Business and IT agility through DevOps and microservice architecture
  • 84. Microservices State Cache RDBMS Document Store NoSQL Generic Platform for running microservices Event Hub Big Data Block Storage LDAP Business and IT agility through DevOps and microservice architecture
  • 85. Bounded context in microservices • A micoservice needs to be able to run independently • It needs to contain & own all data required to run • It cannot depend on other microservices API Customer APIUI OrderCustomerModified event Business and IT agility through DevOps and microservice architecture
  • 86. Business and IT agility through DevOps and microservice architecture Products Data Manipulation Data Retrieval
  • 87. Business and IT agility through DevOps and microservice architecture Special Products Product Clusters ProductsData Manipulation Data Retrieval Food Stuff Toys Quick Product Search Index Product Store in SaaS app CQRS = Command Query Responsibility Segregation
  • 88. Comand Query Responsbility Segregation = CQRS Business and IT agility through DevOps and microservice architecture Special Products Product Clusters ProductsData Manipulation Data Retrieval Food Stuff Toys Quick Product Search Index Product Store in SaaS app Detect changes Extract Data
  • 89. Microservices based Webshop µ Customers µ Orders µ Products µ Loyalty µ Financeµ Logistics Web Shop Portal µ Customers µ Orders µ Products µ Loyalty µ Finance Business and IT agility through DevOps and microservice architecture
  • 90. Event Monitor …. Event-(First) Driven Order Products Logistics Shop Customers Loyalty Program Finance Event Hub Topic X Topic Y Topic Z Topic Q • Order Payment Received • Customer Frozen• Product Stock Update • Shipping News • Order Create • Order Cancelled • Customer Loyalty Status Change • Product Update • Product added to Shopping Cart • New Customer • Customer Profile Changed • Customer Sign In Business and IT agility through DevOps and microservice architecture
  • 91. API Gateway Business and IT agility through DevOps and microservice architecture API Portal Web Shop Portal µ Customers µ Orders µ Products µ Loyalty µ Finance API Platform Many other consumers
  • 92. API Portal Web Shop Portal µ Customers µ Orders µ Products µ Loyalty µ Finance API Platform Backoffice UI Event Hub Event Schema Registry λ Business and IT agility through DevOps and microservice architecture
  • 93. It would be so nice if I could publish my ideas and actions, accessible near instantly for everyone who is interested Heck, I do not even know these people and they may not know me [personally] – just my pearls of wisdom. And if they are late to the party, they can also check out the historic archives of my eloquence Without fretting about the numbers of readers involved and whether they are in the same time zone as me and online when I publish my messages – and which device they use
  • 94. It would be so nice if I could publish my ideas and actions, accessible near instantly for everyone who is interested Heck, I do not even know these people and they may not know me [personally] – just my pearls of wisdom. And if they are late to the party, they can also check out the historic archives of my eloquence Without fretting about the numbers of readers involved and whether they are in the same time zone as me and online when I publish my messages – and which device they use
  • 95. • Decoupled communication • 0, 1 or many followers • Scalable number of messages (and parties) • Reliable (mostly available, few messages lost) • Full history • Open: cross device, cross location • Not Sub-second, near real-time fast • Rate limited (#messages/minute) • Size limited (140-280 characters) • Format limited (text) • Not for private interactions • Not (really) for programmatic use
  • 96. What does the Twitter for System Driven Event Interaction look like? Business and IT agility through DevOps and microservice architecture • Decoupled communication – organized per topic • 0, 1 or many Consumers per Topic • Scalable number of messages (and parties) • Reliable (distributed) • Full history • Open: libraries in many technologie & REST APIs
  • 97. What does the Twitter for System Driven Event Interaction look like? Business and IT agility through DevOps and microservice architecture • Decoupled communication – organized per topic • 0, 1 or many Consumers per Topic • Scalable number of messages (and parties) • Reliable (distributed) • Full history • Open: libraries in many technologie & REST APIs • Near real-time fast • No Rate Limit • No enforced size limit • Anything goes (it’s all byte[]) • On premises or in cloud, private or trusted • Very much for programmatic use
  • 98. Events Producers Consumers Robust, Scalable, Fast, History Retention Containerized/Cloud- enabled Open Business and IT agility through DevOps and microservice architecture
  • 99. Messaging as we know it • JMS, Oracle Advanced Queuing, IBM MQ, MS MQ, RabbitMQ, MQTT, XMPP, WebSockets, Apache Active MQ, AMQP , … • Challenges • Costs • Scalability (size and speed) • (lack of) Distribution (and therefore availability) • Complexity of infrastructure • Message delivery guarantees • Lack of technology openness • Deal with temporarily offline consumers • Retain history Business and IT agility through DevOps and microservice architecture
  • 100. Introducing Apache Kafka • ..- 2010 – creation at Linkedin • Message Bus | Event Broker • High volume, low latency, highly reliable, cross technology • Scalable, distributed, strict message ordering, …. • 2011/2012 – open source under the Apache Incubator/ Top Project • Kafka is used by many large corporations: • Walmart, Cisco, Netflix, PayPal, LinkedIn, eBay, Spotify, Uber, Sift Science, Zalando, The New York Times, Airbnb, Coursera, ING Bank,… • And embraced by many software vendors & cloud providers • Client libraries available for Node, Java, C/C++, Python, Ruby, PHP, Go, Rust, .NET, Perl, Scala DSL, Clojure, Swift and more • Commercial backing by and Enterprise support from Confluent Business and IT agility through DevOps and microservice architecture
  • 101. Producers Consumers tcp tcp Business and IT agility through DevOps and microservice architecture
  • 102. Producers Consumers Topic Business and IT agility through DevOps and microservice architecture
  • 103. Kafka terminology • Topic • Message • == ByteArray • Broker • Producer • Consumer Producer Consumer Topic Broker Key Value Time Message Business and IT agility through DevOps and microservice architecture
  • 104. Producers Consumers Topic Broker Key Value Time Business and IT agility through DevOps and microservice architecture
  • 105. Consuming • Messages are available to consumers only when they have been committed • Kafka does not push • Unlike JMS • Read does not destroy • Unlike JMS Topic • (some) History available • Offline consumers can catch up • Consumers can re-consume from the past • Delivery Guarantees • Ordering maintained • At-least-once (per consumer) by default; at-most-once and exactly-once can be implemented Business and IT agility through DevOps and microservice architecture
  • 106. Producers Consumers Topic Broker Key Value Time Business and IT agility through DevOps and microservice architecture
  • 107. Producers Consumers Topic Broker tcp tcp Consumer Group Partition Business and IT agility through DevOps and microservice architecture
  • 108. What’s so special? • Durable • Scalable • High volume • High speed • Available • Distributed • Open • Quick start • Free (no license costs) • “Self Fulfilling Prophecy” (positive feedback loop feeding from buzz around Kafka) • Eco system, tools/libraries/resources, cloud services Business and IT agility through DevOps and microservice architecture
  • 109. Ecosystem – Kafka and Friends • Clients • CLI • Java, Node/JavaScript, C/C++, Python, Go, Rust, .NET, Ruby, Clojure, Perl, … • REST Proxy • Kafka Schema Registry • Kafka Connect – read data and change events from many sources and/or write to many targets • Also see Debezium • Kafka Streams • Kafka KSQL Business and IT agility through DevOps and microservice architecture
  • 110. Getting Started with Apache Kafka • Get Access to an Apache Kafka Cluster environment • Download, Install, Configure and Run • Pull and Run a Docker Container (optionally on a Kubernetes cluster) • Sign up for a Managed Apache Kafka Cloud Service (e.g. Oracle Event Hub) • Configure Topic(s) & Partition(s) (optional) • Get an Apache Kafka Client Library • For Java, Spring Boot, Node, Python, … • Or expose Apache Kafka REST Proxy service • Develop Client Application to • Produce Events to Kafka Topic • Consume Events from Kafka Topic • Optionally • Use Schema Registry to design, publish and enforce event payload structure • Use Kafka Connect[ors] to integrate with specific source or sink technology • Use tooling for monitoring, tuning, reporting, administration, … Business and IT agility through DevOps and microservice architecture Topic
  • 111. Develop Client Applications • Leveraging a precreated Event Hub Managed Kafka Topic in the cloud • Simple Node client • To publish message to Apache Kafka • using kafka-node npm module • Simple Java client • To consume messages from Apache Kafka • using org.apache.kafka.kafka_2.12 Maven dependency Business and IT agility through DevOps and microservice architecture Topic
  • 112. Hands On Microservices on Kubernetes • Run Kafka on Minikube • Locally or on Katacoda • Deploy microservices & workflow orchestration Business and IT agility through DevOps and microservice architecture
  • 113. Summary • IT has to enable business objectives • Needs to be flexible • Microservices are a way to make IT manageable • Design time (Dev) and Run Time (Ops) • Containers and the Kubernetes platform enable isolated runtimes • Automated build and delivery, scalable, automated recovery and roll out • Increasingly relevant: Cloud Native - Serverless • Events are essential for decoupled interaction • Apache Kafka is the defacto standard event bus platform • Workflows executed by microservices are governed by workflow slips and choreographed through events • Technologies to learn more about: • Docker, Kubernetes, Kafka, Redis, WeaveScope, Katacoda • Bonus: Camunda, Istio, Traefik, Grafana, Prometheus, Kiali, Jaeger, … Business and IT agility through DevOps and microservice architecture
  • 114. Contact Details Business and IT agility through DevOps and microservice architecture • Blog: technology.amis.nl • Email: lucas.jellema@amis.nl • : lucasjellema • : lucas-jellema • : www.amis.nl, info@amis.nl +31 306016000 Edisonbaan 15, Nieuwegein
  • 115. Defining Workflow • Cross domain cutting concern • Composite transaction • Multi-step chain • Long running process • System initiated human participation • For example: the order flow • Submit order, check availability, collect payment, organize picking and shipping, and update loyalty status Business and IT agility through DevOps and microservice architecture
  • 116. Approaches • Orchestration • Choreography • Hybrid • Coordinated | Facilitated Choreography • Mixing orchestration and choreography Business and IT agility through DevOps and microservice architecture
  • 117. Desired Workflow Tweet about JFall Validate Tweet No simple retweet, no black listed words used, no known robot tweeter or otherwise excluded authors, no undesirable location Enrich Tweet Details about author, location, hashtags, acronyms and abbreviations used in tweet Add Tweet to TweetBoard Add the tweet to the top of the TweetBoard – a list of recent, relevant tweets Publish TweetBoard Publish the TweetBoard through API and UI (HTML web document) done Business and IT agility through DevOps and microservice architecture
  • 118. Microservices to map the workflow to Microservices Platform API Event Bus REST/ JSON APIUI NodeJS & Express in ACCS On premises Tweet BoardValidate Tweet API Java SE REST/ JSON Enrich Tweet Java SE/ Node.js Cache Business and IT agility through DevOps and microservice architecture
  • 119. Choreographed workflow #hashtag Microservices Platform APIAPI Event Bus APIUI On premises TweetBoard Validate Tweet Tweet Receiver API Enrich Tweet Workflow Launcher Cache Business and IT agility through DevOps and microservice architecture
  • 120. Routing Slip published by workflow Launcher Validate Tweet Enrich Tweet Add Tweet to TweetBoard Publish TweetBoard If NOK, then done Business and IT agility through DevOps and microservice architecture
  • 121. Routing Slip for completed workflow Business and IT agility through DevOps and microservice architecture
  • 122. Choreographed workflow #hashtag Microservices Platform APIAPI Event Bus APIUI On premises TweetBoard Validate Tweet Tweet Receiver API Enrich TweetWorkflow Launcher Cache Business and IT agility through DevOps and microservice architecture
  • 123. Event Bus Microservice Choreography Topology Workflow Launcher Tweet Validator Tweet Enricher Tweet Board Cache Cache Inspector LogMonitorTweet Receiver Business and IT agility through DevOps and microservice architecture
  • 124. Choreography partners – Pods in Kubernetes Business and IT agility through DevOps and microservice architecture
  • 125. Extending the workflow choreography – with translation of the tweet Validate Tweet Enrich Tweet Add Tweet to TweetBoard Publish TweetBoard If NOK, then done Translate Tweet Business and IT agility through DevOps and microservice architecture
  • 126. Extending the workflow choreography – with translation of the tweet • Implement microservice for • Translating tweets • Participating in Workflow • Deploy microservice – with access to Event Bus & Cache • Extend Workflow Template • Add new ‘translation’ step – dependency on Enrich Tweet • Change current ‘tweetboard’ step – modify dependency to Translation Validate Tweet Enrich Tweet Add Tweet to TweetBoard Publish TweetBoard If NOK, then done Translate Tweet Business and IT agility through DevOps and microservice architecture
  • 127. Choreographed workflow #hashtag Microservices Platform APIAPI Event Bus APIUI On premises TweetBoard Validate Tweet Tweet Receiver API Enrich TweetWorkflow Launcher Cache A PI Translate Tweet API Business and IT agility through DevOps and microservice architecture
  • 128. Modified workflow template A PI Translate Tweet API APIUI Tweet Board Business and IT agility through DevOps and microservice architecture
  • 129. Result on tweet board including translation Business and IT agility through DevOps and microservice architecture
  • 130. Hands On Microservices on Kubernetes • Run Kafka on Minikube • Locally or on Katacoda • Deploy microservices & workflow orchestration Business and IT agility through DevOps and microservice architecture
  • 131. Summary • IT has to enable business objectives • Needs to be flexible • Microservices are a way to make IT manageable • Design time (Dev) and Run Time (Ops) • Containers and the Kubernetes platform enable isolated runtimes • Automated build and delivery, scalable, automated recovery and roll out • Increasingly relevant: Cloud Native - Serverless • Events are essential for decoupled interaction • Apache Kafka is the defacto standard event bus platform • Workflows executed by microservices are governed by workflow slips and choreographed through events • Technologies to learn more about: • Docker, Kubernetes, Kafka, Redis, WeaveScope, Katacoda • Bonus: Camunda, Istio, Traefik, Grafana, Prometheus, Kiali, Jaeger, … Business and IT agility through DevOps and microservice architecture
  • 132. Contact Details Business and IT agility through DevOps and microservice architecture • Blog: technology.amis.nl • Email: lucas.jellema@amis.nl • : lucasjellema • : lucas-jellema • : www.amis.nl, info@amis.nl +31 306016000 Edisonbaan 15, Nieuwegein

Notas del editor

  1. The microservices architecture promises flexibility, scalability, and optimal use of compute resources. Via independent components with well-defined scope and responsibility, interface, and ownership that are evolved and managed in an automated DevOps process, this architecture leverages current technologies and hard-learned insights from past decades. This session demonstrates how to implement, roll out, and manage a set of collaborating microservices on Oracle Cloud, using services such as container (Docker) and Oracle Application Container Cloud, event hubs, Oracle Container Engine (Kubernetes), Oracle Identity Cloud Service, Oracle Data Hub Cloud Service, Wercker, Oracle Visual Builder Cloud Service, and Fn serverless platform and open source tools: Istio, Prometheus, Zipkin, Grafana.
  2. Objectives Requirements Specifications
  3. dazzle the audience with a quick dump of all technologies (and cloud services) used for putting the webshop together - for the UI, the API implementation, the datastores and the event bus.
  4. dazzle the audience with a quick dump of all technologies (and cloud services) used for putting the webshop together - for the UI, the API implementation, the datastores and the event bus.
  5. Deploy and Run (Docker Containers) Distributed infrastructure (scalable and available) Hide infrastructure from DevOps teams Auto-healing Elastic Scale Wire up the micros – connect dynamically (service discovery) Load Balance Provide Persistent storage Rolling Upgrade Configuration & Secret Management Secure
  6. Deploy and Run (Docker Containers) Distributed infrastructure (scalable and available) Hide infrastructure from DevOps teams Auto-healing Elastic Scale Wire up the micros – connect dynamically (service discovery) Load Balance Provide Persistent storage Rolling Upgrade Configuration & Secret Management Secure
  7. Deploy and Run (Docker Containers) Distributed infrastructure (scalable and available) Hide infrastructure from DevOps teams Auto-healing Elastic Scale Wire up the micros – connect dynamically (service discovery) Load Balance Provide Persistent storage Rolling Upgrade Configuration & Secret Management Secure
  8. https://www.cncf.io/
  9. All data stores are distributed Or at least distributedly available They can be local or on cloud (latency is important) Data in generic data store is still owned by only one microservice – no one can touch it Only in DWH and BigData do we deliberately take copies of data and disown them
  10. Data manipulation and retrieval in separate places (physical data proliferation) Query store is optimized for consumers Level of detail, format, filters applied For performance and scalability, independence, productivity lower license fees and lower TCO, security
  11. No Event Sourcing No events (?) No green field Packages Applications/SaaS Databases (RDBMS, NoSQL) getting changes from applications directly Challenges – at scale, with enough speed and consistently: do not let query store get into an exposed state that could not exist/be right! Detect relevant changes Extract relevant changes Transport Convert Apply in correct order and reliably (no lost events) Note: after detect and extract, an event can be published
  12. dazzle the audience with a quick dump of all technologies (and cloud services) used for putting the webshop together - for the UI, the API implementation, the datastores and the event bus.
  13. dazzle the audience with a quick dump of all technologies (and cloud services) used for putting the webshop together - for the UI, the API implementation, the datastores and the event bus.
  14. Workflow initiator responds to NewTweetEvent Workflow Initiator - When tweet is for hashtag oraclecode then create routingslip document with tweet data, store in cache under key and publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Validate Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if ValidateTweet should act; if so, validate tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Enrich Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if EnrichTweet should act; if so, enrich tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload TweetBoard – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if TweetBoard should act; if so, add tweet to tweet list, update routing slip, retrieve-and-store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload All microservices publish logging about their actions with the conversation identifier as part of the logging
  15. Workflow initiator responds to NewTweetEvent Workflow Initiator - When tweet is for hashtag oraclecode then create routingslip document with tweet data, store in cache under key and publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Validate Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if ValidateTweet should act; if so, validate tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Enrich Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if EnrichTweet should act; if so, enrich tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload TweetBoard – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if TweetBoard should act; if so, add tweet to tweet list, update routing slip, retrieve-and-store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload All microservices publish logging about their actions with the conversation identifier as part of the logging
  16. Workflow initiator responds to NewTweetEvent Workflow Initiator - When tweet is for hashtag oraclecode then create routingslip document with tweet data, store in cache under key and publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Validate Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if ValidateTweet should act; if so, validate tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Enrich Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if EnrichTweet should act; if so, enrich tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload TweetBoard – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if TweetBoard should act; if so, add tweet to tweet list, update routing slip, retrieve-and-store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload All microservices publish logging about their actions with the conversation identifier as part of the logging
  17. Workflow initiator responds to NewTweetEvent Workflow Initiator - When tweet is for hashtag oraclecode then create routingslip document with tweet data, store in cache under key and publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Validate Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if ValidateTweet should act; if so, validate tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload Enrich Tweet – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if EnrichTweet should act; if so, enrich tweet, update routing slip, retrieve and store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload TweetBoard – when OracleCodeTwitterWorkflow event – fetch workflow state from cache based on event payload, check routingslip to see if TweetBoard should act; if so, add tweet to tweet list, update routing slip, retrieve-and-store in cache; publish workflow event for OracleCodeTwitterWorkflow with cache key for workflow state in payload All microservices publish logging about their actions with the conversation identifier as part of the logging