Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Implementando una Arquitectura de Microservicios

Implementando una Arquitectura de Microservicios

Microservicios es una aproximacion de desarrollo en pequeños servicios, independientes uno del otro, que pueden ejecutarse en procesos aislados y que se comunican mediante un mecanismo ligero basado en api http

Avatar for Federico Lozada Mosto

Federico Lozada Mosto

June 13, 2015
Tweet

More Decks by Federico Lozada Mosto

Other Decks in Technology

Transcript

  1. $ cd /var/www $ tree MyProject -L 2 MyProject ├──

    app/ ├── src/ │ ├── Bundle1/ │ ├── Bundle2/ │ ├── Bundle3/ │ ├── ... │ ├── BundleN/ ├── web/ ├── vendor/ └── ... Arquitectura monolítica
  2. Public API Microservicios Payment Gateway E-commerce Stock CRM integration Notification

    Logistic Reports Auth Servicio 1 Servicio 2 Servicio 3 Servicio 4 Servicio 5 Servicio 6 Servicio 7 Servicio 8
  3. 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. - Martin fowler http://martinfowler.com/articles/microservices.html
  4. Principios SOLID ✓ Single responsability ✓ Liskov Substitution ✓ Interface

    Segregation ✓ Dependency inversion ✓ HATEOAS ✓ HAL ✓ JSON-API Automagic service discovery
  5. DB distribuidas ✓ Cada servicio con su DB ✓ NO

    acoplar servicios por DB ✓ Sincronización de datos ✓ Consistencia de datos DB distribuidas
  6. APIs documentadas ✓ RAML ✓ Swagger ✓ Restfull ✓ AMQP

    (ZeroMQ, RabbitMQ, etc) ✓ NO ESB Comunidación sencilla ✓ Api Blueprint ✓ SNS/SQS ✓ Redis
  7. Versionado ✓ ¿Se versiona por servicio? ✓ NO acoplar servicios

    por DB ✓ Un componente puede ser un servicio Componentes Productos ✓ Productos en vez de proyectos
  8. ✓ Centralizar logs (Loggly, Logstash) ✓ Centralizar monitoreo (Zabix, New

    Relic) Monitoreo ✓ 1 servidor → N servidores / containers ✓ 1 app → N servicos ✓ Troubleshooting Monitoreo
  9. ✓ 1 deploy → N deploy ✓ AWS ✓ Vagrant

    / Docker ✓ Puppet / Chef Automatizar deploy Testing ✓ ¿Como probar enteramente la solución?
  10. BundleA Data Access BundleB UX Lógica API Rest BundleC BundleA

    Data Access BundleB UX Lógica API Rest ServicioC
  11. Thanks! FEDERICO LOZADA MOSTO TW: @mostofreddy Web: mostofreddy.com.ar FB: mostofreddy

    In: ar.linkedin.com/in/federicolozadamosto Git: mostofreddy