SlideShare a Scribd company logo
QCon NY 2015
Microservices Track Session Notes
!
Abdul Munda - @amunda
http://www.sortedarray.com
1. KeyNote: Micro Chips to
Microservices
By Mary Poppendieck
KeyNote: Micro Chips to
Microservices
• 1945 - 2015 - We have increased the calc/sec by 1 Trillion
• Hardware mainly scaled by miniaturization & abstraction like plug n play.
• Software doesn’t really scale by abstraction e.g. the software we write today hasn’t
abstracted much after high level language e.g. fortran and HTML are in the same
generation.
• Software scales by federation and wide participation
• Wide participation means lots of different people bring their knowledge to find out different
things and contribute to knowledge base.
• Federated architecture means you can do stuff like create your own website, app and you
can do whatever you want individually without effecting other parts of internet or app
ecosystem and then bring your learning and share with rest of the world.
• So if you are thinking of scaling something think about how can you federate and then
share the learnings from each federation.
KeyNote: Micro Chips to
Microservices
One of the ways to do this federated architecture is Micro-
services and here are few points about it:
1. Has to be independently Deployable (fundamental value)
2. End-to-end responsibility of one single small team
3. No Central Database
4. Extensive Automation & Monitoring
5. Smart Versioning Services

Recommended for you

Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices

Microservice architecture Microservices vs monolith Design patterns for microservice architecture Further reading

microservices
Micro-services architecture
Micro-services architectureMicro-services architecture
Micro-services architecture

Micro-services architecture is an evolutionary design ideal for evolutionary systems where you can’t fully anticipate the types of devices that may one day be accessing your application

micro-services
Knockout js
Knockout jsKnockout js
Knockout js

KnockoutJS is a JavaScript library that provides declarative bindings between a data model and UI. It exposes the MVVM pattern, separating model, view, and view model concerns. Two-way data binding automatically synchronizes data between the model and view. Observables notify of changes and detect dependencies, enabling two-way binding between UI elements and the JavaScript view model. KnockoutJS is lightweight, fully documented, and suitable for building small to medium single-page applications.

knockout
KeyNote: Micro Chips to
Microservices
Checklist before you start embarking on Micro-services track
1. Is it right for the domain? (usually very high volumes)
2. Do you understand the domain boundaries? (refactoring
across services is very hard)
3. Can you maintain strict discipline? (interaction restricted to
hardened interfaces)
4. Can you have high situational awareness about your
systems? i.e. consumer knows that producer before
deployment that interfaces are same not only relying on
Mocks
KeyNote: Micro Chips to
Microservices
Strategies for Monolith
• Start packing related code into a container
• For complex system, large releases can cause lot of
instability. So you should do small continuous
deployment
• Deployment is different from releases, switching
feature flags on and off is considered releasing
Netflix’s Viewing Data
Microservices
Matt Zimmer
Netflix’s Viewing Data Microservices
��� Netflix Scale
• 62 Million members
• 50+ counteries
• 3 Billion Hours/Month
• 1000+ device types
• 37% Downstream bandwidth of N/A

Recommended for you

Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices

