Our journey to micro services
Where did we end up
Me
• Software architect– Been working in the industry for the past 12y– working for ebay the past 4 years
2
Microservices at ebay classified group dk
• We started 2 years ago with microservices– 4 platforms– We needed smaller deployment, lower risk– All deployment/scripts handled by siteops
• Now we have– 80 deployable projects managed in octopus – with 2-5 microservices within each
3
Monolith vs microservice
• Monolith – a term for a big system– usually runs considerable amounts of our business– battle tested– big and ugly codebase
• Microservice– Small independent deployable unit– Implements a few features from a particular domain– Understandable by a single developerhttp://dev.otto.de/2015/09/30/on-monoliths-and-microservices/
4
Monolith vs microservice
• MonolithFirst– you shouldn't start a new project with microservices, – Source: http://martinfowler.com/bliki/MonolithFirst.html
• Don’t start with a monolith– … when your goal is a microservices architecture– Source: http://martinfowler.com/articles/dont-start-monolith.html
5
Monolith – The developer comfort zone
6
Public string buisnessLogic(input){return ”Hello ” + input;
}
Deploym
ent
AuthenticationAuthrization
Configuration m
anagement
Caching Communication
Exception management Validation Logging and
Instrumentation
Build m
anagement
Infrastructure
Monolith – Our platforms
7
Microservices – many monoliths?
8
Microservices – Where did we start
9
Shared Service
Owin to framework glue
Owin – Handling cross cutting concerns
OWIN
Middlewares
Authentication
Caching
Logging
Validation
Exception management
Instrumentation
ASP.NET MVC ASP.NET API Nancy ServiceStack10
IIS / Selfhost
HttpRequest HttpResponse
Owin – doing conventions
• OWIN defines a standard interface between .NET web servers and web applications.
• The goal of the OWIN interface is to decouple server and application, encourage the development of simple modules for .NET web development, and,
• by being an open standard, stimulate the open source ecosystem of .NET web development tools.
• Source: owin.org
11
CODE!
Owin middleware components
12
Owin middleware
13
• Vanilla • Intermingled • Middleware, seperations of concerns
Microservices at ebay
• Octopus deploy– Configuration management– Deployment
• Build management– Teamcity
• Infrastructure– Operations is working on automation with puppet
14
Deploym
ent
Configuration m
anagement
Build m
anagement
Infrastructure
Top Related