SlideShare uma empresa Scribd logo
1 de 83
INTRODUCTION TO MICROSERVICES
Architecture principles, how to, patterns, examples
October 2015, @SteveSfartz
AGENDA
• Why Microservices ?
• Designing Microservices
• Microservices Patterns
• Netflix stack
• Comparing SOA styles
• Sump up
MICROSERVICES ARCHITECTURE
Why, Monolithic style, Scaling the Monolith
Microservices (2014)
In short, the microservice architectural style is an
approach to developing a single application as a
suite of small services, each running in its own
process and communicating with lightweight
mechanisms, often an HTTP resource API.
These services are built around business capabilities
and independently deployable by fully automated
deployment machinery.
There is a bare minimum of centralized management of
these services, which may be written in different
programming languages and use different data
storage technologies.
Martin Fowler, James Lewis
THE MONOLITHIC STYLE
• An application built as a single unit, 3 main parts
– a client-side user interface ,
– a database
– and a server-side application that handles HTTP requests,
execute domain logic, retrieve and update data from the
database, and select and populate HTML views to be sent
to the browser.
• This server-side application is a monolith
– a single logical executable
– any change requires building and deploying a new version
THE MONOLITHIC STYLE
• Natural way to build a system
– code specific to each layer (UI, Logic, DB)
– generally a minimum of 3 languages
– divided into classes, functions and namespaces
• Locally built and tested on devs’ machines
• CI/CD pipeline to secure production
SCALING THE MONOLITH
• Several Monolith instances behind a load balancer
+ Quickest path to scale
+ High availability
- Routing traffic complexity
- Very large code base
- Change cycles tied together
- Limited scalability
 lack of modularity