This presentation is conducted on 14th Sept in Limerick DotNet User Group. (https://www.meetup.com/preview/Limerick-DotNet/events/xskpdnywmbsb) SlideShare Url: https://www.slideshare.net/lalitkale/introduction-to-microservices-80583928 In this presentation, new architectural style - Microservices and it's emergence is discussed. We will also briefly touch base on what are not microservices, Conway's law and organization design, Principles of microservices and service discovery mechanism and why it is necessary for microservices implementation. About Speaker: Lalit is a senior developer, software architect and consultant with more than 12 yrsof .NET experience. He loves to work with C# .NET and Azure platform services like App Services, Virtual Machines, Cortana, and Container Services. He is also the author of 'Building Microservices with .NET Core' (https://www.packtpub.com/web-development/building-microservices-net-core) book. To know more and connect with Lalit, you can visit his LinkedIn profile below. https://www.linkedin.com/in/lalitkale/ This presentation will be useful for software architects/Managers, senior developers. Do share your feedback in comments.

microserviceslimerickdotnetmicrosoft
Lowering the risk of monolith to microservices
Lowering the risk of monolith to microservicesLowering the risk of monolith to microservices
Lowering the risk of monolith to microservices

This document summarizes one organization's journey from a monolithic application architecture to a microservices architecture. It describes some of the pains of maintaining a monolithic application. It then discusses strategies for breaking the monolith into independently deployable microservices at low risk, including identifying module boundaries, deploying and releasing services independently, virtualizing data integration, and using traffic mirroring. The goal is to increase development velocity while lowering risk.

microservicesclouddevops
How to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and TrustHow to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and Trust

Henry Stapp, Director of Product Management at Apcera, explores the promises of the cloud and how new technologies (containers, micro-services, etc.) enable unparalleled speed and flexibility.

microservicesit infrastructureapcera
Netflix’s Viewing Data Microservices
• Viewing Data Services need to calculate
• Who, What, When, Where (physical and device) and how long they
watched
• How does this benefits users?
• How does this benefit Users?
• Pickup where you left off (switch devices)
• MyActivity timeline
• Helps Netflix see the quality like what was buffer speed etc.
• Helps them subscription purchase e.g. they figured out that Adam
Sandler does well in all the regions, so they made a deal with him
Netflix’s Viewing Data Microservices
High volume events like Hearbeats events and Read Last events both going
to stateful tier
System Architecture before Microservices
Netflix’s Viewing Data
Microservices
System Architecture after Microservices
Netflix’s Viewing Data
Microservices
System Architecture after Microservices (implementation)

Recommended for you

Microservices and the future on Infrastructure
Microservices and the future on InfrastructureMicroservices and the future on Infrastructure
Microservices and the future on Infrastructure

The document discusses the evolution of IT infrastructure from siloed application architectures to microservices and network-centric architectures. It outlines several principles of microservices, including smart endpoints and decentralized governance. It also notes some disadvantages of microservices like operational overhead and distributed system complexity. Finally, it discusses future challenges like moving from monolithic to multi-cloud architectures and how organizations must structure themselves around network-centric designs.

What is a itil and how does it relate to your collaborative environment uklug
What is a itil and how does it relate to your collaborative environment   uklugWhat is a itil and how does it relate to your collaborative environment   uklug
What is a itil and how does it relate to your collaborative environment uklug

ITIL (IT Infrastructure Library) is a framework for managing IT services and ensuring they meet customer expectations. This presentation discusses key ITIL concepts like defining IT services, delivering services, measuring quality of service, and operational management through monitoring, reporting on KPIs and SLAs, problem and change management. Continuous improvement is important to regularly review services and customer requirements. Standard service requests are repeatable with set processes and timelines.

itilibm lotus notes2011
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture

Microservice architecture. Short intro into the world of microservices, the talk I gave in VilniusPHP meetup.

symfonymicroservicearchitecture
Netflix’s Viewing Data Microservices
• Why change? (assume all this risk and cost)
• Current System would have worked really great for next few years,
monolith are not a bad thing and many times its actually great
• They wanted to do before the imminent need so they can do
mindfully
• They wanted to work in a mode where there is no maintenance
mode
• Rapid growth due to Virtuous Cycle: Viewing - Improved
Personalization - Better Experience - more viewing
• Stateful instance count remain same 24/7 regardless of loads
Netflix’s Viewing Data Microservices
• How did we do that?
• Shadow Testing
• All the request goes through both the systems legacy and micro
services but only the legacy system serve the users.
• This helps not only making sure that its operating correctly but also that
its working properly at scale
• Traffic Dial
• To do this they needed to make sure they have a consistsnt view of the
world. So they sacrificed bit of pure microservice system and removed
persistent from services and pointed them to old legacy system
• 1% of the traffic was directly hitting some of the service then dial up
from there to 100%
Netflix’s Viewing Data Microservices
Key Points
• Devour the whale a bite at a time
• Design for idempotency so it can replayed (using
something like CQRS/Event Sourcing)
• System architectures are throw-away artefacts,
useful for only a limited time. Design for 10X plan
to rewrite before 100x - System Arc is a throw
away artifact.
Engineering for Scale at
VMTurbo	
Sylvia Isler - VP of Architecture

Recommended for you

Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)

Early Draft: Service Mesh allows developers to focus on business logic while the crosscutting network data layer code is handled by the Service Mesh. This is a boon because this code can be tricky to implement and hard to test all of the edge cases. Service Mesh takes this a few steps further than AOP or Servlet Filters or custom language-specific frameworks because it works regardless of the underlying programming language being used which is great for polyglot development shops. Thus standardizing how these layers work, while allowing teams to pick the best tools or languages for the job at hand. Kubernetes and Istio Service Mesh automate best practices for DevSecOps needs like: failover, scale-out, scalability, health checks, circuit breakers, rate limiters, metrics, observability, avoiding cascading failure, disaster recovery, and traffic routing; supporting CI/CD and microservices architecture. Istio’s ability to automate and maintaining zero trust networks is its most important feature. In the age of high-profile data breaches, security is paramount. Companies want to avoid major brand issues that impact the bottom line and shrink market capitalization in an instant. Istio allows a standard way to do mTLS and auto certificate rotation which helps prevent a breach and limits the blast radius if a breach occurs. Istio also takes the concern of mTLS from microservices deployments and makes it easy to use taking the burden off of application developers.

service meshistiokubernetes
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersYour Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers

Everyone is excited about cloud-native applications. And for good reason! They're scalable, resilient, portable across cloud environments, and make it easier to incorporate customer feedback quickly. But there's a catch: cloud-native applications fundamentally change the way you provision, deploy, and manage your infrastructure. That's where DevOps, microservices, and containers come in. This session will show you how to combine them to create a highly-automated continuous delivery platform. By streamlining the process to resemble factory assembly lines, you can adapt quickly to market changes and keep your customers happy – without burning your team out.

atlassian summit 2019
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices

The introduction covers the following 1. What are Microservices and why should be use this paradigm? 2. 12 factor apps and how Microservices make it easier to create them 3. Characteristics of Microservices Note: Please download the slides to view animations.

