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