Microservices at Amazon | Munns


Chris Munns (Amazon) Microservices at Amazon; In I Love APIs 2015 Conference; 2015; 42 slides.

Mentions

  • Is it just a fad?
    tl;dr → yes, there will be a new shiny thing out in a fortnight, in a year; but that doesn’t matter.
  • Amazon, AWS
    • Apollo
    • Pipeline
    • CodePipeline
    • Code Deploy
  • Not treated
    • Latency
    • Debuggability (testability)
    • Failure models
    • again, what does one do with the spaghetti as it manifests in nested nasty HTTP cascades instead of multithreaded nested nasty call chains?

Architecture

Application assumptions

  • Infinite, independent, query flow.
  • Load Balancing
    • Global Load Balancing; i.e. DNS & CDN
    • (in colo) Load Balancing
  • API Gateway, a universal broker
  • Caching
    (in colo) Caching
  • Monitoring
    • log everything
    • dashboard everything
  • Origin Servers
  • Lambda Architecture
    Lambda Service of AWS
  • Consistency
    • Basic-Availability, Soft State, Eventual Consistency (BASE)
    • Consistency, Availability, Partition-Tolerance (CAP)

Theory

Definitional & explanatory; alphabetical.

Apologia

  • Phil Calçado; How we ended up with microservices; In His Blog; 2015-09-09.
    tl;dr

    • Ruby on Rails
    • monolith was too hard to work with
    • more features were needed
    • business success occurred (oxygen to allow a rebuild)
    • The Next SoundCloud
    • refactoring was commissioned
    • refactoring actually occurred
    • Cake!
  • Bob Rubbart (Oracle); Microservices and SOA; In Their Blog; 2015-03.
    Teaser: Similarities, differences and were we go from here.
    Bob Rhubart is community manager of Oracle Technology Network (OTN), he hosts on ArchBeat, a podcast & tweetshow.
    tl;dr → sure, Microservices is “the same” as SOA; it is SOA “done right” and suitable for <buzz>Internet of Things (IoT)</buzz>
  • The two pizza teams, In Some Blog; WHEN?
  • You build it, you run it; In Some Blog promoting Agile; WHEN?
    tl;dr → DevOps, everyone on call, no QA, launch & react.

Testimonials

Testaments to the popularity of the fad

Gilt
“From Monolith Ruby App to Distributed Scala Micro-Services” NYC Tech Talks
Nike
“Nike’s Journey to Microservices” – AWS Re:Invent 2014
SoundCloud
”Building Products at SoundCloud—Part III: Microservices in Scala and Finagle”
Capital One
“Lack Of Legacy Lets Capital One Build Nimble Infrastructure” – ThePlatform.net
Hailo
“A Journey into Microservices” – sudo.hailoapp.com

Tooling

Netflix
Some tools, at GitHub
Airbnb
SmartStack, at Their Site
Twitter
Mesos, at Apache
LinkedIn
Rest.li, at GitHub

Organization Design

  • Job Families
    the Roles & Responsibilities

    • SDE → Software Development Engineer
    • PM → Product Manager
    • TPM → Technical Program Manager
    • SE → Service Engineer
    • SDET → Software Development Engineer, Testing (a diminutive)
  • Management Theory
    same as it ever was

    Newspeak MBA-Speak
    Culture People
    Practices Processes
    Tools Technology

Microservices SOA
Substantial function requires an RPC, a network call Substantial function requires an RPC, a network call.
Many very small components Fewer more sophisticated components
Business logic lives inside a single service domain Business logic can live across multiple domains
Wire protocol must be HTTP JSON or (less preferably) XML Wire protocol is the Enterprise Service BUS (ESB), as a layer between services
(RPC) type API driven with client-deployed SDKs/Library. Middleware (?)

Actualities

Via: backfill.

Comments are closed.