javaspring bootsoa
Engineering for Scale at VMTurbo	
• Who are VM Turbo?
• VMTurbo is a data center control system and does automatic
resource allocation
• They do that by creating marketplace between workload
(applications, VMs, containers) as buyers and CPU, storage, fabric
as sellers
• Why not architecture from microservices from beginning?
• Monolith allows you to explore the complexity of a system and its
component boundaries
• Martin fowler said in a recent article how you shouldn’t start with
microservices in the beginning to get understanding of your domain
Engineering for Scale at VMTurbo
Engineering for Scale at VMTurbo	
• Problems
• Release cycle for 6 months with interim patches
• No metrics captured
• Monolothic team because of monolithic architecture
• Monolothic Architecture caused scalability, concurrency and tangled interface
between components.
• Catalysts for Change
• Growth in customer base
• More Large Environments
• Geographical Spread of Team
• More Frequent Deleviries
Engineering for Scale at VMTurbo	
• Steps to create first service
• Clean up the interface between Mediation (service to
be created) and the Analysis component
• Separate Mediation component completely from
Monolith
• Publish APIs - so anyone can write mediation
component and works with VMTurbo Analysis

Recommended for you

Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice

Presenting key architectural concepts of the Microservices Architecture(MSA) and how you can use those architectural principles in practice.

microservicesoa
Intro to Microservices Architecture
Intro to Microservices ArchitectureIntro to Microservices Architecture
Intro to Microservices Architecture

A high-level overview of Microservices architecture topics you should be familiar with before you actually start breaking your monolith into microservices

microservicessoftware developmentarchitecture
Going Reactive in Java with Typesafe Reactive Platform
Going Reactive in Java with Typesafe Reactive PlatformGoing Reactive in Java with Typesafe Reactive Platform
Going Reactive in Java with Typesafe Reactive Platform

The document discusses reactive applications and the Typesafe Reactive Platform. Reactive applications are message-driven, elastic, resilient, and responsive. They react to changes, scale up and down based on demand, handle failures, and provide low-latency responses. The Typesafe platform includes Akka for building concurrent applications and Play Framework for developing web applications. Both use reactive principles and support features like clustering, event sourcing, and web services. Typesafe delivers training and support for organizations adopting a reactive approach using their Java-based tools.

typesafemessage-drivenjava 8
Microservices and the art of
taming the dependency hell
Michael Bryzek Cofounder & ex-CTO Gilt
@mbryzek
mbryzek@alum.mit.edu
Microservices and the art of taming
the dependency hell
• Gilt which is an organization with 1500 git repos and
over 150 micorservices. Its about 1000 people with
150+ people in tech
• Gilt started with very basic Rails monolithic
architecture
• They started with excessive caching but soon they
realize that its very hard to reason about how adding
any new feature will effect in realtime.
• They started minimizing caching but depending on
very fast data store
Microservices and the art of taming
the dependency hell
• They started extracting the highly available parts of the application
and put them behind service. Few services they extracted were:
• User Service with 10K RPS with millions of users. They went for
mongoDB to give absolute consistency instead of eventual
consistency.
• Catalog Service with 5K RPS and used relational DB
• Inventory Service with 10K RPS+ with guarantee never oversold
and used HBase.
• Cart Service with low throughput and used Dynamo DB
• Any significant features they add start becoming the service.
Microservices and the art of taming
the dependency hell
• What are the problems once they started adding services?
• Builds get larger and slower - You keep depending on services and
start adding client libraries for services now you have world
downloaded
• Create new client libraries that are each just a little bit different
• Produce custom APIs instead of consistent APIs that reduce
interoperability
• Increase amount of boilerplate code
• Reduce code quality; slow down development
• And Eventually you will see a production error

Recommended for you

Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build Tools

A survey of problems involved in building containers and build tools such as: buildah nixos-container ansible-container Smith Distroless Buildkit Source to Image (s2i) Habitat

containersdockerkubernetes
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture

The document discusses microservice architecture and compares it to monolithic architecture. It describes microservices as small, discrete, isolated services that can be deployed separately. A monolith is a single application combining all business logic and data access. The document outlines characteristics of microservices such as single responsibility, statelessness, independent data management and communication through APIs or message queues. It also covers deployment, testing, monitoring, metrics and the need for automation and a culture open to change when using microservice architecture.

microservice architecture
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices

This is a small introduction to microservices. you can find the differences between microservices and monolithic applications. You will find the pros and cons of microservices. you will also find the challenges (Business/ technical) that you may face while implementing microservices.

