Engineering the Future of Software
29–31 Oct 2018: Tutorials & Conference
31 Oct–1 Nov 2018: Training
London, UK

Learning RESTful microservices from the ground up

Mike Amundsen (Amundsen.com, Inc.)
13:3017:00 Wednesday, 31 October 2018
Application architecture
Location: Park Suite (St. James / Regents)
Secondary topics:  Best Practice

Who is this presentation for?

  • Service designers, software architects, and developers

Prerequisite knowledge

  • A working knowledge of Node.js and implementing services on the web
  • Familiarity with microservices

Materials or downloads needed in advance

  • A laptop with Node.js and the text editor and coding environment of your choice installed
  • A GitHub account
  • A Heroku account (optional)

What you'll learn

  • Understand the role REST can play in microservice design, the importance of stable interfaces in front of changing code, and the value and challenges of supporting runtime discovery
  • Learn how to design for emergent adaptability without adding needless complexity

Description

A RESTful approach to microservices can improve the stability and resilience of services, reduce the need for extensive changes and redeployment when the domain model changes, and greatly increase the flexibility of individual services, including the ability to automatically work with other newly discovered services. Mike Amundsen walks you through building adaptable microservices that take advantage of the features of REST, including statelessness, self-description, and using hypermedia to discover and modify application state. You’ll learn how to design services that advertise themselves to the network, discover their own “partner” services, and can adapt to subtle changes to existing services without relying only on recode-and-redeploy patterns for maintaining overall system operation.

Outline

What are RESTful microservices?

  • Microservices
  • RESTful-ness
  • A new kind of service
  • Hands-on exercise: Analysis

Models, messages, and vocabularies

  • Models on the inside
  • Messages on the outside
  • Vocabularies everywhere
  • Hands-on exercise: Design

Three types of microservices

  • Stateless
  • Persistence
  • Aggregator
  • Hands-on exercise: Implementation

Six stability patterns

  • Timeout
  • Circuit breaker
  • Bulkhead
  • Steady state
  • Failfast
  • Handshaking
  • Hands-on exercise: Stability

Runtime service infrastructure

  • Advertising
  • Discovery
  • Health
  • Hands-on exercise: Discovery

An adaptable system

  • Evolvable providers
  • Adaptable consumers
  • The power of numbers
  • Hands-on exercise: Adaptation

Wrap-up

  • A RESTful Approach
  • Message-oriented implementation
  • Discovery constraints
  • Emergent adaptability
Photo of Mike Amundsen

Mike Amundsen

Amundsen.com, Inc.

An internationally known author and speaker, Mike Amundsen travels the world consulting and talking about network architecture, Web development, and intersection of technology and society. He works with companies large and small to help them capitalize on the opportunities APIs and Microservices present for both consumers and the enterprise.

Amundsen has authored numerous books and papers. He contributed to the O’Reilly Media book, “Continuous API Management” (2018). His “RESTful Web Clients”, was published by O’Reilly in February 2017 and he co-authored “Microservice Architecture” (June 2016). Amundsen’s 2013 collaboration with Leonard Richardson “RESTful Web APIs” and his 2011 book, “Building Hypermedia APIs with HTML5 and Node”, are common references for building adaptable Web applications. His latest book “Design and Build Great APIs” for Pragmatic Publishing is scheduled for release in early 2019.