Load Balancer
Monolith
Client
Client
Client
MAKING THE MONOLITH MORE MODULAR
• Specialized instances of a single codebase
– Modular invocation
Load Balancer Real time
business logic
Client
Client
Client
Monolith
MonolithAuthentication
Monolith
Batches
Load Balancer
- Renovation as an alternative to a rewrite,
- Generally does the trick,
- Bonus: engage an agile « API »-fication
MONOLITHIC VS MICROSERVICES
http://martinfowler.com/articles/microservices.html
GILT TESTIMONIAL
http://www.infoq.com/news/2015/04/scaling-microservices-gilt
GILT TESTIMONIAL
http://www.infoq.com/news/2015/04/scaling-microservices-gilt
DESIGNING FOR MICROSERVICES
Common Characteristics
COMMON CHARACTERISTICS
• Componentization via Services
• Organized around Business Capabilities
• Products not Projects
• Smart endpoints and dumb pipes
• Decentralized governance
• Decentralized data management
• Infrastructure automation
• Design for failure
• Evolutionary design
http://martinfowler.com/articles/microservices.html
COMPONENTIZATION VIA SERVICES
• Services as components rather than libraries
• Services avoid tight coupling by using explicit
remote call mechanisms.
• Services are independently deployable and
scalable
COMPONENTIZATION VIA SERVICES
• Each service also provides a firm module
boundary
– business or technical,
– even allowing for different services to be written in
different programming languages,
– they can also be managed by different teams .
• A Microservice may consist of multiple processes
– that will always be developed and deployed together,
– Ex : an application process and a database that's only
used by that service.
ORGANIZED AROUND BUSINESS CAPABILITIES
Any organization that
designs a system will
produce a design
whose structure is a
copy of the
organization's
communication
structure.
Melvyn Conway, 1967.
ORGANIZED AROUND BUSINESS CAPABILITIES
• Microservices to solve Conway’s anti-pattern
Cross-functional teams…. … organized around capabilities
PRODUCTS NOT PROJECTS
• Standard project model:
– deliver pieces of software which are then
considered to be completed,
– hand over to a maintenance organization and
disband the project team
• The Microservices style
– a team should own a product over its full lifetime
– Amazon : You build => You run it
SMART ENDPOINTS AND DUMB PIPES
• Be as decoupled and as cohesive as possible
– own domain logic,
– act more as filters in the classical Unix sense
– using simple RESTish protocols and lightweight messaging
• Smarts live in the services, not in-between the
endpoints
– No central tool / bus that includes sophisticated routing,
transformations, process, business rules
• Pre-requisite : turn the chatty in-process
communication of the monolith into coarser-grained
network messaging
DECENTRALIZED GOVERNANCE
• The common microservices practice is to choose the
best tool for each job
– Tools are shared inside and outside the organization
– Focus on common problems : data storage, IPC,
infrastructure automation
– Example : Netflix opensource libraries
• Favor independent evolution
– Consumer-driven Service contracts,
– Tolerant Reader Pattern
Minimal over-heads create an opportunity to have
teams responsible for all aspects
- Build their microservices and operate with 24/7 SLAs
DECENTRALIZED DATA MANAGEMENT
• No unique data model approach
– the conceptual model differs between microservices
– Reinforce the separation of concerns
• Decentralized data storage
– Polyglot persistence is frequent in microservices architectures
• Manage inconsistencies via the business practices in
place throughout the organization
– Common design : reversal processes versus 2PC distributed
transactions
DECENTRALIZED DATA MANAGEMENT
INFRASTRUCTURE AUTOMATION
• CI/CD, Real-time monitoring, global system
and fine grained resources dashboards,
• Has become a standard practice
– thanks to public cloud providers,
– but also opensource tools
• a QA stake for monoliths
• a pre-requisite for microservices
DESIGN FOR FAILURE
• Any service call can fail
– Circuit Breaker pattern,
– async consumption
• Best practice : 1 to ZERO sync call
– Ex : Netflix Stack
• Hystrix / Eureka / Ribbon
– /! provide interop & implementations for various langages
• Infrastructure pre-requisites
– monitor and restore at scale
– dedicated tooling for simulation
– Ex : Netflix Simian Army (Chaos Monkey)
EVOLUTIONARY DESIGN
• More granular release planning
• Goal : change tolerance
– Identify change impacts quickly (via automation,
service contracts, automated dependency maps)
– Fix rather than revert
– In case of mandatory breaking change, use
versioning
• a last resort option in the microservices world
REAL WORLD MICROSERVICES
A bit of history, Best practices, Netflix Stack
GOOGLE TRENDS – OCTOBER 2015
STATE OF THE ART
• Pioneers : Amazon, Netflix, Google
– Started Opensourcing their building blocks in 2010
– Democratized the Microservices architecture style
• Today
– Large corporation for complex systems that need
to evolve frequently (understand continuously)
– Digital startups to ensure their core business will
scale and embrace the long tail
AMAZON DNA
• Microservices by design
Jeff Bezos, 2002
NETFLIX ECOSYSTEM
• 100s of microservices
• 1,000s of daily production changes
• 10,000s of instances
• 100,000s of customer interactions per minute
• 1,000,000s of customers
• 1,000,000,000s of metrics
• 10,000,000,000 hours of streamed
• 10s of operations engineers
RESILIENCE IN DISTRIBUTED SYSTEMS
• Failures are common
• An application that depends on 30 services
– where each service has 99.99% uptime
– 99.9930 = 99.7% uptime
– 0.3% of 1 billion requests = 3,000,000 failures
– 2+ hours downtime/month even if all
dependencies have excellent uptime.
• Reality is generally worse.
WHEN 1 BACKEND BECOMES LATENT
AT 50+ REQ/S, ALL REQUEST THREADS CAN
BLOCK IN SECONDS
NETFLIX HYSTRIX
• Latency and Fault Tolerance library
– designed to isolate points of access to remote
systems, services and 3rd party libraries,
– stop cascading failure and enable resilience where
failure is inevitable.
– real time monitoring via Dashboard
FAIL FAST, FAIL SILENT, FALLBACK
• Wrapping all calls to external systems (or “dependencies”) which
typically executes within a separate thread
• Timing-out calls that take longer than thresholds you define.
• Maintaining a small thread-pool for each dependency;
– if it becomes full, requests immediately rejected instead of queued up.
• Measuring successes, failures (exceptions thrown by client),
timeouts, and thread rejections.
• Tripping a circuit-breaker to stop all requests to a particular
service for a period of time,
– either manually or automatically (error percentage threshold)
• Performing fallback logic when a request fails, is rejected, times-
out, or short-circuits.
• Monitoring metrics and configuration changes in near real-time.
HYSTRIX DASHBOARD
HYSTRIX DASHBOARD
• Circuit Breaker : Open
HYSTRIX DASHBOARD
SERVICES DISCOVERY
• Typically, a Microservice gets created and
destroyed often
• It is reconfigured on the fly
• In near real-time, others should find it
• Examples
– Apache ZooKeeper
– HashiCorp Consul
– CoreOS Etcd
– Netflix Eureka
SERVICES CONSUMPTION
• Choose the best messaging infrastructure
– RPC / REST style,
– Request/Response, Streaming
– HTTP, HTTP2, TCP, UDP
• Support async consumption / aggregation
– Use parallel code structures of your clients
– GO, ES7 (BabelJS, Google Traceur)
• Ease consumption via clients SDKs
– Automated generated from API definitions
– Service providers tend to opensource their SDKs
• Facebook Parse, IBM Bluemix Mobile services
SERVICES CONSUMPTION
• Favor SDKs with large feature sets
– Basic REST is not an option for microservices
– integrate load balancing, fault tolerance, caching,
service discovery, multiple transport protocols (HTTP,
TCP, UDP)
• Netflix Ribbon
– Inter Process Communication with built in software
load balancers
– Integrates Hystrix and Eureka
– The primary usage model involves REST calls with
various serialization scheme support.
MICROSERVICES GATEWAY
• As an Edge service to access back-end microservices
– Authentication and Security
– Dynamic routing,
– Insights and Monitoring
– Stress testing : gradually increasing the traffic to a cluster in
order to gauge performance.
– Load Shedding : allocating capacity for each type of request
and dropping requests that go over the limit.
– Static Response handling : building some responses directly
at the edge instead of forwarding them to an internal cluster
– Multiregion Resiliency : routing requests across AWS regions
in order to diversify the ELB usage and move the edge closer
to users
MICROSERVICES GATEWAY
• Lots of building blocks
– Nginx
– Mashape Kong
• Needs integration with the other building
blocks of the Microservices communication
infrastructure
– Example : Netflix Zuul
MASHAPE KONG
COMMITTED TEAMS
• Ownership core to team organization
– built into the management of the organization
– make sure that teams have sufficient time to truly
own the applications that they are in charge
• “Products versus Projects” principle
• “Functional versus Divisional” organizations
– And give them 360 view on operations
SOUNDCLOUD TESTIMONIAL
SOUNDCLOUD TESTIMONIAL
• Actual workflow to go live
– 2 months, 11 steps
– Main elephant is all the dance between front-end and
back-end development
– 11 days are doing actual development work
SOUNDCLOUD TESTIMONIAL
• Decision : pairing back-end and front-end devs
– pair fully dedicated to a feature until its completion
– Individually, each person ended up spending more time doing
work per feature
SOUNDCLOUD TESTIMONIAL
• Designer,
product
manager, and
front-end
developer
working close to
each other
SOUNDCLOUD TESTIMONIAL
• The irreducible complexity of the monolith
– Why do we need Pull Requests?
– Why do people make mistakes so often?
– Why is the code base so complex?
– Why do we need a single code base to implement
the many components?
– Why can’t we have economies of scale for
multiple, smaller, systems?
SOUNDCLOUD TESTIMONIAL
• Isolated new features in
dedicated microservices,
isolated from the monolith
• New organization with team
of 3 to 4 people
• Each team is responsible for
decided whether parts of
the Monolith are extracted
and rewritten , or kept
COMMITTED TEAMS
• Ownership core to team organization
– built into the management of the organization
– make sure that teams have sufficient time to truly
own the applications that they are in charge
• “Products versus Projects” principle
• “Functional versus Divisional” organizations
– And give them 360 view on operations
THE NETFLIX MICROSERVICES JOURNEY
• Migration to AWS
AWS re-invent 2015
NETFLIX STACK
• Solid communications
– Hystrix : latency and fault tolerance library
– Eureka : registry for resilient mid-tier load balancing and
failover
– Ribbon : client based smart load balancer
– Servo : monitoring library
– EVCache : distributed in-memory data store for AWS EC2
– RxNetty : reactive extension adaptor for netty
– Karyon : blueprint of a cloud ready microservice
– Zuul : edge gateway
– Falcor : js library for efficient data fetching
NETFLIX STACK
• Automation
– Asgard : specialized AWS console (app deployments,
management)
– Spinnaker : microservices console (clusters, pipelines), not
opensourced yet
– Atlas : near real-time operational insights
– Vector : exposes hand picked high resolution metrics from
PCP – Performance Co-Pilot hosts
– SimianArmy : services (Monkeys) in the cloud for
generating various kinds of failures, detecting abnormal
conditions, and testing our ability to survive them
– Dependencies automatically documented from from real
traffic analysis
• Mid-tier load balancing
– a REST (Representational State Transfer) based service that is
primarily used in the AWS cloud for locating services
– for the purpose of load balancing and failover of middle-tier
servers,
– the load balancing happens at the instance/server/host level
• Comes with a Java-based client
– The client also has a built-in load balancer
– The client instances know all the information about which
servers they need to talk to.
– Does basic round-robin load balancing.
• At Netflix, a much more sophisticated load balancer wraps Eureka to
provide weighted load balancing based on several factors like traffic,
resource usage, error conditions to provide superior resiliency.
NETFLIX FALCOR
• Working with JSON Virtual Resources
http://netflix.github.io/falcor/starter/what-is-falcor.html
SPINNAKER - MICROSERVICES CONSOLE
SPINNAKER - MICROSERVICES CONSOLE
DEPENDENCY GRAPH BASED
ON REAL TRAFFIC
VECTOR
FAQ
How big should be my microservices ?
RESTish microservices ?
Isn’t it SOA ?
The end of the monoliths ?
HOW BIG ?
• Microservices ownership implies that each team is
responsible for the entire lifecycle
– functional vs divisional organizations
– product management, development, QA, documentation,
support
• Sizing depends on the system you’re building
– Amazon 2PT principle - Two Pizza Teams
– 6 to 10 people to build/deploy/maintain a microservice
– an average microservice at Gilt consists of 2000 lines of
code, 5 source files, and is run on 3 instances in production
RESTISH MICROSERVICES ?
• REST
– Web lingua franca, 100% interoperable
– development cost is generally higher
– best practices : provide client sdks, (ex : generated from
Swagger/RAML or other API description languages)
– performance issues if not well-designed (chattiness)
– best practices : experience based and coarser grained APIs
• RPC
– optimized communication via binary formats
– automated generation from IDL, polyglot by default
– integrated support multiples scenarios : request/response,
streaming, bi-directional streaming
HOW RESTISH MICROSERVICES ?
• RPC vs REST style depends on the system you’re
building and teams existing skills set
• Whatever the style, your microservices architecture
MUST provide
– Services Discovery,
– Reliable Communications,
– Operational insights (logs, monitoring, alerts, real time
analysis)
GOT IT, BUT ISN’T IT SOA ?
• SOA so what ?
– Enterprise SOA
– Event-driven architecture (Pub/Sub)
– Streaming Services (real-time time series,
bidirectional)
– Container-Services (ala Docker)
– Nanoservices (ala AWS Lambda)
• Simply stated : Microservices are a SOA style for
systems whose first goal is to scale
 in details, let’s see how microservices differ from…
