SlideShare a Scribd company logo
1 of 107
Download to read offline
MILAN 18/19.11.2015
Microservices Architectures: Become a
Unicorn and create a project like Netflix,
Twitter or Hailo
Giulio Santoli - @gjuljo
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balancing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balancing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
Aileen Lee, the founder of Cowboy Ventures, in 2013 chose the word
unicorn to describe the winner of all winners among software start-ups,
and typically valued at $1 billion or more by investors.
Are Unicorns Real?
http://www.nytimes.com/2015/08/24/technology/the-unicorn-club-now-admitting-new-members.html
http://bits.blogs.nytimes.com/2015/07/05/unicorns-a-fitting-word-for-its-time-and-place
MILAN 18/19.11.2015 - GIULIO SANTOLI
The Increasingly Crowded
Unicorn Club (since 2011)
MILAN 18/19.11.2015 - GIULIO SANTOLI
The Periodic Table of Unicors
A breakdown of companies valued at $1B+ by sector (6/11/2015)
MILAN 18/19.11.2015 - GIULIO SANTOLI
What do these Unicorns
have in common?
(among others) An aggresive
adoption of the microservices
architecture approach.
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balancing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
Monolith or Microservices?
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Microservices are tiny apps talking
with uniform interface installed as well-
behaved OS services.”
lightweight, small footprint,
follow Single Responsibility
Pattern
RESTful. decoupled,
scalable, discoverable. self-contained, run with a
single one-liner command
by Eduard Sizovs (www.slideshare.net/eduardsi)
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Loosely coupled service oriented architecture
with bounded contexts”
Adrian Cockcroft
@adrianco
(Battery Ventures)
What is a Microservice Architecture?
MILAN 18/19.11.2015 - GIULIO SANTOLI
http://ir.netflix.com/
Netflix is the world’s leading
Internet television network with
over 69 million members in over 60
countries enjoying more than 100
million hours of TV shows and
movies per day, including original
series, documentaries and feature
films.
Members can watch as much as
they want, anytime, anywhere, on
nearly any Internet-connected
screen.
MILAN 18/19.11.2015 - GIULIO SANTOLI
Netflix moved from a Monolithic Architecture to Microservices,
building a set of infrastructure services, then open-sourced as
Netflix OSS.
https://netflix.github.io
http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html
MILAN 18/19.11.2015 - GIULIO SANTOLI
Be aware!
It’s not just a matter of
MILAN 18/19.11.2015 - GIULIO SANTOLI
Practices
Architectures Organizations
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Organizations which design
systems ... are constrained
to produce designs which
are copies of the
communication structures
of these organizations”
Conway, Melvin E. (1968)
Conway’s Law
MILAN 18/19.11.2015 - GIULIO SANTOLI
Siloed functional teams lead to
Siloed application architectures
http://martinfowler.com/articles/microservices.html
MILAN 18/19.11.2015 - GIULIO SANTOLI
Cross-functional teams lead to
capability-oriented architectures
http://martinfowler.com/articles/microservices.html
MILAN 18/19.11.2015 - GIULIO SANTOLI
Microservices v.s. Monolithic
Scalability
http://martinfowler.com/articles/microservices.html
MILAN 18/19.11.2015 - GIULIO SANTOLI
Microservices v.s. Monolithic
Database Polyglotism
http://martinfowler.com/articles/microservices.html
MILAN 18/19.11.2015 - GIULIO SANTOLI
Microservices v.s. Monolithic
Orchestration v.s. Choreography
MILAN 18/19.11.2015 - GIULIO SANTOLI
in summary...
microservices should be:
- cheap to replace
- quick to scale
- withstand failure
and should allow you to go as “fast as possible”
James Lewis
(ThoughWorks)
MILAN 18/19.11.2015 - GIULIO SANTOLI
How Big is Micro?
MILAN 18/19.11.2015 - GIULIO SANTOLI
Rules of Thumb
2-Pizza Team
Rule
(Jeff Bezos,
Amazon)
No more than
300 lines of
code
Focus on
what Matters
Adopt DDD
Bounded
Contexts
MILAN 18/19.11.2015 - GIULIO SANTOLI
“The heart of software is its ability to solve
domain-related problems for its user.”
Eric Evans
MILAN 18/19.11.2015 - GIULIO SANTOLI
Is this just another hype?
MILAN 18/19.11.2015 - GIULIO SANTOLI
12-factor app
cloud
microservices
devops
agile
MILAN 18/19.11.2015 - GIULIO SANTOLI
I. Codebase One codebase tracked in revision control, many deploys
II. Dependencies Explicitly declare and isolate dependencies
III. Configuration Store configuration in the environment
IV. Backing Services Treat backing services as attached resources
V. Build, release, run Strictly separate build and run stages
VI. Processes Execute the app as one or more stateless processes
VII. Port binding Export services via port binding
VIII. Concurrency Scale out via the process model
IX. Disposability Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity Keep development, staging, &production as similar as possible
XI. Logs Treat logs as event streams
XII. Admin processes Run admin/management tasks as one-off processes
12-Factor Applications (http://12factor.net)
The twelve-factor app is a methodology for building cloud native applications.
MILAN 18/19.11.2015 - GIULIO SANTOLI
Spring Boot makes it easy to create stand-alone,
production-grade Spring based Applications that
you can "just run".
Spring Boot & Spring Cloud Netflix
@Controller class ThisWillActuallyRun {
@RequestMapping("/")
@ResponseBody
String home() {
return "Hello World!"
}
}
app.groovy
$> spring run app.groovy
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 1
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balancing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
Service A
Service B
(instance1)
Service B
(instance2)
Service C
??
Service Discovery
MILAN 18/19.11.2015 - GIULIO SANTOLI
Service A
Service B
(instance1)
Service B
(instance2)
Service C
E
U
R
E
K
A
E
U
R
E
K
A
E
U
R
E
K
A
DISCOVERY
SERVER
(EUREKA)
Client-Side Service Discovery (Netflix)
E
U
R
E
K
A
MILAN 18/19.11.2015 - GIULIO SANTOLI
Service A
Service B
(instance1)
Service B
(instance2)
Service C
N
G
I
N
X
N
G
I
N
X
Server-Side Service Discovery
DISCOVERY
SERVER
(CONSUL)
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 2
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balancing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
Service A
Service B
(instance1)
Service B
(instance2)
Service C
N
G
I
N
X
N
G
I
N
X
Load Balancing: DNS + Proxy
DISCOVERY
SERVER
(CONSUL)
MILAN 18/19.11.2015 - GIULIO SANTOLI
Service A
Service B
(instance1)
Service B
(instance2)
Service C
R
I
B
B
O
N
E
U
R
E
K
A
E
U
R
E
K
A
E
U
R
E
K
A
DISCOVERY
SERVER
(EUREKA)
Client-Side Load Balancing (Neflix)
E
U
R
E
K
A
MILAN 18/19.11.2015 - GIULIO SANTOLI
Discovery and Configuration Technolgies
Consul is strongly consistent
datastore that uses gossip to form
dynamic clusters.
etcd is a distributed, consistent
key-value store for shared
configuration and service
discovery.
ZooKeeper is a centralized
service for maintaining
configuration information and
naming.
https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture
http://technologyconversations.com/2015/09/08/service-discovery-zookeeper-vs-etcd-vs-consul/
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 3
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balacing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
The Exception that Grounded an Aireline
Chapter 2
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Hope is not a design method.”
Michael T. Nygard
MILAN 18/19.11.2015 - GIULIO SANTOLI
Especially in a microservices
architecture, an application
needs to access one or more
services over the network.
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Every integration point will eventually fail in
some way”
Michael T. Nygard
MILAN 18/19.11.2015 - GIULIO SANTOLI
Each dependency is
isolated from one other,
restricted in the
resources it can saturate
when latency occurs, and
covered in fallback logic
that decides what
response to make when
any type of failure occurs
in the dependency
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Generating a slow response is worse than
refusing a connection or returning an error”
Michael T. Nygard
MILAN 18/19.11.2015 - GIULIO SANTOLI
Each dependency is
isolated from one other,
restricted in the
resources it can saturate
when latency occurs, and
covered in fallback logic
that decides what
response to make when
any type of failure occurs
in the dependency
MILAN 18/19.11.2015 - GIULIO SANTOLI
https://github.com/Netflix/Hystrix/wiki
Engineer the whole system for resilience
MILAN 18/19.11.2015 - GIULIO SANTOLI
Each dependency is
isolated from one other,
restricted in the
resources it can saturate
when latency occurs, and
covered in fallback logic
that decides what
response to make when
any type of failure occurs
in the dependency.
Hystrix Helps
MILAN 18/19.11.2015 - GIULIO SANTOLI
http://django-notes.blogspot.it/2012/02/release-it-design-and-deploy-production.html
Circuit Breaker Statechart
MILAN 18/19.11.2015 - GIULIO SANTOLI
https://github.com/Netflix/Hystrix/wiki/How-it-Works
Hystrix Circuit Breaker Flow Chart
MILAN 18/19.11.2015 - GIULIO SANTOLI
Hystrix Thread Pools and Semaphores
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 4
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balacing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
Hystrix Dashboard
MILAN 18/19.11.2015 - GIULIO SANTOLI
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 5
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 6
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balacing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
Monolith or
Moon-olith?
MILAN 18/19.11.2015 - GIULIO SANTOLI
MEMBERSHIP
SERVICE
RECOMMENDATIONS
SERVICE
ZUUL
(EDGE SERVER)
EUREKA
CLIENT
RIBBON +
HYSTRIX
EUREKA
CLIENT
RIBBON +
HYSTRIX
MEMBERSHIP
SERVICE
EUREKA
CLIENT
EUREKA
SERVER
(DISCOVERY) HYSTRIX
DASHBOARD
(MONITOR)
TURBINE
(AGGREGATION)
EUREKA
SERVER
(DISCOVERY)
ARCHAIUS
(CONFIG)
ATLAS
(METRICS)
Main Netflix Components
SPECTATOR
MILAN 18/19.11.2015 - GIULIO SANTOLI
Netflix Architecture
by Adrian Cockcroft
Simplified Architecture Actual Architecture
https://github.com/adrianco/spigo
MILAN 18/19.11.2015 - GIULIO SANTOLI
Configuraiton Discovery Routing Observability
Archaius Eureka Zuul, Ribbon Hystrix
Decider Finagle, Zookeper Finagle, Netty Zipkin
Decider Finagle, Zookeper Finagle, Akka Zipkin
Netflix
Twitter
Gilt
http://www.slideshare.net/adriancockcroft/monitorama-please-no-more
Technology Comparison
MILAN 18/19.11.2015 - GIULIO SANTOLI
Finagle @Twitter
Finagle is an extensible RPC system for the JVM, used to
construct high-concurrency servers.
Finagle implements uniform client and server APIs for several
protocols, and is designed for high performance and concurrency.
Finagle is written in Scala, but provides both Scala and Java
idiomatic APIs.
https://blog.twitter.com/2011/finagle-a-protocol-agnostic-rpc-system
MILAN 18/19.11.2015 - GIULIO SANTOLI
Zipkin @Twitter
https://twitter.github.io/zipkin/Architecture.html
https://github.com/openzipkin/zipkin
Zipkin is a distributed tracing system. It helps gather
timing data needed to troubleshoot latency problems in
microservice architectures.
MILAN 18/19.11.2015 - GIULIO SANTOLI
Distributed Tracing with Zipkin
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balacing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Docker is an open platform for developers and
system admins to build, ship, and run distributed
applications.”
Introducing Docker
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Docker runs as an isolated process in userspace on the host
operating system, sharing the kernel with other containers. Thus,
it enjoys the resource isolation and allocation benefits of VMs but
is much more portable and efficient. ”
container isolation content processes
user
network
id
cgroups
"make me a isolated context" "put this in it" "then run this"
= + +
How does it work?
MILAN 18/19.11.2015 - GIULIO SANTOLI
Filesystem
Base OS / Kernel
Fedora Ubuntu
tomcat tomcatliberty
CNTR1 CNTR2 CNTR3 CNTR4
app1 app2 app4app3
Layer
Layer
Layer
Layers allow for reuse, more containers
per host and faster start/re-start time.
Read-only layers allow portability and
efficiency.
New files and edits are visible to
current and above layers.
Docker uses a copy-on-write (union)
filesystem.
Docker is so
lightweight
because of the
reusable layers in
Docker images.
How is this different from Virtual Machines?
MILAN 18/19.11.2015 - GIULIO SANTOLI
Docker Machine enables
any host, whether a
laptop, server, VM or
remote cloud instance, to
run Docker apps.
Docker Compose is a tool
for defining and running
multi-container applications
with by using a single
declarative file
(i.e. docker-compose.yml).
At the core of the
Docker platform is
Docker Engine, a
lightweight runtime
that builds and runs
your containers.
MILAN 18/19.11.2015 - GIULIO SANTOLI
Managing Docker Clusters
A = Node Clusters
B = Nodes
C = Containers
D = Links
E = Volumes
F = Services
Tutum is designed to ease the management of using Docker.
Tutum offers a single platform to help with automating
deployment, scaling, linking containers that run on different
cloud providers, achieving redundancy and monitoring the
deployment.
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 7
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 8
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balacing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
“If you can’t measure it, you can’t
improve it.”
Lord Kelvin
MILAN 18/19.11.2015 - GIULIO SANTOLI
Centralized logging with the ELK Stack
Elasticsearch is a distributed,
open source search and analytics
engine.
Logstash is a flexible, open source
data collection, enrichment, and
transportation pipeline.
Kibana is an open source data
visualization platform to
interact with your data.
MILAN 18/19.11.2015 - GIULIO SANTOLI
SOME
MORE
EXAMPLES
MILAN 18/19.11.2015 - GIULIO SANTOLI
A Picture is Worth a Thousand Words
Good visualization helps to
communicate and deliver
insights effectively.
http://techblog.netflix.com/2014/01/improving-netflixs-operational.html
MILAN 18/19.11.2015 - GIULIO SANTOLI
Predictive Auto-Scaling at Netflix
http://techblog.netflix.com/2013/11/scryer-netflixs-predictive-auto-scaling.html
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 9
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balacing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
Cloud Foundry is an open source project platform-as-
a-service, making it faster and easier to build, test,
deploy, and scale applications
Introducing Cloud Foundry
MILAN 18/19.11.2015 - GIULIO SANTOLI
IaaS
Cloud Foundry BOSH
Cloud Foundry
Agent
Agent
Droplet Execution Agent (DEA)
Container
Runtime
Application
Container
Runtime
Application
Cloud
Foundry
Underlayng
Infrastructure
Apps
MILAN 18/19.11.2015 - GIULIO SANTOLI
Cloud Foundry distributes the
containers among the DEA
cells
cell1 cell2 cell3 cell4
When a container crashes, it’s
automatically restarted
When a cell crashes, it’s
workload is distributed among
the other cells
cell1 cell2 cell3 cell4
cell1 cell2 cell3 cell4
Container orchestration in Cloud Foundry
time
MILAN 18/19.11.2015 - GIULIO SANTOLI
Lattice: a minimal Cloud Foundry
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 10
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balacing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
“In software, when something is painful, the
way to reduce the pain is to do it more
frequently, not less.”
David Farley
MILAN 18/19.11.2015 - GIULIO SANTOLI
Continuous Delivery vs Continuous Deployment
http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment
MILAN 18/19.11.2015 - GIULIO SANTOLI
Deployment Techniques
minimize downtime
minimize risks
increase feedback
http://techblog.netflix.com/2013/08/deploying-netflix-api.html
MILAN 18/19.11.2015 - GIULIO SANTOLI
APP v1
Blue-Green Deployment
APP v2
Router
http://martinfowler.com/bliki/BlueGreenDeployment.html
APP v1 APP v2
Router
MILAN 18/19.11.2015 - GIULIO SANTOLI
APP v1
Red-Black Deployment
& Canary Deployment
APP v2
Router
http://techblog.netflix.com/2013/08/deploying-netflix-api.html
http://martinfowler.com/bliki/CanaryRelease.html
APP v1 APP v2
Router
APP v1 APP v2
Router
MILAN 18/19.11.2015 - GIULIO SANTOLI
LAB: Scenario 11
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Until code is in production, no value is
actually being generated”
Gene Kim
MILAN 18/19.11.2015 - GIULIO SANTOLI
Ops
from to NoOpsDevOps
Operations
DevOps
http://blogs.forrester.com/mike_gualtieri/11-02-07-i_dont_want_devops_i_want_noops
MILAN 18/19.11.2015 - GIULIO SANTOLI
“You Build It, You Run It”
Werner Vogels (Amazon)
MILAN 18/19.11.2015 - GIULIO SANTOLI
Continous Delivery at Neflix
http://techblog.netflix.com/2013/08/deploying-netflix-api.html
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Run longevity tests. It’s the only way to
catch longevity bugs.”
Michael T. Nygard
MILAN 18/19.11.2015 - GIULIO SANTOLI
Failures happen, and they
inevitably happen when least
desired.
Simian Army consists of
services (Monkeys) in the
cloud for generating various
kinds of failures, detecting
abnormal conditions, and
testing our ability to survive
them. The goal is to keep our
cloud safe, secure, and highly
available
http://techblog.netflix.com/2011/07/netflix-simian-army.html
MILAN 18/19.11.2015 - GIULIO SANTOLI
1. Here comes the Unicorns
2. Monolith v.s. Microservices
3. Services for the Microservices:
a. Service Discovery
b. Load Balacing
c. Fault Tolerance
d. Edge Server and Data Aggregation
4. The Death Star strikes back
5. Dockerize it
6. Centralized Logging and Monitoring
7. Running on Cloud Foundry
8. Continous Delivery, DevOps and NoOps
9. What’s next?
Agenda
MILAN 18/19.11.2015 - GIULIO SANTOLI
What’s ?
MILAN 18/19.11.2015 - GIULIO SANTOLI
https://blog.codecentric.de/en/2014/10/log-management-spring-boot-applications-logstash-elastichsearch-kibana
Log Management for Spring Boot Applications with Logstash, Elasticsearch
and Kibana
http://callistaenterprise.se/blogg/teknik/2015/05/20/blog-series-building-microservices
Blog Series - Building Microservices
https://spring.io/blog/2015/01/20/microservice-registration-and-discovery-with-spring-cloud-and-netflix-s-eureka
Microservice Registration and Discovery with Spring Cloud and Netflix's
Eureka
http://ryanjbaxter.com/2015/07/15/using-microservices-to-build-cloud-native-applications-part-1
Using Microservices To Build Cloud Native Applications
Very good tutorials
MILAN 18/19.11.2015 - GIULIO SANTOLI
https://www.youtube.com/watch?v=6wvVANQ6EJ8
Videos
Spring Cloud at Netflix: Jon Schneider and Taylor Wicksell (Netflix)
https://www.youtube.com/watch?v=2YqiSPjIBqQ
Monitoring and Simulating Microservices: Adrian Cockcroft (Battery Ventures)
MILAN 18/19.11.2015 - GIULIO SANTOLI
More Books
MILAN 18/19.11.2015 - GIULIO SANTOLI
“Beware the distributed monolith.”
James Lewis
(ThoughWorks)

More Related Content

What's hot

From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices Amazon Web Services
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureNguyen Tung
 
Async API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureAsync API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureSolace
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep DiveYong Feng
 
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature Mapping
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature MappingMicrosoft Azure vs Amazon Web Services (AWS) Services & Feature Mapping
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature MappingIlyas F ☁☁☁
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services ArchitectureAraf Karsh Hamid
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for MicroservicesChris Richardson
 
The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?Codit
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principlesSanjoy Kumar Roy
 
Netflix Global Cloud Architecture
Netflix Global Cloud ArchitectureNetflix Global Cloud Architecture
Netflix Global Cloud ArchitectureAdrian Cockcroft
 

What's hot (20)

From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Github in Action
Github in ActionGithub in Action
Github in Action
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Async API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven FutureAsync API and Solace: Enabling the Event-Driven Future
Async API and Solace: Enabling the Event-Driven Future
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep Dive
 
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature Mapping
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature MappingMicrosoft Azure vs Amazon Web Services (AWS) Services & Feature Mapping
Microsoft Azure vs Amazon Web Services (AWS) Services & Feature Mapping
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for Microservices
 
The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Soluciones Dynatrace
Soluciones DynatraceSoluciones Dynatrace
Soluciones Dynatrace
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
 
Netflix Global Cloud Architecture
Netflix Global Cloud ArchitectureNetflix Global Cloud Architecture
Netflix Global Cloud Architecture
 

Similar to Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo

Building The Right Network
Building The Right NetworkBuilding The Right Network
Building The Right NetworkCisco Canada
 
3° Fiware Overview-Chile
3° Fiware Overview-Chile3° Fiware Overview-Chile
3° Fiware Overview-ChileTIDChile
 
App Mashup GE: WireCloud - Startup Weekend
App Mashup GE: WireCloud - Startup WeekendApp Mashup GE: WireCloud - Startup Weekend
App Mashup GE: WireCloud - Startup WeekendMiguel Jiménez
 
WSO2-Yenlo Integration Summit Stuttgart 15 may 2019
WSO2-Yenlo Integration Summit Stuttgart 15 may 2019WSO2-Yenlo Integration Summit Stuttgart 15 may 2019
WSO2-Yenlo Integration Summit Stuttgart 15 may 2019Yenlo
 
Building the Future with Technology: The Next Five Years
Building the Future with Technology: The Next Five Years Building the Future with Technology: The Next Five Years
Building the Future with Technology: The Next Five Years Cisco Canada
 
건설 스타트업과 오픈소스
건설 스타트업과 오픈소스건설 스타트업과 오픈소스
건설 스타트업과 오픈소스Tae wook kang
 
What is Cloud Native and why should I care
What is Cloud Native and why should I careWhat is Cloud Native and why should I care
What is Cloud Native and why should I careTomasz Tarczyński
 
Cisco at v mworld 2015 shipped-vmworld
Cisco at v mworld 2015 shipped-vmworldCisco at v mworld 2015 shipped-vmworld
Cisco at v mworld 2015 shipped-vmworldldangelo0772
 
Gluecon 2015 Recap
Gluecon 2015 RecapGluecon 2015 Recap
Gluecon 2015 RecapLaunchAny
 
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...Paolo Nesi
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMiki Lombardi
 
Continuous Delivery to the Cloud: Automate Thru Production with CI + Spinnaker
Continuous Delivery to the Cloud: Automate Thru Production with CI + SpinnakerContinuous Delivery to the Cloud: Automate Thru Production with CI + Spinnaker
Continuous Delivery to the Cloud: Automate Thru Production with CI + SpinnakerVMware Tanzu
 
Codemotion Milano 2014 - IBM Internet of Things - Giulio Santoli
Codemotion Milano 2014 - IBM Internet of Things - Giulio SantoliCodemotion Milano 2014 - IBM Internet of Things - Giulio Santoli
Codemotion Milano 2014 - IBM Internet of Things - Giulio Santoligjuljo
 
Presentation capturing the cloud opportunity
Presentation   capturing the cloud opportunityPresentation   capturing the cloud opportunity
Presentation capturing the cloud opportunityxKinAnx
 
Ramin elahi fog_computing_ecosystem_final_dec22_updated
Ramin elahi fog_computing_ecosystem_final_dec22_updatedRamin elahi fog_computing_ecosystem_final_dec22_updated
Ramin elahi fog_computing_ecosystem_final_dec22_updatedHarshitParkar6677
 
VIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platformVIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platformÁkos Horváth
 
Snap4City November 2019 Course: Smart City IOT development of IOT Applications
Snap4City November 2019 Course: Smart City IOT development of IOT ApplicationsSnap4City November 2019 Course: Smart City IOT development of IOT Applications
Snap4City November 2019 Course: Smart City IOT development of IOT ApplicationsPaolo Nesi
 
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015Jim Bugwadia
 

Similar to Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo (20)

Building The Right Network
Building The Right NetworkBuilding The Right Network
Building The Right Network
 
3° Fiware Overview-Chile
3° Fiware Overview-Chile3° Fiware Overview-Chile
3° Fiware Overview-Chile
 
App Mashup GE: WireCloud - Startup Weekend
App Mashup GE: WireCloud - Startup WeekendApp Mashup GE: WireCloud - Startup Weekend
App Mashup GE: WireCloud - Startup Weekend
 
WSO2-Yenlo Integration Summit Stuttgart 15 may 2019
WSO2-Yenlo Integration Summit Stuttgart 15 may 2019WSO2-Yenlo Integration Summit Stuttgart 15 may 2019
WSO2-Yenlo Integration Summit Stuttgart 15 may 2019
 
Building the Future with Technology: The Next Five Years
Building the Future with Technology: The Next Five Years Building the Future with Technology: The Next Five Years
Building the Future with Technology: The Next Five Years
 
건설 스타트업과 오픈소스
건설 스타트업과 오픈소스건설 스타트업과 오픈소스
건설 스타트업과 오픈소스
 
What is Cloud Native and why should I care
What is Cloud Native and why should I careWhat is Cloud Native and why should I care
What is Cloud Native and why should I care
 
Cisco at v mworld 2015 shipped-vmworld
Cisco at v mworld 2015 shipped-vmworldCisco at v mworld 2015 shipped-vmworld
Cisco at v mworld 2015 shipped-vmworld
 
Gluecon 2015 Recap
Gluecon 2015 RecapGluecon 2015 Recap
Gluecon 2015 Recap
 
FastCLOUD ovirt meetup
FastCLOUD ovirt meetupFastCLOUD ovirt meetup
FastCLOUD ovirt meetup
 
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Continuous Delivery to the Cloud: Automate Thru Production with CI + Spinnaker
Continuous Delivery to the Cloud: Automate Thru Production with CI + SpinnakerContinuous Delivery to the Cloud: Automate Thru Production with CI + Spinnaker
Continuous Delivery to the Cloud: Automate Thru Production with CI + Spinnaker
 
Telefonica i pv6_smartcity
Telefonica i pv6_smartcityTelefonica i pv6_smartcity
Telefonica i pv6_smartcity
 
Codemotion Milano 2014 - IBM Internet of Things - Giulio Santoli
Codemotion Milano 2014 - IBM Internet of Things - Giulio SantoliCodemotion Milano 2014 - IBM Internet of Things - Giulio Santoli
Codemotion Milano 2014 - IBM Internet of Things - Giulio Santoli
 
Presentation capturing the cloud opportunity
Presentation   capturing the cloud opportunityPresentation   capturing the cloud opportunity
Presentation capturing the cloud opportunity
 
Ramin elahi fog_computing_ecosystem_final_dec22_updated
Ramin elahi fog_computing_ecosystem_final_dec22_updatedRamin elahi fog_computing_ecosystem_final_dec22_updated
Ramin elahi fog_computing_ecosystem_final_dec22_updated
 
VIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platformVIATRA 3: A reactive model transformation platform
VIATRA 3: A reactive model transformation platform
 
Snap4City November 2019 Course: Smart City IOT development of IOT Applications
Snap4City November 2019 Course: Smart City IOT development of IOT ApplicationsSnap4City November 2019 Course: Smart City IOT development of IOT Applications
Snap4City November 2019 Course: Smart City IOT development of IOT Applications
 
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015
Multi-Cloud Microservices - DevOps Summit Silicon Valley 2015
 

More from gjuljo

Azure deployments and ARM templates
Azure deployments and ARM templatesAzure deployments and ARM templates
Azure deployments and ARM templatesgjuljo
 
Azure Monitoring Overview
Azure Monitoring OverviewAzure Monitoring Overview
Azure Monitoring Overviewgjuljo
 
Going serverless with azure functions
Going serverless with azure functionsGoing serverless with azure functions
Going serverless with azure functionsgjuljo
 
Microsoft Azure Technical Overview
Microsoft Azure Technical OverviewMicrosoft Azure Technical Overview
Microsoft Azure Technical Overviewgjuljo
 
Chatbot development workshop with the Microsoft Bot Framework
Chatbot development workshop with the Microsoft Bot FrameworkChatbot development workshop with the Microsoft Bot Framework
Chatbot development workshop with the Microsoft Bot Frameworkgjuljo
 
Bot Revolution lab at Codemotion Milan 2016
Bot Revolution lab at Codemotion Milan 2016Bot Revolution lab at Codemotion Milan 2016
Bot Revolution lab at Codemotion Milan 2016gjuljo
 
DevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft AzureDevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft Azuregjuljo
 
Microservices Architecture: Labs
Microservices Architecture: LabsMicroservices Architecture: Labs
Microservices Architecture: Labsgjuljo
 
IBM Business Connect 2015 - Bluemix Overview
IBM Business Connect 2015 - Bluemix OverviewIBM Business Connect 2015 - Bluemix Overview
IBM Business Connect 2015 - Bluemix Overviewgjuljo
 
FORUM PA 2015 - Microservices with IBM Bluemix
FORUM PA 2015 - Microservices with IBM BluemixFORUM PA 2015 - Microservices with IBM Bluemix
FORUM PA 2015 - Microservices with IBM Bluemixgjuljo
 
IBM Bluemix Introdution for Hackathons
IBM Bluemix Introdution for HackathonsIBM Bluemix Introdution for Hackathons
IBM Bluemix Introdution for Hackathonsgjuljo
 
IBM Bluemix Hackathon Accelerator
IBM Bluemix Hackathon AcceleratorIBM Bluemix Hackathon Accelerator
IBM Bluemix Hackathon Acceleratorgjuljo
 
IBM Bluemix and the Internet of Things - Workshop
IBM Bluemix and the Internet of Things - WorkshopIBM Bluemix and the Internet of Things - Workshop
IBM Bluemix and the Internet of Things - Workshopgjuljo
 
Codemotion Rome 2015 IBM Bluemix and Docker
Codemotion Rome 2015 IBM Bluemix and DockerCodemotion Rome 2015 IBM Bluemix and Docker
Codemotion Rome 2015 IBM Bluemix and Dockergjuljo
 
Codemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab TutorialCodemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab Tutorialgjuljo
 
Codemotion Rome 2015 - Microservices with IBM Bluemix and DevOps Services
Codemotion Rome 2015 - Microservices with IBM Bluemix and DevOps ServicesCodemotion Rome 2015 - Microservices with IBM Bluemix and DevOps Services
Codemotion Rome 2015 - Microservices with IBM Bluemix and DevOps Servicesgjuljo
 
Hybrid Cloud with IBM Bluemix, Docker and Open Stack
Hybrid Cloud with IBM Bluemix, Docker and Open StackHybrid Cloud with IBM Bluemix, Docker and Open Stack
Hybrid Cloud with IBM Bluemix, Docker and Open Stackgjuljo
 
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT ApplicationsInterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applicationsgjuljo
 
IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015gjuljo
 
IBM Bluemix saves the game
IBM Bluemix saves the gameIBM Bluemix saves the game
IBM Bluemix saves the gamegjuljo
 

More from gjuljo (20)

Azure deployments and ARM templates
Azure deployments and ARM templatesAzure deployments and ARM templates
Azure deployments and ARM templates
 
Azure Monitoring Overview
Azure Monitoring OverviewAzure Monitoring Overview
Azure Monitoring Overview
 
Going serverless with azure functions
Going serverless with azure functionsGoing serverless with azure functions
Going serverless with azure functions
 
Microsoft Azure Technical Overview
Microsoft Azure Technical OverviewMicrosoft Azure Technical Overview
Microsoft Azure Technical Overview
 
Chatbot development workshop with the Microsoft Bot Framework
Chatbot development workshop with the Microsoft Bot FrameworkChatbot development workshop with the Microsoft Bot Framework
Chatbot development workshop with the Microsoft Bot Framework
 
Bot Revolution lab at Codemotion Milan 2016
Bot Revolution lab at Codemotion Milan 2016Bot Revolution lab at Codemotion Milan 2016
Bot Revolution lab at Codemotion Milan 2016
 
DevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft AzureDevOps in the Cloud with Microsoft Azure
DevOps in the Cloud with Microsoft Azure
 
Microservices Architecture: Labs
Microservices Architecture: LabsMicroservices Architecture: Labs
Microservices Architecture: Labs
 
IBM Business Connect 2015 - Bluemix Overview
IBM Business Connect 2015 - Bluemix OverviewIBM Business Connect 2015 - Bluemix Overview
IBM Business Connect 2015 - Bluemix Overview
 
FORUM PA 2015 - Microservices with IBM Bluemix
FORUM PA 2015 - Microservices with IBM BluemixFORUM PA 2015 - Microservices with IBM Bluemix
FORUM PA 2015 - Microservices with IBM Bluemix
 
IBM Bluemix Introdution for Hackathons
IBM Bluemix Introdution for HackathonsIBM Bluemix Introdution for Hackathons
IBM Bluemix Introdution for Hackathons
 
IBM Bluemix Hackathon Accelerator
IBM Bluemix Hackathon AcceleratorIBM Bluemix Hackathon Accelerator
IBM Bluemix Hackathon Accelerator
 
IBM Bluemix and the Internet of Things - Workshop
IBM Bluemix and the Internet of Things - WorkshopIBM Bluemix and the Internet of Things - Workshop
IBM Bluemix and the Internet of Things - Workshop
 
Codemotion Rome 2015 IBM Bluemix and Docker
Codemotion Rome 2015 IBM Bluemix and DockerCodemotion Rome 2015 IBM Bluemix and Docker
Codemotion Rome 2015 IBM Bluemix and Docker
 
Codemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab TutorialCodemotion Rome 2015 Bluemix Lab Tutorial
Codemotion Rome 2015 Bluemix Lab Tutorial
 
Codemotion Rome 2015 - Microservices with IBM Bluemix and DevOps Services
Codemotion Rome 2015 - Microservices with IBM Bluemix and DevOps ServicesCodemotion Rome 2015 - Microservices with IBM Bluemix and DevOps Services
Codemotion Rome 2015 - Microservices with IBM Bluemix and DevOps Services
 
Hybrid Cloud with IBM Bluemix, Docker and Open Stack
Hybrid Cloud with IBM Bluemix, Docker and Open StackHybrid Cloud with IBM Bluemix, Docker and Open Stack
Hybrid Cloud with IBM Bluemix, Docker and Open Stack
 
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT ApplicationsInterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
InterConnect2015 ICP3222 A MDD Approach to Agile Development of IoT Applications
 
IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015IBM Bluemix Tech Meetup 18-02-2015
IBM Bluemix Tech Meetup 18-02-2015
 
IBM Bluemix saves the game
IBM Bluemix saves the gameIBM Bluemix saves the game
IBM Bluemix saves the game
 

Recently uploaded

VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Anthony Dahanne
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 

Recently uploaded (20)

VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024Not a Kubernetes fan? The state of PaaS in 2024
Not a Kubernetes fan? The state of PaaS in 2024
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 

Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo

  • 1. MILAN 18/19.11.2015 Microservices Architectures: Become a Unicorn and create a project like Netflix, Twitter or Hailo Giulio Santoli - @gjuljo
  • 2. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balancing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 3. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balancing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 4. MILAN 18/19.11.2015 - GIULIO SANTOLI Aileen Lee, the founder of Cowboy Ventures, in 2013 chose the word unicorn to describe the winner of all winners among software start-ups, and typically valued at $1 billion or more by investors. Are Unicorns Real? http://www.nytimes.com/2015/08/24/technology/the-unicorn-club-now-admitting-new-members.html http://bits.blogs.nytimes.com/2015/07/05/unicorns-a-fitting-word-for-its-time-and-place
  • 5. MILAN 18/19.11.2015 - GIULIO SANTOLI The Increasingly Crowded Unicorn Club (since 2011)
  • 6. MILAN 18/19.11.2015 - GIULIO SANTOLI The Periodic Table of Unicors A breakdown of companies valued at $1B+ by sector (6/11/2015)
  • 7. MILAN 18/19.11.2015 - GIULIO SANTOLI What do these Unicorns have in common? (among others) An aggresive adoption of the microservices architecture approach.
  • 8. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balancing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 9. MILAN 18/19.11.2015 - GIULIO SANTOLI Monolith or Microservices?
  • 10. MILAN 18/19.11.2015 - GIULIO SANTOLI “Microservices are tiny apps talking with uniform interface installed as well- behaved OS services.” lightweight, small footprint, follow Single Responsibility Pattern RESTful. decoupled, scalable, discoverable. self-contained, run with a single one-liner command by Eduard Sizovs (www.slideshare.net/eduardsi)
  • 11. MILAN 18/19.11.2015 - GIULIO SANTOLI “Loosely coupled service oriented architecture with bounded contexts” Adrian Cockcroft @adrianco (Battery Ventures) What is a Microservice Architecture?
  • 12. MILAN 18/19.11.2015 - GIULIO SANTOLI http://ir.netflix.com/ Netflix is the world’s leading Internet television network with over 69 million members in over 60 countries enjoying more than 100 million hours of TV shows and movies per day, including original series, documentaries and feature films. Members can watch as much as they want, anytime, anywhere, on nearly any Internet-connected screen.
  • 13. MILAN 18/19.11.2015 - GIULIO SANTOLI Netflix moved from a Monolithic Architecture to Microservices, building a set of infrastructure services, then open-sourced as Netflix OSS. https://netflix.github.io http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html
  • 14. MILAN 18/19.11.2015 - GIULIO SANTOLI Be aware! It’s not just a matter of
  • 15. MILAN 18/19.11.2015 - GIULIO SANTOLI Practices Architectures Organizations
  • 16. MILAN 18/19.11.2015 - GIULIO SANTOLI “Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” Conway, Melvin E. (1968) Conway’s Law
  • 17. MILAN 18/19.11.2015 - GIULIO SANTOLI Siloed functional teams lead to Siloed application architectures http://martinfowler.com/articles/microservices.html
  • 18. MILAN 18/19.11.2015 - GIULIO SANTOLI Cross-functional teams lead to capability-oriented architectures http://martinfowler.com/articles/microservices.html
  • 19. MILAN 18/19.11.2015 - GIULIO SANTOLI Microservices v.s. Monolithic Scalability http://martinfowler.com/articles/microservices.html
  • 20. MILAN 18/19.11.2015 - GIULIO SANTOLI Microservices v.s. Monolithic Database Polyglotism http://martinfowler.com/articles/microservices.html
  • 21. MILAN 18/19.11.2015 - GIULIO SANTOLI Microservices v.s. Monolithic Orchestration v.s. Choreography
  • 22. MILAN 18/19.11.2015 - GIULIO SANTOLI in summary... microservices should be: - cheap to replace - quick to scale - withstand failure and should allow you to go as “fast as possible” James Lewis (ThoughWorks)
  • 23. MILAN 18/19.11.2015 - GIULIO SANTOLI How Big is Micro?
  • 24. MILAN 18/19.11.2015 - GIULIO SANTOLI Rules of Thumb 2-Pizza Team Rule (Jeff Bezos, Amazon) No more than 300 lines of code Focus on what Matters Adopt DDD Bounded Contexts
  • 25. MILAN 18/19.11.2015 - GIULIO SANTOLI “The heart of software is its ability to solve domain-related problems for its user.” Eric Evans
  • 26. MILAN 18/19.11.2015 - GIULIO SANTOLI Is this just another hype?
  • 27. MILAN 18/19.11.2015 - GIULIO SANTOLI 12-factor app cloud microservices devops agile
  • 28. MILAN 18/19.11.2015 - GIULIO SANTOLI I. Codebase One codebase tracked in revision control, many deploys II. Dependencies Explicitly declare and isolate dependencies III. Configuration Store configuration in the environment IV. Backing Services Treat backing services as attached resources V. Build, release, run Strictly separate build and run stages VI. Processes Execute the app as one or more stateless processes VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, &production as similar as possible XI. Logs Treat logs as event streams XII. Admin processes Run admin/management tasks as one-off processes 12-Factor Applications (http://12factor.net) The twelve-factor app is a methodology for building cloud native applications.
  • 29. MILAN 18/19.11.2015 - GIULIO SANTOLI Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". Spring Boot & Spring Cloud Netflix @Controller class ThisWillActuallyRun { @RequestMapping("/") @ResponseBody String home() { return "Hello World!" } } app.groovy $> spring run app.groovy
  • 30. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 1
  • 31. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balancing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 32. MILAN 18/19.11.2015 - GIULIO SANTOLI Service A Service B (instance1) Service B (instance2) Service C ?? Service Discovery
  • 33. MILAN 18/19.11.2015 - GIULIO SANTOLI Service A Service B (instance1) Service B (instance2) Service C E U R E K A E U R E K A E U R E K A DISCOVERY SERVER (EUREKA) Client-Side Service Discovery (Netflix) E U R E K A
  • 34. MILAN 18/19.11.2015 - GIULIO SANTOLI Service A Service B (instance1) Service B (instance2) Service C N G I N X N G I N X Server-Side Service Discovery DISCOVERY SERVER (CONSUL)
  • 35. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 2
  • 36. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balancing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 37. MILAN 18/19.11.2015 - GIULIO SANTOLI Service A Service B (instance1) Service B (instance2) Service C N G I N X N G I N X Load Balancing: DNS + Proxy DISCOVERY SERVER (CONSUL)
  • 38. MILAN 18/19.11.2015 - GIULIO SANTOLI Service A Service B (instance1) Service B (instance2) Service C R I B B O N E U R E K A E U R E K A E U R E K A DISCOVERY SERVER (EUREKA) Client-Side Load Balancing (Neflix) E U R E K A
  • 39. MILAN 18/19.11.2015 - GIULIO SANTOLI Discovery and Configuration Technolgies Consul is strongly consistent datastore that uses gossip to form dynamic clusters. etcd is a distributed, consistent key-value store for shared configuration and service discovery. ZooKeeper is a centralized service for maintaining configuration information and naming. https://www.nginx.com/blog/service-discovery-in-a-microservices-architecture http://technologyconversations.com/2015/09/08/service-discovery-zookeeper-vs-etcd-vs-consul/
  • 40. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 3
  • 41. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balacing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 42. MILAN 18/19.11.2015 - GIULIO SANTOLI The Exception that Grounded an Aireline Chapter 2
  • 43. MILAN 18/19.11.2015 - GIULIO SANTOLI “Hope is not a design method.” Michael T. Nygard
  • 44. MILAN 18/19.11.2015 - GIULIO SANTOLI Especially in a microservices architecture, an application needs to access one or more services over the network.
  • 45. MILAN 18/19.11.2015 - GIULIO SANTOLI “Every integration point will eventually fail in some way” Michael T. Nygard
  • 46. MILAN 18/19.11.2015 - GIULIO SANTOLI Each dependency is isolated from one other, restricted in the resources it can saturate when latency occurs, and covered in fallback logic that decides what response to make when any type of failure occurs in the dependency
  • 47. MILAN 18/19.11.2015 - GIULIO SANTOLI “Generating a slow response is worse than refusing a connection or returning an error” Michael T. Nygard
  • 48. MILAN 18/19.11.2015 - GIULIO SANTOLI Each dependency is isolated from one other, restricted in the resources it can saturate when latency occurs, and covered in fallback logic that decides what response to make when any type of failure occurs in the dependency
  • 49. MILAN 18/19.11.2015 - GIULIO SANTOLI https://github.com/Netflix/Hystrix/wiki Engineer the whole system for resilience
  • 50. MILAN 18/19.11.2015 - GIULIO SANTOLI Each dependency is isolated from one other, restricted in the resources it can saturate when latency occurs, and covered in fallback logic that decides what response to make when any type of failure occurs in the dependency. Hystrix Helps
  • 51. MILAN 18/19.11.2015 - GIULIO SANTOLI http://django-notes.blogspot.it/2012/02/release-it-design-and-deploy-production.html Circuit Breaker Statechart
  • 52. MILAN 18/19.11.2015 - GIULIO SANTOLI https://github.com/Netflix/Hystrix/wiki/How-it-Works Hystrix Circuit Breaker Flow Chart
  • 53. MILAN 18/19.11.2015 - GIULIO SANTOLI Hystrix Thread Pools and Semaphores
  • 54. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 4
  • 55. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balacing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 56. MILAN 18/19.11.2015 - GIULIO SANTOLI Hystrix Dashboard
  • 57. MILAN 18/19.11.2015 - GIULIO SANTOLI
  • 58. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 5
  • 59. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 6
  • 60. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balacing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 61. MILAN 18/19.11.2015 - GIULIO SANTOLI Monolith or Moon-olith?
  • 62. MILAN 18/19.11.2015 - GIULIO SANTOLI MEMBERSHIP SERVICE RECOMMENDATIONS SERVICE ZUUL (EDGE SERVER) EUREKA CLIENT RIBBON + HYSTRIX EUREKA CLIENT RIBBON + HYSTRIX MEMBERSHIP SERVICE EUREKA CLIENT EUREKA SERVER (DISCOVERY) HYSTRIX DASHBOARD (MONITOR) TURBINE (AGGREGATION) EUREKA SERVER (DISCOVERY) ARCHAIUS (CONFIG) ATLAS (METRICS) Main Netflix Components SPECTATOR
  • 63. MILAN 18/19.11.2015 - GIULIO SANTOLI Netflix Architecture by Adrian Cockcroft Simplified Architecture Actual Architecture https://github.com/adrianco/spigo
  • 64. MILAN 18/19.11.2015 - GIULIO SANTOLI Configuraiton Discovery Routing Observability Archaius Eureka Zuul, Ribbon Hystrix Decider Finagle, Zookeper Finagle, Netty Zipkin Decider Finagle, Zookeper Finagle, Akka Zipkin Netflix Twitter Gilt http://www.slideshare.net/adriancockcroft/monitorama-please-no-more Technology Comparison
  • 65. MILAN 18/19.11.2015 - GIULIO SANTOLI Finagle @Twitter Finagle is an extensible RPC system for the JVM, used to construct high-concurrency servers. Finagle implements uniform client and server APIs for several protocols, and is designed for high performance and concurrency. Finagle is written in Scala, but provides both Scala and Java idiomatic APIs. https://blog.twitter.com/2011/finagle-a-protocol-agnostic-rpc-system
  • 66. MILAN 18/19.11.2015 - GIULIO SANTOLI Zipkin @Twitter https://twitter.github.io/zipkin/Architecture.html https://github.com/openzipkin/zipkin Zipkin is a distributed tracing system. It helps gather timing data needed to troubleshoot latency problems in microservice architectures.
  • 67. MILAN 18/19.11.2015 - GIULIO SANTOLI Distributed Tracing with Zipkin
  • 68. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balacing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 69. MILAN 18/19.11.2015 - GIULIO SANTOLI “Docker is an open platform for developers and system admins to build, ship, and run distributed applications.” Introducing Docker
  • 70. MILAN 18/19.11.2015 - GIULIO SANTOLI “Docker runs as an isolated process in userspace on the host operating system, sharing the kernel with other containers. Thus, it enjoys the resource isolation and allocation benefits of VMs but is much more portable and efficient. ” container isolation content processes user network id cgroups "make me a isolated context" "put this in it" "then run this" = + + How does it work?
  • 71. MILAN 18/19.11.2015 - GIULIO SANTOLI Filesystem Base OS / Kernel Fedora Ubuntu tomcat tomcatliberty CNTR1 CNTR2 CNTR3 CNTR4 app1 app2 app4app3 Layer Layer Layer Layers allow for reuse, more containers per host and faster start/re-start time. Read-only layers allow portability and efficiency. New files and edits are visible to current and above layers. Docker uses a copy-on-write (union) filesystem. Docker is so lightweight because of the reusable layers in Docker images. How is this different from Virtual Machines?
  • 72. MILAN 18/19.11.2015 - GIULIO SANTOLI Docker Machine enables any host, whether a laptop, server, VM or remote cloud instance, to run Docker apps. Docker Compose is a tool for defining and running multi-container applications with by using a single declarative file (i.e. docker-compose.yml). At the core of the Docker platform is Docker Engine, a lightweight runtime that builds and runs your containers.
  • 73. MILAN 18/19.11.2015 - GIULIO SANTOLI Managing Docker Clusters A = Node Clusters B = Nodes C = Containers D = Links E = Volumes F = Services Tutum is designed to ease the management of using Docker. Tutum offers a single platform to help with automating deployment, scaling, linking containers that run on different cloud providers, achieving redundancy and monitoring the deployment.
  • 74. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 7
  • 75. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 8
  • 76. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balacing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 77. MILAN 18/19.11.2015 - GIULIO SANTOLI “If you can’t measure it, you can’t improve it.” Lord Kelvin
  • 78. MILAN 18/19.11.2015 - GIULIO SANTOLI Centralized logging with the ELK Stack Elasticsearch is a distributed, open source search and analytics engine. Logstash is a flexible, open source data collection, enrichment, and transportation pipeline. Kibana is an open source data visualization platform to interact with your data.
  • 79. MILAN 18/19.11.2015 - GIULIO SANTOLI SOME MORE EXAMPLES
  • 80. MILAN 18/19.11.2015 - GIULIO SANTOLI A Picture is Worth a Thousand Words Good visualization helps to communicate and deliver insights effectively. http://techblog.netflix.com/2014/01/improving-netflixs-operational.html
  • 81. MILAN 18/19.11.2015 - GIULIO SANTOLI Predictive Auto-Scaling at Netflix http://techblog.netflix.com/2013/11/scryer-netflixs-predictive-auto-scaling.html
  • 82. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 9
  • 83. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balacing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 84. MILAN 18/19.11.2015 - GIULIO SANTOLI Cloud Foundry is an open source project platform-as- a-service, making it faster and easier to build, test, deploy, and scale applications Introducing Cloud Foundry
  • 85. MILAN 18/19.11.2015 - GIULIO SANTOLI IaaS Cloud Foundry BOSH Cloud Foundry Agent Agent Droplet Execution Agent (DEA) Container Runtime Application Container Runtime Application Cloud Foundry Underlayng Infrastructure Apps
  • 86. MILAN 18/19.11.2015 - GIULIO SANTOLI Cloud Foundry distributes the containers among the DEA cells cell1 cell2 cell3 cell4 When a container crashes, it’s automatically restarted When a cell crashes, it’s workload is distributed among the other cells cell1 cell2 cell3 cell4 cell1 cell2 cell3 cell4 Container orchestration in Cloud Foundry time
  • 87. MILAN 18/19.11.2015 - GIULIO SANTOLI Lattice: a minimal Cloud Foundry
  • 88. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 10
  • 89. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balacing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 90. MILAN 18/19.11.2015 - GIULIO SANTOLI “In software, when something is painful, the way to reduce the pain is to do it more frequently, not less.” David Farley
  • 91. MILAN 18/19.11.2015 - GIULIO SANTOLI Continuous Delivery vs Continuous Deployment http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment
  • 92. MILAN 18/19.11.2015 - GIULIO SANTOLI Deployment Techniques minimize downtime minimize risks increase feedback http://techblog.netflix.com/2013/08/deploying-netflix-api.html
  • 93. MILAN 18/19.11.2015 - GIULIO SANTOLI APP v1 Blue-Green Deployment APP v2 Router http://martinfowler.com/bliki/BlueGreenDeployment.html APP v1 APP v2 Router
  • 94. MILAN 18/19.11.2015 - GIULIO SANTOLI APP v1 Red-Black Deployment & Canary Deployment APP v2 Router http://techblog.netflix.com/2013/08/deploying-netflix-api.html http://martinfowler.com/bliki/CanaryRelease.html APP v1 APP v2 Router APP v1 APP v2 Router
  • 95. MILAN 18/19.11.2015 - GIULIO SANTOLI LAB: Scenario 11
  • 96. MILAN 18/19.11.2015 - GIULIO SANTOLI “Until code is in production, no value is actually being generated” Gene Kim
  • 97. MILAN 18/19.11.2015 - GIULIO SANTOLI Ops from to NoOpsDevOps Operations DevOps http://blogs.forrester.com/mike_gualtieri/11-02-07-i_dont_want_devops_i_want_noops
  • 98. MILAN 18/19.11.2015 - GIULIO SANTOLI “You Build It, You Run It” Werner Vogels (Amazon)
  • 99. MILAN 18/19.11.2015 - GIULIO SANTOLI Continous Delivery at Neflix http://techblog.netflix.com/2013/08/deploying-netflix-api.html
  • 100. MILAN 18/19.11.2015 - GIULIO SANTOLI “Run longevity tests. It’s the only way to catch longevity bugs.” Michael T. Nygard
  • 101. MILAN 18/19.11.2015 - GIULIO SANTOLI Failures happen, and they inevitably happen when least desired. Simian Army consists of services (Monkeys) in the cloud for generating various kinds of failures, detecting abnormal conditions, and testing our ability to survive them. The goal is to keep our cloud safe, secure, and highly available http://techblog.netflix.com/2011/07/netflix-simian-army.html
  • 102. MILAN 18/19.11.2015 - GIULIO SANTOLI 1. Here comes the Unicorns 2. Monolith v.s. Microservices 3. Services for the Microservices: a. Service Discovery b. Load Balacing c. Fault Tolerance d. Edge Server and Data Aggregation 4. The Death Star strikes back 5. Dockerize it 6. Centralized Logging and Monitoring 7. Running on Cloud Foundry 8. Continous Delivery, DevOps and NoOps 9. What’s next? Agenda
  • 103. MILAN 18/19.11.2015 - GIULIO SANTOLI What’s ?
  • 104. MILAN 18/19.11.2015 - GIULIO SANTOLI https://blog.codecentric.de/en/2014/10/log-management-spring-boot-applications-logstash-elastichsearch-kibana Log Management for Spring Boot Applications with Logstash, Elasticsearch and Kibana http://callistaenterprise.se/blogg/teknik/2015/05/20/blog-series-building-microservices Blog Series - Building Microservices https://spring.io/blog/2015/01/20/microservice-registration-and-discovery-with-spring-cloud-and-netflix-s-eureka Microservice Registration and Discovery with Spring Cloud and Netflix's Eureka http://ryanjbaxter.com/2015/07/15/using-microservices-to-build-cloud-native-applications-part-1 Using Microservices To Build Cloud Native Applications Very good tutorials
  • 105. MILAN 18/19.11.2015 - GIULIO SANTOLI https://www.youtube.com/watch?v=6wvVANQ6EJ8 Videos Spring Cloud at Netflix: Jon Schneider and Taylor Wicksell (Netflix) https://www.youtube.com/watch?v=2YqiSPjIBqQ Monitoring and Simulating Microservices: Adrian Cockcroft (Battery Ventures)
  • 106. MILAN 18/19.11.2015 - GIULIO SANTOLI More Books
  • 107. MILAN 18/19.11.2015 - GIULIO SANTOLI “Beware the distributed monolith.” James Lewis (ThoughWorks)