Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
The Other Kind of
Distributed System
Rafael Schloming
rhs@datawire.io
● Founded in 2014
● Spoken with dozens of organizations that have adopted
microservices at scale
● Just hosted our Microse...
Some problems are obviously
distributed
● Streaming video (Netflix)
● Dispatching drivers (Uber)
● Global pub/sub (Twitter...
What if the problem isn’t
inherently distributed...
● Pet Shop
● CMS
● ...
But you need 1000 developers all working on the...
This is the world we live in today
● Software is eating the world...
● Businesses live or die on their ability to quickly ...
Microservices (Continuously
Herding Distributed Cats)
Distributed Development
Distributed
Systems
M
icroservices
Continuou...
Continuous Uptime Distributed
Systems
● Mechanical Failure
● Distance
The system needs to continue to function despite the...
Distributed Development
● Coordination is impossible
● Unintended consequences cause bugs
Small cross functional teams ope...
Distributed Development of Cont.
Uptime Distributed Systems
● Humans are the primary source of failures
● Coordination is ...
Microservices Methodology
● Make it easier to predict consequences of change
○ Smaller Changes
○ Frequent Deploys
○ Strong...
Methodology -> Tooling
● Change in unit of abstraction: library -> service
● Abstractions are now expressed as contracts b...
Dynamic languages in
microservices
● Yesterday:
○ Refactor rails/django/flask/nodejs monolith -> Java
● Today:
○ Extend ra...
What’s needed for
microservices?
● Quickly apply/rollback a small change
○ DevOps best practices (e.g., CD)
● Service Isol...
Building service isolation & avail
● Service isolation
○ timeouts
○ defaults
○ circuit breakers
● Service availability
○ d...
Datawire Connect: isolation and
availability across services
● 100% Open Source, Apache Software License
● Quark IDL
○ Des...
Demo
Summary
● Microservices requires service isolation and
availability
● Building this from scratch is hard, but we
make it e...
Próxima SlideShare
Cargando en…5
×
Próximo SlideShare
Progress next iot_pelegri
Siguiente
Descargar para leer sin conexión y ver en pantalla completa.

3

Compartir

The Other Kind of Distributed System

Descargar para leer sin conexión

Developers are already used to thinking about the challenges of dividing a single large task into many smaller tasks – we might call this distributed computation. Today, though, the challenge of dividing development into many smaller pieces is arguably more critical: we understand distributed computation very well, but we don’t understand distributed development as well as we could. This talk will address the challenges of distributed development and how organizations can think about practical solutions.

Datawire has been working on a system called Datawire Connect to address this challenge by giving developers the tools they need to effectively use microservices in their organizations without building their own architecture from scratch.

The Other Kind of Distributed System

  1. 1. The Other Kind of Distributed System Rafael Schloming rhs@datawire.io
  2. 2. ● Founded in 2014 ● Spoken with dozens of organizations that have adopted microservices at scale ● Just hosted our Microservices Practitioner Summit with speakers from Uber, Netflix, Facebook, Yelp, HubSpot, New Relic, and others -- check out videos online at microservices.com ● NodeJS is ubiquitous as a microservices framework as part of these orgs
  3. 3. Some problems are obviously distributed ● Streaming video (Netflix) ● Dispatching drivers (Uber) ● Global pub/sub (Twitter) The nature of the problem demands a distributed solution.
  4. 4. What if the problem isn’t inherently distributed... ● Pet Shop ● CMS ● ... But you need 1000 developers all working on the same codebase.
  5. 5. This is the world we live in today ● Software is eating the world... ● Businesses live or die on their ability to quickly and continuously deliver and adapt massive software platforms Systems are becoming distributed not (only) because of the nature of the problem, but because of the nature of those solving it.
  6. 6. Microservices (Continuously Herding Distributed Cats) Distributed Development Distributed Systems M icroservices Continuous Uptime
  7. 7. Continuous Uptime Distributed Systems ● Mechanical Failure ● Distance The system needs to continue to function despite the failure of any individual component. The system needs to continue to function despite stale or unavailable information. ● Challenging, but many well known patterns exist
  8. 8. Distributed Development ● Coordination is impossible ● Unintended consequences cause bugs Small cross functional teams operating independently to deliver discrete parts that function together as a whole. ● Well defined APIs between parts ● Strong versioning discipline ● Strict overarching release cadence ● Strong testing discipline
  9. 9. Distributed Development of Cont. Uptime Distributed Systems ● Humans are the primary source of failures ● Coordination is still impossible ● APIs are distorted by distance ● Dynamic factors are difficult to simulate ● Testing is a harder This changes the way we work. ● This requires a new methodology and a new set of tools.
  10. 10. Microservices Methodology ● Make it easier to predict consequences of change ○ Smaller Changes ○ Frequent Deploys ○ Stronger versioning ○ Explicit Contracts ● Make it easier to recover from unintended consequence ○ Visibility ○ Rollbacks/Fixes ○ Isolation
  11. 11. Methodology -> Tooling ● Change in unit of abstraction: library -> service ● Abstractions are now expressed as contracts between services
  12. 12. Dynamic languages in microservices ● Yesterday: ○ Refactor rails/django/flask/nodejs monolith -> Java ● Today: ○ Extend rails/django/flask/nodejs monolith with polyglot services ● Shift in language balance ○ Strong typing within a language doesn’t help as much
  13. 13. What’s needed for microservices? ● Quickly apply/rollback a small change ○ DevOps best practices (e.g., CD) ● Service Isolation ● Service Availability
  14. 14. Building service isolation & avail ● Service isolation ○ timeouts ○ defaults ○ circuit breakers ● Service availability ○ dynamic load balancing ○ back pressure Needs to be deployed in every service
  15. 15. Datawire Connect: isolation and availability across services ● 100% Open Source, Apache Software License ● Quark IDL ○ Describe your API ● Datawire Connect library automatically integrates service isolation and availability ○ client side load balancing ○ timeouts ○ circuit breakers ○ backpressure (coming soon) ○ context propagation (coming soon) ○ rpc, async, eventing ● Quark DSL permits extending the DC library with additional behaviors ● Support for NodeJS, Python, Java, (Ruby coming soon)
  16. 16. Demo
  17. 17. Summary ● Microservices requires service isolation and availability ● Building this from scratch is hard, but we make it easy ○ https://github.com/datawire/datawire-connect ○ Give us feedback (GitHub, Slack, email) ● Lots more information on microservices online at microservices.com, including videos ● rhs@datawire.io Distributed Development Distributed Systems M icroservices Continuous Uptime
  • pelegri

    Mar. 29, 2016
  • WmTWood

    Mar. 29, 2016
  • chandler88

    Mar. 21, 2016

Developers are already used to thinking about the challenges of dividing a single large task into many smaller tasks – we might call this distributed computation. Today, though, the challenge of dividing development into many smaller pieces is arguably more critical: we understand distributed computation very well, but we don’t understand distributed development as well as we could. This talk will address the challenges of distributed development and how organizations can think about practical solutions. Datawire has been working on a system called Datawire Connect to address this challenge by giving developers the tools they need to effectively use microservices in their organizations without building their own architecture from scratch.

Vistas

Total de vistas

2.224

En Slideshare

0

De embebidos

0

Número de embebidos

590

Acciones

Descargas

18

Compartidos

0

Comentarios

0

Me gusta

3

×