MICROSERVICES VS ENTERPRISE SOA
• Enterprise SOA is often seen as
– multi-year initiatives, costs millions
– complex protocols with productivity and interoperability
challenges
– central governance model that inhibits change
• Enterprise SOA is more about integrating siloed
monoliths
– generally via a smart and centralized service bus
• Microservices is scalable SOA
– an architectural style to design, develop and deploy a large
and complex system, so that it is easier to scale and evolve
√ Componentization via Services
√ Organized around Business Capabilities
Products not Projects
Smart endpoints and dumb pipes
Decentralized governance
Decentralized data management
Infrastructure automation
v Design for failure
√ Evolutionary design
VS ENTERPRISE SOA
VS EVENT DRIVEN ARCHITECTURE
• EDA fits well with Document oriented systems
and information flows
• Communication between microservices can be a mix
of RPC (ie, P2P calls) and EDA calls
• See EDA as a communication pattern for your
microservices
• Can address choreography, orchestration, pipeline
requirements
VS STREAMING SERVICES
• Streaming services fit well
– if you have large volumes (log entries, IoT),
– and/or if you aim at real time analysis
• Data ingestion endpoint of a microService
– Real time
analysis of a
mobile app
usage
aws:reinvent 2015 - Zillow
VS CONTAINER SERVICES
• Containers provide the infrastructure to
deploy your microservices independently one
from another
• See Container Services as a building block of
your global microservices architecture
VS NANOSERVICES
• Nanoservices are small pieces of code
(functions)
– Example : AWS Lambda, Auth0 Webtasks
• A microservice may leverage 1+ nanoservices
SUMP UP
MICROSERVICES PATTERNS
• Solid communications
– Fault tolerant librairies
– Service discovey
• Committed teams
– Devops culture
– Code/Test/Deploy/Support, 24/7
– Automation
• Ownership
– Organisation aligned with the strategy
– Insights via real time monitoring
MICROSERVICES IS A LONG JOURNEY
• Several years to implement
- Communications, infrastructure, automation, monitoring,
teams organization
- The price to pay for extreme agility in a complex system at
scale
- Prepare for iterative reworks
– Multiples languages => maintainability
– Numerous building blocks => updates & security
– EOL of microservices stacks : manage your technical debt
– Dependency Hell : keep control of your microservices
segmentation
– Ownership : is your organization ready ?
THE END OF MONOLITHS ?
http://www.stavros.io/posts/microservices-cargo-cult/
FROM MONOLITHS TO MICROSERVICES
• Velocity of innovation for complex systems
– Keep your monolith as is if you don’t need to
speed up features delivery
• To prepare for the journey
• switch from layered architecture to internal APIs,
• automate integration and deployment,
• reorganize from divisional to functional teams
committed to business and owning their code
REFERENCES
Microservices, Martin Fowler, James Lewis
– http://martinfowler.com/articles/microservices.html
A day in the life of a Netflix Engineer using 37% of the internet
– http://fr.slideshare.net/AmazonWebServices/dvo203-the-life-of-a-
netflix-engineer-using-37-of-the-internet
Dzone – Geting started with Microservices
– https://dzone.com/refcardz/getting-started-with-microservices
SoundCloud – How we ended up with microservices
– http://philcalcado.com/2015/09/08/how_we_ended_up_with_micros
ervices.html
gRPC - boilerplate to high-performance scalable APIs
– http://fr.slideshare.net/AboutYouGmbH/robert-kubis-grpc-boilerplate-
to-highperformance-scalable-apis-codetalks-2015
TO GO FURTHER
THANK YOU
Stève SFARTZ
• technical program manager
• enterprise architect, web API specialist,
• scalable & interoperable platforms builder
• dev & ops teams lead
Keeping in touch
• steve@sfartz.com
• twitter : @SteveSfartz

Mais conteúdo relacionado

Mais procurados