softwareagilemicroservices
Microservices and the art of taming
the dependency hell
• To minimize all those pains they followed guiding principle
called The Open Source Way.
• This means making the way we build propriety software
similar to the way open source is done. In the following
areas:
• How do they provide documentation?
• How does the library integrates with other apps?
• How do i get support/contribute/report bugs?
• public or private is a detail.
Microservices and the art of taming
the dependency hell
Some specific strategies to avoid these problems and manage dependencies are
1. Tooling Matters
• Anyone who has succeeded with Microservices is they have used extensive
tooling to automate stuff.
2. API Design must be first class
• Design of your API and the data structures are hardest to change
afterwards.
• You can tools like Protobufs, thrift, avro, swagger 2.0 and apidoc to make
schema as your first class and makes it very easy for consumer to knows
what data its getting.
• Schema first design is the most important concept to avoid the dependency
hell.
Microservices and the art of taming
the dependency hell
3. Accurate Documentation
• Documentation should be of the similar to the amount needed for an open
source project to be successful.
• Using semantic versioning to point out if there is any breaking changes.
• Accurate documentation can be achieved by producing the documentation in
software process
4. Generating Client Side Libraries
• Makes it easy to test
• Reduces lot of boilerplate
• Consistent naming
• You can minimize the external dependencies
Microservices and the art of taming
the dependency hell
5. Backward Compatibility
• Renaming just doesn’t work.
• Introduce new model, migrate and deprecate all the old stuff
6. Forward Compatibility
• Your service shouldn’t blow up if new field is added or seen by
the system.
• Careful of enums, what happens when you add a value in the
future.
• Don’t throw exception if new field shows up

Recommended for you

Microservices vs monolithics betabeers
Microservices vs monolithics   betabeersMicroservices vs monolithics   betabeers
Microservices vs monolithics betabeers

Diapositivas con el contenido de mi charla en el XXIII BetaBeers. Microservices vs Monolithics. Granada - 14/12/2017

Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices

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. In this slide we have discussed, Monolithic application vs Microservices, applicable scenarios for adopting the architectural pattern, when we need microservices, what are the benefits, case study of an e-commerce platform by compartmentalizing the scopes into different sample microservices and Docker implementations. The full talk has been recorded here: https://youtu.be/tNlp7HS533g

devopscontainersingle responsibility principles
Microservice intro
Microservice introMicroservice intro
Microservice intro

This document provides an overview of microservices and monolithic architectures. It discusses how monolithic applications are self-contained and execute end-to-end tasks, while microservices are small, independent services that communicate to perform tasks. The document outlines characteristics of each approach and compares their advantages and disadvantages, such as improved scalability, deployment and innovation with microservices versus better performance with monolithic architectures. Examples of companies using microservices are also provided.

monolithicarchitecturemicroservice
Scaling Stack Overflow: Keeping it
Vertical by Obsessing Over Performance
(case for monoliths)
David Fullerton
@df07
Scaling Stack Overflow: Keeping it Vertical by Obsessing
Over Performance
• 4 Billion Requests/Month, 3K requests/s, 45 M uniques/month, 8K qs/month
and 500,000 page-views/month
• 34 Devs, 6 sysadmins, 6 designers, 75% remote
• Their Architecture
• 2 HAProxy - one failover
• 9 web servers
• 4 SQL Servers (Vertical scaling - 2 clusters)
• 2 Redis Servers
• 3 Elastic Servers
• 3 Tag Engine
Scaling Stack Overflow: Keeping it Vertical by Obsessing
Over Performance
Scaling Stack Overflow: Keeping it Vertical by Obsessing
Over Performance
• It’s what they called Monolith Plus most of the stuff happens in web
tier and DB.
• It scales really good for them.
• All of their web servers and SQL servers are running under 10% CPU
consumption and majority of the RAM consumption is under 70%
• Deploys all day everyday, deploy through web tier in 3 minutes. This
gives them huge ability to test on production since they can roll out so
fast
• Testing on users, few unit test and integration test not lot of
automated tests.
• Big believer in feature flags.

Recommended for you

Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?

Whar are microservices and microservices architecture (MSA) How we reach them? Are they the same or SoA or not? When to use them? What are the key characteristics? Slides of my talk given in #Gapand2017 in Andorra

soa12-factor-appsmicroservices
What are microservices
What are microservicesWhat are microservices
What are microservices

“ The Microservices architecture has many appealing qualities, but the road towards it has painful traps for the unwary. This book will help you figure out if this path is for you, and how to avoid those traps on your journey.” —Martin Fowler Chief Scientist, ThoughtWorks

what are microservices
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform

Presentazione dello speech tenuto da Carmine Spagnuolo (Postdoctoral Research Fellow - Università degli Studi di Salerno/ ACT OR) dal titolo "Technology insights: Decision Science Platform", durante il Decision Science Forum 2019, il più importante evento italiano sulla Scienza delle Decisioni.

decision sciencedecision science communitydecision science forum
Scaling Stack Overflow: Keeping it Vertical by Obsessing
Over Performance
!
• This works specifically for stackoverflow because
• Read-heavy load centered on one page.
• Forgiving community — they released the bug with alert on the homepage
• How do they work?
• Start with what they know
• Measure it live
• Fix the slow - because performance is a feature
• Use excessive caching
• Optimizing for performance instead of scaling out
Scaling Stack Overflow: Keeping it
Vertical by Obsessing Over Performance
“my primary guideline would be don’t even consider
micro service unless you have a system that’s too
complex to manage as a monolith” — Martin Fowler
The Seven Deadly Sins of
Microservices
Daniel Bryant
@danielbryantuk
Seven Deadly Sins of Microservices
1. Lust - using the latest and greatest
• Choose Boring Technology
• Use Matt Raibel’s comparison framework to add objectivity
2. Gluttony - Excessive communication protocols
• Choose initially only one Sync (e.g. JSON over HTTP) and one Async ( eg. RabbitMQ) protocol
3. Greed - All your Service are belong to us
• Don’t underestimate the effect it will happen on your organization not necessarily only technical
side
• Few good books - The Connected Company, The Modern Firm, On Chnage Management
4. Sloth - Creating a distributed monolith
• If you can’t deploy services independently then you are not doing micro services

