implementing microservices Remmelt Pit @remmelt_ remmelt@info.nl
since 2003
12,000 auctions
~2M unique visitors/month
modular site & admin & API
trouble! scalability
trouble! stability
basically we wanted to go faster
Rapid Provisioning Basic Monitoring Rapid App Deploys DevOps Culture — Martin Fowler
tech challenge #1 getting started
RTFM
RTFM WTFM
acceptance criteria: API endpoint: GET /highestbid → json Events: BidAcceptedEvent { ..., "bid_amount":12.34, ... }
tech challenge #2 monolith first?
distributed monolith — Tareq Abedrabbo
tech challenge #3 building things
#! /bin/sh IMAGE=bvaauctions/auction-query TAG=$(git rev-parse --short HEAD) docker run --rm \ -v "$PWD":/usr/src/project \ -w /usr/src/project \ -v "$HOME"/.m2:/root/.m2 \ maven:3.3-jdk-8 \ mvn -B clean verify docker build -t $IMAGE:$TAG . docker push $IMAGE:$TAG
tech challenge #4 monitoring
tech challenge #5 hidden complexity
ls -l | grep "str" | wc -l
services with the guts on the outside — Gartner
tech challenges 1. getting started → start small 2. monolith first? → iterate quickly 3. building things → automate 4. monitoring → aggregate & visualise 5. hidden complexity → be aware
TODO —chaos monkey —failure modes (simulate slow network) —mesos/coreos/kubernetes? —kpi monitoring —bulkheads, circuit breakers —e2e testing with fake data in production
Q?
Recommend
More recommend