An Overview of Designing Microservices Based Applications on AWS - March 2017...
An Overview of Designing Microservices Based Applications on AWS - March 2017...An Overview of Designing Microservices Based Applications on AWS - March 2017...
An Overview of Designing Microservices Based Applications on AWS - March 2017...Amazon Web Services
 
Microservices
MicroservicesMicroservices
MicroservicesSmartBear
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil Allewar
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureNguyen Tung
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principlesSanjoy Kumar Roy
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in PracticeKasun Indrasiri
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecturetyrantbrian
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services ArchitectureAraf Karsh Hamid
 
Microservices architecture overview v3
Microservices architecture overview v3Microservices architecture overview v3
Microservices architecture overview v3Dmitry Skaredov
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure FunctionsCallon Campbell
 
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Solace
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Edureka!
 
Microservices Architectures on Amazon Web Services
Microservices Architectures on Amazon Web ServicesMicroservices Architectures on Amazon Web Services
Microservices Architectures on Amazon Web ServicesAmazon Web Services
 
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and HailoMicroservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailogjuljo
 

Mais procurados (20)

An Overview of Designing Microservices Based Applications on AWS - March 2017...
An Overview of Designing Microservices Based Applications on AWS - March 2017...An Overview of Designing Microservices Based Applications on AWS - March 2017...
An Overview of Designing Microservices Based Applications on AWS - March 2017...
 
Microservices
MicroservicesMicroservices
Microservices
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Monolithic architecture
Monolithic architectureMonolithic architecture
Monolithic architecture
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Microservices: an introduction
Microservices: an introductionMicroservices: an introduction
Microservices: an introduction
 
Microservices architecture overview v3
Microservices architecture overview v3Microservices architecture overview v3
Microservices architecture overview v3
 
Introduction to Azure Functions
Introduction to Azure FunctionsIntroduction to Azure Functions
Introduction to Azure Functions
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
 
Microservices Architectures on Amazon Web Services
Microservices Architectures on Amazon Web ServicesMicroservices Architectures on Amazon Web Services
Microservices Architectures on Amazon Web Services
 
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and HailoMicroservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
 

Destaque

Apache Drill: An Active, Ad-hoc Query System for large-scale Data Sets
Apache Drill: An Active, Ad-hoc Query System for large-scale Data SetsApache Drill: An Active, Ad-hoc Query System for large-scale Data Sets
Apache Drill: An Active, Ad-hoc Query System for large-scale Data SetsMapR Technologies
 
Gilt from monolith ruby app to microservice scala service architecture
Gilt from monolith ruby app to microservice scala service architectureGilt from monolith ruby app to microservice scala service architecture
Gilt from monolith ruby app to microservice scala service architectureJonathan (Yoni) Goldberg
 
Think Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To MicroservicesThink Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To MicroservicesRyan Baxter
 
Grails Monolith to Microservice to FaaS
Grails Monolith to Microservice to FaaSGrails Monolith to Microservice to FaaS
Grails Monolith to Microservice to FaaSMike Wyszinski
 
Taming the Monolith - Microservices Meetup Hamburg
Taming the Monolith - Microservices Meetup HamburgTaming the Monolith - Microservices Meetup Hamburg
Taming the Monolith - Microservices Meetup HamburgDennis Traub
 
DevOps You Build It, You Own It!
DevOpsYou Build It, You Own It!DevOpsYou Build It, You Own It!
DevOps You Build It, You Own It!Amazon Web Services
 
building microservices
building microservicesbuilding microservices
building microservicesCisco DevNet
 
The Future of System Administration
The Future of System AdministrationThe Future of System Administration
The Future of System AdministrationKris Buytaert
 
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015Teo Ruiz
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureRich Lee
 
Monolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly OsconMonolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly OsconChristopher Grant
 
Evolving toward Microservices - O’Reilly SACON Keynote
Evolving toward Microservices  - O’Reilly SACON KeynoteEvolving toward Microservices  - O’Reilly SACON Keynote
Evolving toward Microservices - O’Reilly SACON KeynoteChristopher Grant
 
The System Administrator Role in the Cloud Era: Better Than Ever (ENT212) | A...
The System Administrator Role in the Cloud Era: Better Than Ever (ENT212) | A...The System Administrator Role in the Cloud Era: Better Than Ever (ENT212) | A...
The System Administrator Role in the Cloud Era: Better Than Ever (ENT212) | A...Amazon Web Services
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesAngelos Kapsimanis
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015Randy Shoup
 
Near-realtime analytics with Kafka and HBase
Near-realtime analytics with Kafka and HBaseNear-realtime analytics with Kafka and HBase
Near-realtime analytics with Kafka and HBasedave_revell
 
Pragmatic Microservices
Pragmatic MicroservicesPragmatic Microservices
Pragmatic MicroservicesRandy Shoup
 

Destaque (20)

Server Side? Swift
Server Side? SwiftServer Side? Swift
Server Side? Swift
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side Swift
 
Apache Drill: An Active, Ad-hoc Query System for large-scale Data Sets
Apache Drill: An Active, Ad-hoc Query System for large-scale Data SetsApache Drill: An Active, Ad-hoc Query System for large-scale Data Sets
Apache Drill: An Active, Ad-hoc Query System for large-scale Data Sets
 
Gilt from monolith ruby app to microservice scala service architecture
Gilt from monolith ruby app to microservice scala service architectureGilt from monolith ruby app to microservice scala service architecture
Gilt from monolith ruby app to microservice scala service architecture
 
Final_Presentation
Final_PresentationFinal_Presentation
Final_Presentation
 
Think Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To MicroservicesThink Small To Go Big - Introduction To Microservices
Think Small To Go Big - Introduction To Microservices
 
Grails Monolith to Microservice to FaaS
Grails Monolith to Microservice to FaaSGrails Monolith to Microservice to FaaS
Grails Monolith to Microservice to FaaS
 
Taming the Monolith - Microservices Meetup Hamburg
Taming the Monolith - Microservices Meetup HamburgTaming the Monolith - Microservices Meetup Hamburg
Taming the Monolith - Microservices Meetup Hamburg
 
DevOps You Build It, You Own It!
DevOpsYou Build It, You Own It!DevOpsYou Build It, You Own It!
DevOps You Build It, You Own It!
 
building microservices
building microservicesbuilding microservices
building microservices
 
The Future of System Administration
The Future of System AdministrationThe Future of System Administration
The Future of System Administration
 
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
Breaking the monolith at jobandtalent - AWS Summit Barcelona 2015
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Monolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly OsconMonolith to Microservices - O’Reilly Oscon
Monolith to Microservices - O’Reilly Oscon
 
