Microservices

Jax ArcSig Jan 2015

Current Enterprise Apps

 

  • Monolithic
  • Persistent Data Store (SQL, Mongo, Redis)
  • Scalable through web farm
  • Using VMs
  • Load balanced

Monolithic apps

  • Often has a single executable
  • Any changes require redeploying everything
  • Executes all domain logic

Martin Fowler

http://martinfowler.com/articles/microservices.html

Fred George

Characteristics of Micro Services

  • Can have dozens of services, if not hundreds
  • Tend to be very small, maybe just 100 lines of code
  • They can have their own data, Encapsulate
  • Very lightweight
  • Take advantage system idle time
  • Deploy independently  

Pitfalls of Microservices

  • More apps to keep track of
  • Need monitoring
  • Should log events
  • Encourage the use of Async programming

Advantages of Microservices

  • Deployment simpler
  • Deploy independently
  • Rollback if problems
  • Easier to QA
  • Real Components

Node.js

  • Don't have to use Node.js
  • Node single threaded
  • Event based Asynchronous IO
  • Great support small servers, WebSockets, Sockets,
    HTTP, HTTPS and other messaging
  • Clustering API

Messaging

  • ServiceBus
  • Event based processing
  • Publish and Subscribe
  • MQTT/AMQP
  • 0MQ (ZeroMQ)
  • RabbitMQ
  • MSMQ/NServiceBus

Docker

Platforms used

  • Node.js/Seneca
  • Scala/Akka
  • Java/Jetty

Questions

Contact Me

  • David Fekke at gmail dot com
  • Twitter @davidfekke
  • Skype: davidfekke