A Microservices Tutorial

Dan Holloran April 10, 2019

DevOps
A Microservices Tutorial Blog Post Banner Image

Microservices architecture is an approach to breaking down large software projects into smaller, independent modules that communicate with each other via APIs. It gives developers the liberty to independently develop and deploy services faster and more reliably.

A tutorial for microservices architecture

Microservices and containerized applications are changing the way teams approach software development and IT operations. Teams of all sizes are leveraging microservices to deploy new features and products faster while improving visibility into workflows. By breaking down applications and infrastructure into microservices and operating in smaller DevOps-oriented units, the team can continuously deliver reliable features quickly.

While monitoring and alerting practices lead to more reliable microservices, microservices architecture can also lead to more robust software and improved incident response. Leveraging microservices can lead to deeper exposure to different parts of the greater system and isolate potential issues from affecting the entire system. Then, with collaboration and improved workflow visibility, you’ll build a better cross-team understanding of how your systems work together.

Microservices will allow you to build new features and fix issues in your system faster. In this tutorial, we’ve put together a list of organizations that have implemented microservices to improve efficiency and create better customer experiences. Then, we’ll walk you through the exact steps required for the successful implementation of a microservices architecture.

Microservices use cases

See how Walmart reinvigorated its failing architecture with microservices

Walmart re-platformed to a microservices architecture with the intent to:

  • Achieve 100% availability
  • Reduce costs
  • Scale to 4 billion people & 25+ million apps by 2020

Tutorial for Walmart before and after microservices implementation (Source: Apiumhub)

How to Make On-Call Suck Less

Netflix implemented microservices architecture to improve availability and resilience

Netflix required an architecture that allowed them to:

  • Be up and running 24/7
  • Scale rapidly to the next level
  • Optimize the speed of their services

Tutorial for Netflix before and after microservices implementation (Source: SmartBear)

At the end of 2016, Netflix serviced 93.8 million global users, and users streamed more than 1 billion hours of movies and shows per week in 2017.

Uber used microservices architecture to keep up with booming customer demand

Uber’s migration to microservices had the goal of scaling quickly enough to:

  • Handle growing traffic
  • Add new features quickly and easily
  • Auto-adapt to the organization’s growth

Tutorial for Uber before and after microservices implementation (Source: DZone)

How to successfully implement your own microservices architecture

1) Define the breadth of functionality of your microservices:

  • Partition the services along logical functionality lines

  • Mirror the development organization’s structure

  • Minimize a service to the amount that it could be re-implemented in a two-week period

2) Build APIs to let your services talk to one another

3) Manage your traffic loads – implement auto-scaling

4) Offload your data

  • Migrate user-specific data off of service instances into a shared, redundant storage system (accessible from all service instances)

  • Insert a shared, memory-based cache system between a given service and the associated storage

5) Constantly monitor your microservices applications

Keep in mind that microservices implementation won’t solve all your problems. You need to keep a mindset of continuous improvement – keep identifying pain points in your development process, your monitoring and alerting systems and continue to prepare yourself for incident response. Problems are inevitable as teams and services scale. And while microservices can help you move faster, they’re not an end-all-be-all solution to service delivery speed and reliability.

Incidents are bound to occur as DevOps and IT teams implement a microservices architecture and develop an agile CI/CD pipeline. Try your own 14-day free trial or request a free personalized demo of VictorOps to see how you can make on-call responsibilities suck less by adding visibility and speed to software development and incident response.

Ready to get started?

Let us help you make on-call suck less.