Evolving toward Microservices - O’Reilly SACON Keynote
Evolving toward Microservices  - O’Reilly SACON KeynoteEvolving toward Microservices  - O’Reilly SACON Keynote
Evolving toward Microservices - O’Reilly SACON Keynote
 
The System Administrator Role in the Cloud Era: Better Than Ever (ENT212) | A...
The System Administrator Role in the Cloud Era: Better Than Ever (ENT212) | A...The System Administrator Role in the Cloud Era: Better Than Ever (ENT212) | A...
The System Administrator Role in the Cloud Era: Better Than Ever (ENT212) | A...
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based Architectures
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015
 
Near-realtime analytics with Kafka and HBase
Near-realtime analytics with Kafka and HBaseNear-realtime analytics with Kafka and HBase
Near-realtime analytics with Kafka and HBase
 
Pragmatic Microservices
Pragmatic MicroservicesPragmatic Microservices
Pragmatic Microservices
 

Semelhante a An introduction to Microservices

Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Rodrigo Antonialli
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
API’s and Micro Services 0.5
API’s and Micro Services 0.5API’s and Micro Services 0.5
API’s and Micro Services 0.5Richard Hudson
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1Amin Arab
 
Fun Times With Microservices
Fun Times With MicroservicesFun Times With Microservices
Fun Times With MicroservicesChristo Crampton
 
Fun Times with Microservices
Fun Times with MicroservicesFun Times with Microservices
Fun Times with MicroservicesChristo Crampton
 
Closer Look at Cloud Centric Architectures
Closer Look at Cloud Centric ArchitecturesCloser Look at Cloud Centric Architectures
Closer Look at Cloud Centric ArchitecturesTodd Kaplinger
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesJim (张建军) Zhang
 
The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015Eduserv
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-ServicesRandy Shoup
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices ArchitectureParia Heidari
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa introSonic leigh
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesHector Tapia
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsAraf Karsh Hamid
 
MicroServices architecture @ Ctrip v1.1
MicroServices architecture @ Ctrip v1.1MicroServices architecture @ Ctrip v1.1
MicroServices architecture @ Ctrip v1.1William Yang
 
PyCONKE meetup 2019: Microservices
PyCONKE meetup 2019: MicroservicesPyCONKE meetup 2019: Microservices
PyCONKE meetup 2019: MicroservicesSamuel Olembo
 
Use Microservices & APIS to divide & conquer your Legacy Systems
Use Microservices & APIS to divide & conquer your Legacy SystemsUse Microservices & APIS to divide & conquer your Legacy Systems
Use Microservices & APIS to divide & conquer your Legacy SystemsPaymentComponents
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices PatternsCisco DevNet
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0Vinod Wilson
 

Semelhante a An introduction to Microservices (20)

Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020Introduction to Microservices Architecture - SECCOMP 2020
Introduction to Microservices Architecture - SECCOMP 2020
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
API’s and Micro Services 0.5
API’s and Micro Services 0.5API’s and Micro Services 0.5
API’s and Micro Services 0.5
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
 
Fun Times With Microservices
Fun Times With MicroservicesFun Times With Microservices
Fun Times With Microservices
 
Fun Times with Microservices
Fun Times with MicroservicesFun Times with Microservices
Fun Times with Microservices
 
Closer Look at Cloud Centric Architectures
Closer Look at Cloud Centric ArchitecturesCloser Look at Cloud Centric Architectures
Closer Look at Cloud Centric Architectures
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
 
The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015The move-to-hybrid-cloud-itsmf-april2015
The move-to-hybrid-cloud-itsmf-april2015
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
 
170215 msa intro
170215 msa intro170215 msa intro
170215 msa intro
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServices
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
MicroServices architecture @ Ctrip v1.1
MicroServices architecture @ Ctrip v1.1MicroServices architecture @ Ctrip v1.1
MicroServices architecture @ Ctrip v1.1
 
PyCONKE meetup 2019: Microservices
PyCONKE meetup 2019: MicroservicesPyCONKE meetup 2019: Microservices
PyCONKE meetup 2019: Microservices
 
Use Microservices & APIS to divide & conquer your Legacy Systems
Use Microservices & APIS to divide & conquer your Legacy SystemsUse Microservices & APIS to divide & conquer your Legacy Systems
Use Microservices & APIS to divide & conquer your Legacy Systems
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
DEVNET-1184 Microservices Patterns
DEVNET-1184	Microservices PatternsDEVNET-1184	Microservices Patterns
DEVNET-1184 Microservices Patterns
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 

Mais de Cisco DevNet

18 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 202318 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 2023Cisco DevNet
 
The 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfThe 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfCisco DevNet
 
the 12 facets of OpenAPI
the 12 facets of OpenAPIthe 12 facets of OpenAPI
the 12 facets of OpenAPICisco DevNet
 
Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Cisco DevNet
 
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Cisco DevNet
 
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Cisco DevNet
 
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019Cisco DevNet
 
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Cisco DevNet
 
Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Cisco DevNet
 
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...Cisco DevNet
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningCisco DevNet
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseCisco DevNet
 
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetAdvanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetCisco DevNet
 
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Cisco DevNet
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersCisco DevNet
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Cisco DevNet
 
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...Cisco DevNet
 
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896Cisco DevNet
 
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Cisco DevNet
 
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891Cisco DevNet
 

Mais de Cisco DevNet (20)

18 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 202318 facets of the OpenAPI specification - Cisco Live US 2023
18 facets of the OpenAPI specification - Cisco Live US 2023
 
The 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdfThe 12 facets of the OpenAPI standard.pdf
The 12 facets of the OpenAPI standard.pdf
 
the 12 facets of OpenAPI
the 12 facets of OpenAPIthe 12 facets of OpenAPI
the 12 facets of OpenAPI
 
Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610
 
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
 
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
Customizing Cisco Collaboration Devices - CL20B - DEVNET-2071
 
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
 
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
 
Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019
 
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
when Apps meet Infrastructure - CodeMotionMilan2018 Keynote - Cisco DevNet - ...
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listening
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNetAdvanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
Advanced Postman for Better APIs - Web Summit 2018 - Cisco DevNet
 
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
 
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
 
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
 
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
 
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
Webex Teams Widgets Technical Drill down - Cisco Live Orlando 2018 - DEVNET-3891
 

Último

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 