Recommended for you

From no services to Microservices
From no services to MicroservicesFrom no services to Microservices
From no services to Microservices

A journey of a FinTech application into the cloud, starting as a monolith and growing to MicroServices. Why going functional is so good for finance technology, and how Scala helped us build a better application.

microservicesjavanearshoring
Deployability
DeployabilityDeployability
Deployability

This document discusses deployability and continuous deployment in the context of microservice architectures. It begins by describing National ICT Australia (NICTA) and its work in information and communications technology research. It then discusses how microservice architectures support continuous deployment by allowing individual teams to deploy new versions of their services independently without coordination. Key aspects of microservice architectures that enable this include: each service having a single responsibility; services communicating asynchronously via messaging; and services registering themselves with a discovery service. The document also discusses how feature toggles and canary deployments can be used to maintain consistency when deploying new versions of services.

The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application

Where SOA and Monolitch EAR have failed. It's not simple to have your Apps scaling automagically without a very complex architecture. We're going to show pros and cons of so called Cloud-Native Applications based on Microservices, Caas, DevOps, Continuous Delivery....

devopscontinuous deliverymicroservices
Seven Deadly Sins of Microservices
5. Wrath - Blowing up when bad things happen
• Putting the chaos monkey is really useful to put in your deployment pipeline
• Read up on Release It!
6. Envy - The shared single domain fallacy
• One model breaks encapsulation and introduces coupiing
• Know DDD
7. Pride - Testing the world of transience
• There is a mindset change in how you are testing
• Invest in your Build Pipeline
• Use Serenity BDD
• Wiremock - testing in jenkins fault tolerence
• Testing in production? - Netflix and Gilt - once you reach at certain level of services only way to test is in
production
Summary
• Know your domains very well before you start creating microservices because refactoring
across services is very hard
• You are not doing microservice if you are not independently deploying
• Make API design first class by using tools like swagger and apidoc
• Architect for failure and build the failure testing in your build pipeline by using tools like
Wiremock
• Testing is really hard because its impossible to have the full view of the system all the time. So
have to invest in tools, API documentation and build pipeline to better gauge your system.
• Use generated clients to avoid tons of boilerplate
• Don’t borrow other people problems, figure out your own pain points.
• Microservices have a hefty tax and it usually worth it if the team size, complexity or the scale
of the app is growing
• Monoloiths maybe the best architecture in certain domains eg. Stackoverflow

More Related Content

What's hot

Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Izzet Mustafaiev
 
Microservice architecture case study
Microservice architecture case studyMicroservice architecture case study
Microservice architecture case study
Rudra Tripathy
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverless
Christian Posta
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
Yury Kisliak
 
Micro-services architecture
Micro-services architectureMicro-services architecture
Micro-services architecture
Farwa Ansari
 
Knockout js
Knockout jsKnockout js
Knockout js
Andrey Kolodnitsky
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
Lalit Kale
 
Lowering the risk of monolith to microservices
Lowering the risk of monolith to microservicesLowering the risk of monolith to microservices
Lowering the risk of monolith to microservices
Christian Posta
 
How to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and TrustHow to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and Trust
Apcera
 
Microservices and the future on Infrastructure
Microservices and the future on InfrastructureMicroservices and the future on Infrastructure
Microservices and the future on Infrastructure
Pini Reznik
 
What is a itil and how does it relate to your collaborative environment uklug
What is a itil and how does it relate to your collaborative environment   uklugWhat is a itil and how does it relate to your collaborative environment   uklug
What is a itil and how does it relate to your collaborative environment uklug
dominion
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
Žilvinas Kuusas
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
Rick Hightower
 
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersYour Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Atlassian
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
Kasun Indrasiri
 
Intro to Microservices Architecture
Intro to Microservices ArchitectureIntro to Microservices Architecture
Intro to Microservices Architecture
Peter Nijem
 
Going Reactive in Java with Typesafe Reactive Platform
Going Reactive in Java with Typesafe Reactive PlatformGoing Reactive in Java with Typesafe Reactive Platform
Going Reactive in Java with Typesafe Reactive Platform
Legacy Typesafe (now Lightbend)
 
Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build Tools
Michael Ducy
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
Engin Yoeyen
 

What's hot (20)

Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Microservice architecture case study
Microservice architecture case studyMicroservice architecture case study
Microservice architecture case study
 
Making sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverlessMaking sense of microservices, service mesh, and serverless
Making sense of microservices, service mesh, and serverless
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Micro-services architecture
Micro-services architectureMicro-services architecture
Micro-services architecture
 
