effective developers and happy ops engineers 2

14
Our journey to micro services Where did we end up

Upload: mai-skou-wihlborg

Post on 14-Apr-2017

271 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Effective developers and happy ops engineers 2

Our journey to micro services

Where did we end up

Page 2: Effective developers and happy ops engineers 2

Me

• Software architect– Been working in the industry for the past 12y– working for ebay the past 4 years

2

Page 3: Effective developers and happy ops engineers 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

Page 4: Effective developers and happy ops engineers 2

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

Page 5: Effective developers and happy ops engineers 2

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

Page 6: Effective developers and happy ops engineers 2

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

Page 7: Effective developers and happy ops engineers 2

Monolith – Our platforms

7

Page 8: Effective developers and happy ops engineers 2

Microservices – many monoliths?

8

Page 9: Effective developers and happy ops engineers 2

Microservices – Where did we start

9

Shared Service

Page 10: Effective developers and happy ops engineers 2

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

Page 11: Effective developers and happy ops engineers 2

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

Page 12: Effective developers and happy ops engineers 2

CODE!

Owin middleware components

12

Page 13: Effective developers and happy ops engineers 2

Owin middleware

13

• Vanilla • Intermingled • Middleware, seperations of concerns

Page 14: Effective developers and happy ops engineers 2

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