Último (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 

An introduction to Microservices

  • 1. INTRODUCTION TO MICROSERVICES Architecture principles, how to, patterns, examples October 2015, @SteveSfartz
  • 2. AGENDA • Why Microservices ? • Designing Microservices • Microservices Patterns • Netflix stack • Comparing SOA styles • Sump up
  • 3. MICROSERVICES ARCHITECTURE Why, Monolithic style, Scaling the Monolith
  • 4. Microservices (2014) In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. Martin Fowler, James Lewis
  • 5. THE MONOLITHIC STYLE • An application built as a single unit, 3 main parts – a client-side user interface , – a database – and a server-side application that handles HTTP requests, execute domain logic, retrieve and update data from the database, and select and populate HTML views to be sent to the browser. • This server-side application is a monolith – a single logical executable – any change requires building and deploying a new version
  • 6. THE MONOLITHIC STYLE • Natural way to build a system – code specific to each layer (UI, Logic, DB) – generally a minimum of 3 languages – divided into classes, functions and namespaces • Locally built and tested on devs’ machines • CI/CD pipeline to secure production
  • 7. SCALING THE MONOLITH • Several Monolith instances behind a load balancer + Quickest path to scale + High availability - Routing traffic complexity - Very large code base - Change cycles tied together - Limited scalability  lack of modularity Load Balancer Monolith Client Client Client
  • 8. MAKING THE MONOLITH MORE MODULAR • Specialized instances of a single codebase – Modular invocation Load Balancer Real time business logic Client Client Client Monolith MonolithAuthentication Monolith Batches Load Balancer - Renovation as an alternative to a rewrite, - Generally does the trick, - Bonus: engage an agile « API »-fication
  • 13. COMMON CHARACTERISTICS • Componentization via Services • Organized around Business Capabilities • Products not Projects • Smart endpoints and dumb pipes • Decentralized governance • Decentralized data management • Infrastructure automation • Design for failure • Evolutionary design http://martinfowler.com/articles/microservices.html
  • 14. COMPONENTIZATION VIA SERVICES • Services as components rather than libraries • Services avoid tight coupling by using explicit remote call mechanisms. • Services are independently deployable and scalable
  • 15. COMPONENTIZATION VIA SERVICES • Each service also provides a firm module boundary – business or technical, – even allowing for different services to be written in different programming languages, – they can also be managed by different teams . • A Microservice may consist of multiple processes – that will always be developed and deployed together, – Ex : an application process and a database that's only used by that service.
  • 16. ORGANIZED AROUND BUSINESS CAPABILITIES Any organization that designs a system will produce a design whose structure is a copy of the organization's communication structure. Melvyn Conway, 1967.
  • 17. ORGANIZED AROUND BUSINESS CAPABILITIES • Microservices to solve Conway’s anti-pattern Cross-functional teams…. … organized around capabilities
  • 18. PRODUCTS NOT PROJECTS • Standard project model: – deliver pieces of software which are then considered to be completed, – hand over to a maintenance organization and disband the project team • The Microservices style – a team should own a product over its full lifetime – Amazon : You build => You run it
  • 19. SMART ENDPOINTS AND DUMB PIPES • Be as decoupled and as cohesive as possible – own domain logic, – act more as filters in the classical Unix sense – using simple RESTish protocols and lightweight messaging • Smarts live in the services, not in-between the endpoints – No central tool / bus that includes sophisticated routing, transformations, process, business rules • Pre-requisite : turn the chatty in-process communication of the monolith into coarser-grained network messaging
  • 20. DECENTRALIZED GOVERNANCE • The common microservices practice is to choose the best tool for each job – Tools are shared inside and outside the organization – Focus on common problems : data storage, IPC, infrastructure automation – Example : Netflix opensource libraries • Favor independent evolution – Consumer-driven Service contracts, – Tolerant Reader Pattern Minimal over-heads create an opportunity to have teams responsible for all aspects - Build their microservices and operate with 24/7 SLAs
  • 21. DECENTRALIZED DATA MANAGEMENT • No unique data model approach – the conceptual model differs between microservices – Reinforce the separation of concerns • Decentralized data storage – Polyglot persistence is frequent in microservices architectures • Manage inconsistencies via the business practices in place throughout the organization – Common design : reversal processes versus 2PC distributed transactions
  • 23. INFRASTRUCTURE AUTOMATION • CI/CD, Real-time monitoring, global system and fine grained resources dashboards, • Has become a standard practice – thanks to public cloud providers, – but also opensource tools • a QA stake for monoliths • a pre-requisite for microservices
  • 24. DESIGN FOR FAILURE • Any service call can fail – Circuit Breaker pattern, – async consumption • Best practice : 1 to ZERO sync call – Ex : Netflix Stack • Hystrix / Eureka / Ribbon – /! provide interop & implementations for various langages • Infrastructure pre-requisites – monitor and restore at scale – dedicated tooling for simulation – Ex : Netflix Simian Army (Chaos Monkey)
  • 25. EVOLUTIONARY DESIGN • More granular release planning • Goal : change tolerance – Identify change impacts quickly (via automation, service contracts, automated dependency maps) – Fix rather than revert – In case of mandatory breaking change, use versioning • a last resort option in the microservices world
  • 26. REAL WORLD MICROSERVICES A bit of history, Best practices, Netflix Stack
  • 27. GOOGLE TRENDS – OCTOBER 2015
  • 28. STATE OF THE ART • Pioneers : Amazon, Netflix, Google – Started Opensourcing their building blocks in 2010 – Democratized the Microservices architecture style • Today – Large corporation for complex systems that need to evolve frequently (understand continuously) – Digital startups to ensure their core business will scale and embrace the long tail
  • 29. AMAZON DNA • Microservices by design Jeff Bezos, 2002
  • 30. NETFLIX ECOSYSTEM • 100s of microservices • 1,000s of daily production changes • 10,000s of instances • 100,000s of customer interactions per minute • 1,000,000s of customers • 1,000,000,000s of metrics • 10,000,000,000 hours of streamed • 10s of operations engineers
  • 31. RESILIENCE IN DISTRIBUTED SYSTEMS • Failures are common • An application that depends on 30 services – where each service has 99.99% uptime – 99.9930 = 99.7% uptime – 0.3% of 1 billion requests = 3,000,000 failures – 2+ hours downtime/month even if all dependencies have excellent uptime. • Reality is generally worse.
  • 32. WHEN 1 BACKEND BECOMES LATENT
  • 33. AT 50+ REQ/S, ALL REQUEST THREADS CAN BLOCK IN SECONDS
  • 34. NETFLIX HYSTRIX • Latency and Fault Tolerance library – designed to isolate points of access to remote systems, services and 3rd party libraries, – stop cascading failure and enable resilience where failure is inevitable. – real time monitoring via Dashboard
  • 35. FAIL FAST, FAIL SILENT, FALLBACK • Wrapping all calls to external systems (or “dependencies”) which typically executes within a separate thread • Timing-out calls that take longer than thresholds you define. • Maintaining a small thread-pool for each dependency; – if it becomes full, requests immediately rejected instead of queued up. • Measuring successes, failures (exceptions thrown by client), timeouts, and thread rejections. • Tripping a circuit-breaker to stop all requests to a particular service for a period of time, – either manually or automatically (error percentage threshold) • Performing fallback logic when a request fails, is rejected, times- out, or short-circuits. • Monitoring metrics and configuration changes in near real-time.
  • 39. SERVICES DISCOVERY • Typically, a Microservice gets created and destroyed often • It is reconfigured on the fly • In near real-time, others should find it • Examples – Apache ZooKeeper – HashiCorp Consul – CoreOS Etcd – Netflix Eureka
  • 40. SERVICES CONSUMPTION • Choose the best messaging infrastructure – RPC / REST style, – Request/Response, Streaming – HTTP, HTTP2, TCP, UDP • Support async consumption / aggregation – Use parallel code structures of your clients – GO, ES7 (BabelJS, Google Traceur) • Ease consumption via clients SDKs – Automated generated from API definitions – Service providers tend to opensource their SDKs • Facebook Parse, IBM Bluemix Mobile services
  • 41. SERVICES CONSUMPTION • Favor SDKs with large feature sets – Basic REST is not an option for microservices – integrate load balancing, fault tolerance, caching, service discovery, multiple transport protocols (HTTP, TCP, UDP) • Netflix Ribbon – Inter Process Communication with built in software load balancers – Integrates Hystrix and Eureka – The primary usage model involves REST calls with various serialization scheme support.
  • 42. MICROSERVICES GATEWAY • As an Edge service to access back-end microservices – Authentication and Security – Dynamic routing, – Insights and Monitoring – Stress testing : gradually increasing the traffic to a cluster in order to gauge performance. – Load Shedding : allocating capacity for each type of request and dropping requests that go over the limit. – Static Response handling : building some responses directly at the edge instead of forwarding them to an internal cluster – Multiregion Resiliency : routing requests across AWS regions in order to diversify the ELB usage and move the edge closer to users
  • 43. MICROSERVICES GATEWAY • Lots of building blocks – Nginx – Mashape Kong • Needs integration with the other building blocks of the Microservices communication infrastructure – Example : Netflix Zuul
  • 45. COMMITTED TEAMS • Ownership core to team organization – built into the management of the organization – make sure that teams have sufficient time to truly own the applications that they are in charge • “Products versus Projects” principle • “Functional versus Divisional” organizations – And give them 360 view on operations
  • 47. SOUNDCLOUD TESTIMONIAL • Actual workflow to go live – 2 months, 11 steps – Main elephant is all the dance between front-end and back-end development – 11 days are doing actual development work
  • 48. SOUNDCLOUD TESTIMONIAL • Decision : pairing back-end and front-end devs – pair fully dedicated to a feature until its completion – Individually, each person ended up spending more time doing work per feature
  • 49. SOUNDCLOUD TESTIMONIAL • Designer, product manager, and front-end developer working close to each other
  • 50. SOUNDCLOUD TESTIMONIAL • The irreducible complexity of the monolith – Why do we need Pull Requests? – Why do people make mistakes so often? – Why is the code base so complex? – Why do we need a single code base to implement the many components? – Why can’t we have economies of scale for multiple, smaller, systems?
  • 51. SOUNDCLOUD TESTIMONIAL • Isolated new features in dedicated microservices, isolated from the monolith • New organization with team of 3 to 4 people • Each team is responsible for decided whether parts of the Monolith are extracted and rewritten , or kept
  • 52. COMMITTED TEAMS • Ownership core to team organization – built into the management of the organization – make sure that teams have sufficient time to truly own the applications that they are in charge • “Products versus Projects” principle • “Functional versus Divisional” organizations – And give them 360 view on operations
  • 53. THE NETFLIX MICROSERVICES JOURNEY • Migration to AWS AWS re-invent 2015
  • 54.
  • 55.
  • 56. NETFLIX STACK • Solid communications – Hystrix : latency and fault tolerance library – Eureka : registry for resilient mid-tier load balancing and failover – Ribbon : client based smart load balancer – Servo : monitoring library – EVCache : distributed in-memory data store for AWS EC2 – RxNetty : reactive extension adaptor for netty – Karyon : blueprint of a cloud ready microservice – Zuul : edge gateway – Falcor : js library for efficient data fetching
  • 57. NETFLIX STACK • Automation – Asgard : specialized AWS console (app deployments, management) – Spinnaker : microservices console (clusters, pipelines), not opensourced yet – Atlas : near real-time operational insights – Vector : exposes hand picked high resolution metrics from PCP – Performance Co-Pilot hosts – SimianArmy : services (Monkeys) in the cloud for generating various kinds of failures, detecting abnormal conditions, and testing our ability to survive them – Dependencies automatically documented from from real traffic analysis
  • 58. • Mid-tier load balancing – a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services – for the purpose of load balancing and failover of middle-tier servers, – the load balancing happens at the instance/server/host level • Comes with a Java-based client – The client also has a built-in load balancer – The client instances know all the information about which servers they need to talk to. – Does basic round-robin load balancing. • At Netflix, a much more sophisticated load balancer wraps Eureka to provide weighted load balancing based on several factors like traffic, resource usage, error conditions to provide superior resiliency.
  • 59. NETFLIX FALCOR • Working with JSON Virtual Resources http://netflix.github.io/falcor/starter/what-is-falcor.html
  • 63.
  • 65. FAQ How big should be my microservices ? RESTish microservices ? Isn’t it SOA ? The end of the monoliths ?
  • 66. HOW BIG ? • Microservices ownership implies that each team is responsible for the entire lifecycle – functional vs divisional organizations – product management, development, QA, documentation, support • Sizing depends on the system you’re building – Amazon 2PT principle - Two Pizza Teams – 6 to 10 people to build/deploy/maintain a microservice – an average microservice at Gilt consists of 2000 lines of code, 5 source files, and is run on 3 instances in production
  • 67. RESTISH MICROSERVICES ? • REST – Web lingua franca, 100% interoperable – development cost is generally higher – best practices : provide client sdks, (ex : generated from Swagger/RAML or other API description languages) – performance issues if not well-designed (chattiness) – best practices : experience based and coarser grained APIs • RPC – optimized communication via binary formats – automated generation from IDL, polyglot by default – integrated support multiples scenarios : request/response, streaming, bi-directional streaming
  • 68. HOW RESTISH MICROSERVICES ? • RPC vs REST style depends on the system you’re building and teams existing skills set • Whatever the style, your microservices architecture MUST provide – Services Discovery, – Reliable Communications, – Operational insights (logs, monitoring, alerts, real time analysis)
  • 69. GOT IT, BUT ISN’T IT SOA ? • SOA so what ? – Enterprise SOA – Event-driven architecture (Pub/Sub) – Streaming Services (real-time time series, bidirectional) – Container-Services (ala Docker) – Nanoservices (ala AWS Lambda) • Simply stated : Microservices are a SOA style for systems whose first goal is to scale  in details, let’s see how microservices differ from…
  • 70. MICROSERVICES VS ENTERPRISE SOA • Enterprise SOA is often seen as – multi-year initiatives, costs millions – complex protocols with productivity and interoperability challenges – central governance model that inhibits change • Enterprise SOA is more about integrating siloed monoliths – generally via a smart and centralized service bus • Microservices is scalable SOA – an architectural style to design, develop and deploy a large and complex system, so that it is easier to scale and evolve
  • 71. √ Componentization via Services √ Organized around Business Capabilities Products not Projects Smart endpoints and dumb pipes Decentralized governance Decentralized data management Infrastructure automation v Design for failure √ Evolutionary design VS ENTERPRISE SOA
  • 72. VS EVENT DRIVEN ARCHITECTURE • EDA fits well with Document oriented systems and information flows • Communication between microservices can be a mix of RPC (ie, P2P calls) and EDA calls • See EDA as a communication pattern for your microservices • Can address choreography, orchestration, pipeline requirements
  • 73. VS STREAMING SERVICES • Streaming services fit well – if you have large volumes (log entries, IoT), – and/or if you aim at real time analysis • Data ingestion endpoint of a microService – Real time analysis of a mobile app usage aws:reinvent 2015 - Zillow
  • 74. VS CONTAINER SERVICES • Containers provide the infrastructure to deploy your microservices independently one from another • See Container Services as a building block of your global microservices architecture
  • 75. VS NANOSERVICES • Nanoservices are small pieces of code (functions) – Example : AWS Lambda, Auth0 Webtasks • A microservice may leverage 1+ nanoservices
  • 77. MICROSERVICES PATTERNS • Solid communications – Fault tolerant librairies – Service discovey • Committed teams – Devops culture – Code/Test/Deploy/Support, 24/7 – Automation • Ownership – Organisation aligned with the strategy – Insights via real time monitoring
  • 78. MICROSERVICES IS A LONG JOURNEY • Several years to implement - Communications, infrastructure, automation, monitoring, teams organization - The price to pay for extreme agility in a complex system at scale - Prepare for iterative reworks – Multiples languages => maintainability – Numerous building blocks => updates & security – EOL of microservices stacks : manage your technical debt – Dependency Hell : keep control of your microservices segmentation – Ownership : is your organization ready ?
  • 79. THE END OF MONOLITHS ? http://www.stavros.io/posts/microservices-cargo-cult/
  • 80. FROM MONOLITHS TO MICROSERVICES • Velocity of innovation for complex systems – Keep your monolith as is if you don’t need to speed up features delivery • To prepare for the journey • switch from layered architecture to internal APIs, • automate integration and deployment, • reorganize from divisional to functional teams committed to business and owning their code
  • 81. REFERENCES Microservices, Martin Fowler, James Lewis – http://martinfowler.com/articles/microservices.html A day in the life of a Netflix Engineer using 37% of the internet – http://fr.slideshare.net/AmazonWebServices/dvo203-the-life-of-a- netflix-engineer-using-37-of-the-internet Dzone – Geting started with Microservices – https://dzone.com/refcardz/getting-started-with-microservices SoundCloud – How we ended up with microservices – http://philcalcado.com/2015/09/08/how_we_ended_up_with_micros ervices.html gRPC - boilerplate to high-performance scalable APIs – http://fr.slideshare.net/AboutYouGmbH/robert-kubis-grpc-boilerplate- to-highperformance-scalable-apis-codetalks-2015
  • 83. THANK YOU Stève SFARTZ • technical program manager • enterprise architect, web API specialist, • scalable & interoperable platforms builder • dev & ops teams lead Keeping in touch • steve@sfartz.com • twitter : @SteveSfartz

Notas do Editor

  1. - tour d'horizon des différents types d'architectures : architecture orientées composants, services et hub de services, REST et microservices - 15' - comment créer un micro-service : fondamentaux, protocoles - 45' - état de l'art, exemple de microservices, références Amazon, Netflix - 45' - enjeux en entreprise (comment appliquer à l'échelle de son organisation) - 45'
  2. Couleur
  3. http://www.site-reliability-engineering.info/2014/04/what-is-site-reliability-engineering.html
  4. The actual flow was something like this: 1. Somebody comes up with an idea for a feature. They then write a fairly lightweight spec, with some screen mockups, and stores that in a Google Drive document. 2. The spec stays in this document until somebody has time to actually work on it. 3.The very small design team would get the spec and design the user experience for it. This would then become a card in the Trello board owned by the Web team. 4. The card would sit on the Trello board for a while, at least a 2-weeks iteration, until an engineer was free to pick it up. 5.The engineer would start working on it. After converting the design into a proper browser-based experience using fake/static data, the engineer would write down what changes in the Rails API they would need for this experience to work. This would go into Pivotal Tracker, the tool of choice for the App team. 6. The card would sit on Pivotal until somebody from the App team was free to look at it, often taking another two-week iteration. 7. The App team member would write the code, integration tests and everything required to get the API live. Then they would update the Trello issue, letting the Web team know their part was done. 8. The updated Trello card would sit in the backlog for a while more, waiting for the engineer in the Web team to finish whatever they started doing while waiting for the back-end work. 9. The Web team developer would make their client-side code match whatever kinks from the back-end implementation, and would give the green light for a deploy. 10. As deployments were risky, slow, and painful, the App team would wait for several features to land into the master branch before deploying it to production. This means the feature would be sitting in source control for a couple of days, and that very frequently your feature would be rolled back because of a problem in a completely unrelated part of the code. 11. At some point, the feature finally gets deployed to production.
  5. http://www.site-reliability-engineering.info/2014/04/what-is-site-reliability-engineering.html
  6. Entreprise / Web / Mobile Architectures Opensource Java & Microsoft .net Platforms