Knockout js
Knockout jsKnockout js
Knockout js
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
Lowering the risk of monolith to microservices
Lowering the risk of monolith to microservicesLowering the risk of monolith to microservices
Lowering the risk of monolith to microservices
 
How to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and TrustHow to Migrate to Cloud with Complete Confidence and Trust
How to Migrate to Cloud with Complete Confidence and Trust
 
Microservices and the future on Infrastructure
Microservices and the future on InfrastructureMicroservices and the future on Infrastructure
Microservices and the future on Infrastructure
 
What is a itil and how does it relate to your collaborative environment uklug
What is a itil and how does it relate to your collaborative environment   uklugWhat is a itil and how does it relate to your collaborative environment   uklug
What is a itil and how does it relate to your collaborative environment uklug
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
 
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersYour Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Microservices in Practice
Microservices in PracticeMicroservices in Practice
Microservices in Practice
 
Intro to Microservices Architecture
Intro to Microservices ArchitectureIntro to Microservices Architecture
Intro to Microservices Architecture
 
Going Reactive in Java with Typesafe Reactive Platform
Going Reactive in Java with Typesafe Reactive PlatformGoing Reactive in Java with Typesafe Reactive Platform
Going Reactive in Java with Typesafe Reactive Platform
 
Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build Tools
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 

Similar to QCon 2015 - Microservices Track Notes

Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
MahmoudZidan41
 
Microservices vs monolithics betabeers
Microservices vs monolithics   betabeersMicroservices vs monolithics   betabeers
Microservices vs monolithics betabeers
Jesús Mª Villar Vazquez
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
M A Hossain Tonu
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
ramesh_sharma
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
Eduard Tomàs
 
What are microservices
What are microservicesWhat are microservices
What are microservices
Krunalkumar Rajdip
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
Decision Science Community
 
From no services to Microservices
From no services to MicroservicesFrom no services to Microservices
From no services to Microservices
João Cavalheiro
 
Deployability
DeployabilityDeployability
Deployability
Len Bass
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
Emiliano Pecis
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
Rick Hightower
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
Andrew Siemer
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
MohammedShahid562503
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro services
Aidan Casey
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro services
Aidan Casey
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
Newt Global Consulting LLC
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)
Ahmed Misbah
 
Microservices
MicroservicesMicroservices
Microservices
Prasanna Venkatesan
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
PINGXIONG3
 
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
Richard Hudson
 

Similar to QCon 2015 - Microservices Track Notes (20)

Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservices vs monolithics betabeers
Microservices vs monolithics   betabeersMicroservices vs monolithics   betabeers
Microservices vs monolithics betabeers
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
What are microservices
What are microservicesWhat are microservices
What are microservices
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
From no services to Microservices
From no services to MicroservicesFrom no services to Microservices
From no services to Microservices
 
Deployability
DeployabilityDeployability
Deployability
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro services
 
The 7 deadly sins of micro services
The 7 deadly sins of micro servicesThe 7 deadly sins of micro services
The 7 deadly sins of micro services
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)
 
Microservices
MicroservicesMicroservices
Microservices
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
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
 

Recently uploaded

Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 

Recently uploaded (20)

Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 

QCon 2015 - Microservices Track Notes

  • 1. QCon NY 2015 Microservices Track Session Notes ! Abdul Munda - @amunda http://www.sortedarray.com
  • 2. 1. KeyNote: Micro Chips to Microservices By Mary Poppendieck
  • 3. KeyNote: Micro Chips to Microservices • 1945 - 2015 - We have increased the calc/sec by 1 Trillion • Hardware mainly scaled by miniaturization & abstraction like plug n play. • Software doesn’t really scale by abstraction e.g. the software we write today hasn’t abstracted much after high level language e.g. fortran and HTML are in the same generation. • Software scales by federation and wide participation • Wide participation means lots of different people bring their knowledge to find out different things and contribute to knowledge base. • Federated architecture means you can do stuff like create your own website, app and you can do whatever you want individually without effecting other parts of internet or app ecosystem and then bring your learning and share with rest of the world. • So if you are thinking of scaling something think about how can you federate and then share the learnings from each federation.
  • 4. KeyNote: Micro Chips to Microservices One of the ways to do this federated architecture is Micro- services and here are few points about it: 1. Has to be independently Deployable (fundamental value) 2. End-to-end responsibility of one single small team 3. No Central Database 4. Extensive Automation & Monitoring 5. Smart Versioning Services
  • 5. KeyNote: Micro Chips to Microservices Checklist before you start embarking on Micro-services track 1. Is it right for the domain? (usually very high volumes) 2. Do you understand the domain boundaries? (refactoring across services is very hard) 3. Can you maintain strict discipline? (interaction restricted to hardened interfaces) 4. Can you have high situational awareness about your systems? i.e. consumer knows that producer before deployment that interfaces are same not only relying on Mocks
  • 6. KeyNote: Micro Chips to Microservices Strategies for Monolith • Start packing related code into a container • For complex system, large releases can cause lot of instability. So you should do small continuous deployment • Deployment is different from releases, switching feature flags on and off is considered releasing
  • 8. Netflix’s Viewing Data Microservices • Netflix Scale • 62 Million members • 50+ counteries • 3 Billion Hours/Month • 1000+ device types • 37% Downstream bandwidth of N/A
  • 9. Netflix’s Viewing Data Microservices • Viewing Data Services need to calculate • Who, What, When, Where (physical and device) and how long they watched • How does this benefits users? • How does this benefit Users? • Pickup where you left off (switch devices) • MyActivity timeline • Helps Netflix see the quality like what was buffer speed etc. • Helps them subscription purchase e.g. they figured out that Adam Sandler does well in all the regions, so they made a deal with him
  • 10. Netflix’s Viewing Data Microservices High volume events like Hearbeats events and Read Last events both going to stateful tier System Architecture before Microservices
  • 11. Netflix’s Viewing Data Microservices System Architecture after Microservices
  • 12. Netflix’s Viewing Data Microservices System Architecture after Microservices (implementation)
  • 13. Netflix’s Viewing Data Microservices • Why change? (assume all this risk and cost) • Current System would have worked really great for next few years, monolith are not a bad thing and many times its actually great • They wanted to do before the imminent need so they can do mindfully • They wanted to work in a mode where there is no maintenance mode • Rapid growth due to Virtuous Cycle: Viewing - Improved Personalization - Better Experience - more viewing • Stateful instance count remain same 24/7 regardless of loads
  • 14. Netflix’s Viewing Data Microservices • How did we do that? • Shadow Testing • All the request goes through both the systems legacy and micro services but only the legacy system serve the users. • This helps not only making sure that its operating correctly but also that its working properly at scale • Traffic Dial • To do this they needed to make sure they have a consistsnt view of the world. So they sacrificed bit of pure microservice system and removed persistent from services and pointed them to old legacy system • 1% of the traffic was directly hitting some of the service then dial up from there to 100%
  • 15. Netflix’s Viewing Data Microservices Key Points • Devour the whale a bite at a time • Design for idempotency so it can replayed (using something like CQRS/Event Sourcing) • System architectures are throw-away artefacts, useful for only a limited time. Design for 10X plan to rewrite before 100x - System Arc is a throw away artifact.
  • 16. Engineering for Scale at VMTurbo Sylvia Isler - VP of Architecture
  • 17. Engineering for Scale at VMTurbo • Who are VM Turbo? • VMTurbo is a data center control system and does automatic resource allocation • They do that by creating marketplace between workload (applications, VMs, containers) as buyers and CPU, storage, fabric as sellers • Why not architecture from microservices from beginning? • Monolith allows you to explore the complexity of a system and its component boundaries • Martin fowler said in a recent article how you shouldn’t start with microservices in the beginning to get understanding of your domain
  • 18. Engineering for Scale at VMTurbo
  • 19. Engineering for Scale at VMTurbo • Problems • Release cycle for 6 months with interim patches • No metrics captured • Monolothic team because of monolithic architecture • Monolothic Architecture caused scalability, concurrency and tangled interface between components. • Catalysts for Change • Growth in customer base • More Large Environments • Geographical Spread of Team • More Frequent Deleviries
  • 20. Engineering for Scale at VMTurbo • Steps to create first service • Clean up the interface between Mediation (service to be created) and the Analysis component • Separate Mediation component completely from Monolith • Publish APIs - so anyone can write mediation component and works with VMTurbo Analysis
  • 21. Microservices and the art of taming the dependency hell Michael Bryzek Cofounder & ex-CTO Gilt @mbryzek mbryzek@alum.mit.edu
  • 22. Microservices and the art of taming the dependency hell • Gilt which is an organization with 1500 git repos and over 150 micorservices. Its about 1000 people with 150+ people in tech • Gilt started with very basic Rails monolithic architecture • They started with excessive caching but soon they realize that its very hard to reason about how adding any new feature will effect in realtime. • They started minimizing caching but depending on very fast data store
  • 23. Microservices and the art of taming the dependency hell • They started extracting the highly available parts of the application and put them behind service. Few services they extracted were: • User Service with 10K RPS with millions of users. They went for mongoDB to give absolute consistency instead of eventual consistency. • Catalog Service with 5K RPS and used relational DB • Inventory Service with 10K RPS+ with guarantee never oversold and used HBase. • Cart Service with low throughput and used Dynamo DB • Any significant features they add start becoming the service.
  • 24. Microservices and the art of taming the dependency hell • What are the problems once they started adding services? • Builds get larger and slower - You keep depending on services and start adding client libraries for services now you have world downloaded • Create new client libraries that are each just a little bit different • Produce custom APIs instead of consistent APIs that reduce interoperability • Increase amount of boilerplate code • Reduce code quality; slow down development • And Eventually you will see a production error
  • 25. Microservices and the art of taming the dependency hell • To minimize all those pains they followed guiding principle called The Open Source Way. • This means making the way we build propriety software similar to the way open source is done. In the following areas: • How do they provide documentation? • How does the library integrates with other apps? • How do i get support/contribute/report bugs? • public or private is a detail.
  • 26. Microservices and the art of taming the dependency hell Some specific strategies to avoid these problems and manage dependencies are 1. Tooling Matters • Anyone who has succeeded with Microservices is they have used extensive tooling to automate stuff. 2. API Design must be first class • Design of your API and the data structures are hardest to change afterwards. • You can tools like Protobufs, thrift, avro, swagger 2.0 and apidoc to make schema as your first class and makes it very easy for consumer to knows what data its getting. • Schema first design is the most important concept to avoid the dependency hell.
  • 27. Microservices and the art of taming the dependency hell 3. Accurate Documentation • Documentation should be of the similar to the amount needed for an open source project to be successful. • Using semantic versioning to point out if there is any breaking changes. • Accurate documentation can be achieved by producing the documentation in software process 4. Generating Client Side Libraries • Makes it easy to test • Reduces lot of boilerplate • Consistent naming • You can minimize the external dependencies
  • 28. Microservices and the art of taming the dependency hell 5. Backward Compatibility • Renaming just doesn’t work. • Introduce new model, migrate and deprecate all the old stuff 6. Forward Compatibility • Your service shouldn’t blow up if new field is added or seen by the system. • Careful of enums, what happens when you add a value in the future. • Don’t throw exception if new field shows up
  • 29. Scaling Stack Overflow: Keeping it Vertical by Obsessing Over Performance (case for monoliths) David Fullerton @df07
  • 30. Scaling Stack Overflow: Keeping it Vertical by Obsessing Over Performance • 4 Billion Requests/Month, 3K requests/s, 45 M uniques/month, 8K qs/month and 500,000 page-views/month • 34 Devs, 6 sysadmins, 6 designers, 75% remote • Their Architecture • 2 HAProxy - one failover • 9 web servers • 4 SQL Servers (Vertical scaling - 2 clusters) • 2 Redis Servers • 3 Elastic Servers • 3 Tag Engine
  • 31. Scaling Stack Overflow: Keeping it Vertical by Obsessing Over Performance
  • 32. Scaling Stack Overflow: Keeping it Vertical by Obsessing Over Performance • It’s what they called Monolith Plus most of the stuff happens in web tier and DB. • It scales really good for them. • All of their web servers and SQL servers are running under 10% CPU consumption and majority of the RAM consumption is under 70% • Deploys all day everyday, deploy through web tier in 3 minutes. This gives them huge ability to test on production since they can roll out so fast • Testing on users, few unit test and integration test not lot of automated tests. • Big believer in feature flags.
  • 33. Scaling Stack Overflow: Keeping it Vertical by Obsessing Over Performance ! • This works specifically for stackoverflow because • Read-heavy load centered on one page. • Forgiving community — they released the bug with alert on the homepage • How do they work? • Start with what they know • Measure it live • Fix the slow - because performance is a feature • Use excessive caching • Optimizing for performance instead of scaling out
  • 34. Scaling Stack Overflow: Keeping it Vertical by Obsessing Over Performance “my primary guideline would be don’t even consider micro service unless you have a system that’s too complex to manage as a monolith” — Martin Fowler
  • 35. The Seven Deadly Sins of Microservices Daniel Bryant @danielbryantuk
  • 36. Seven Deadly Sins of Microservices 1. Lust - using the latest and greatest • Choose Boring Technology • Use Matt Raibel’s comparison framework to add objectivity 2. Gluttony - Excessive communication protocols • Choose initially only one Sync (e.g. JSON over HTTP) and one Async ( eg. RabbitMQ) protocol 3. Greed - All your Service are belong to us • Don’t underestimate the effect it will happen on your organization not necessarily only technical side • Few good books - The Connected Company, The Modern Firm, On Chnage Management 4. Sloth - Creating a distributed monolith • If you can’t deploy services independently then you are not doing micro services
  • 37. Seven Deadly Sins of Microservices 5. Wrath - Blowing up when bad things happen • Putting the chaos monkey is really useful to put in your deployment pipeline • Read up on Release It! 6. Envy - The shared single domain fallacy • One model breaks encapsulation and introduces coupiing • Know DDD 7. Pride - Testing the world of transience • There is a mindset change in how you are testing • Invest in your Build Pipeline • Use Serenity BDD • Wiremock - testing in jenkins fault tolerence • Testing in production? - Netflix and Gilt - once you reach at certain level of services only way to test is in production
  • 38. Summary • Know your domains very well before you start creating microservices because refactoring across services is very hard • You are not doing microservice if you are not independently deploying • Make API design first class by using tools like swagger and apidoc • Architect for failure and build the failure testing in your build pipeline by using tools like Wiremock • Testing is really hard because its impossible to have the full view of the system all the time. So have to invest in tools, API documentation and build pipeline to better gauge your system. • Use generated clients to avoid tons of boilerplate • Don’t borrow other people problems, figure out your own pain points. • Microservices have a hefty tax and it usually worth it if the team size, complexity or the scale of the app is growing • Monoloiths maybe the best architecture in certain domains eg. Stackoverflow