• About Us
    • New York
  • Work
  • Capabilities
  • Careers
  • Technology
  • Blog
  • Contact Us
  • About Us
    • New York
  • Work
  • Capabilities
  • Careers
  • Technology
  • Blog
  • Contact Us
November 15, 2014

Microservices & Statefulness — Two Big Lessons from AWS re:Invent

Posted by Christopher Davis

Last week, I had the pleasure of attending AWS’s re:Invent conference. In addition to all the announcements of new services — some of which are extremely exciting — there were a multitude of great sessions from people doing amazing things on Amazon Web Services.

In the midst of all the specifics and huge architectures, I think there are two big lessons on the state of cloud computing today that we can take away.

1. Think Microservices

Nearly ever talk attended contained at least some mention of microservices. If the speaker didn’t mention the term directly, they still talked about the architectural decoupling that microservices entail.

Microservices mean decoupling parts of your application into their own small applications exposed by some sort of API. This allows each of those parts to scale independently. With a monolithic application, the only sort of scaling available to you is undifferentiated. Need to scale up? Copy the entire application and run it, in parallel, on another machine in parallel. Or throw more hardware at it and run the same application on a bigger server.

That’s lame. And it might not be cost effective. It’s possible that only a small part of the application is a hotspot and needs to scale. Microservices allow you to do that pull that hotspot out into its own application.

Microservices aren’t a panacea and come with their own set of challenges like service discovery, request fan out, service hotspots, bottlenecks, and reliability.

2. Statelessness

To go along with microservices it’s important to create applications that run in environments that aren’t snowflakes.

In other words: servers aren’t special. Servers should be have the capability to be created and destroyed as necessary. State is the enemy of that capability. State means that the server has to have some state of the world in order to run — it requires set up and it means that destroying a server is a major event.

Some examples:

  • Storing file uploads and downloads on the server
  • Keeping the database and other persistent storage on the same server
  • Requiring some sort of configuration outside of the application on the server outside of the normal environment

There’s a lot of tools available to do this. These range from obvious ones like offloading file storage to services like S3 or using a separate database server. There’s also some non obvious solutions like using containers, creating server specific packages (like RPM’s or .deb files), and building custom AMI’s for every deploy.

The takeaway here is to think carefully about how disposable your servers are. A resilient architecture is one that can respond to failures quickly, replace servers easily, and scale up and down as necessary. Managing state (and avoiding it?) is part of that architecture.

Interestingly, services like the new AWS lambda seem to reinforce this move away from statefulness.

Photo by Klearchos Kapoutsis.

Previous
Next

Latest White Papers

  • Shifting Plans for 2020 & Beyond
  • Game On: How Brands Can Log Into A Diverse Multi-Billion Dollar Industry
  • What CCPA Means For Brands
  • How Google is Improving Consumer Data Privacy
  • Ways to Prepare for the Cookieless Future
  • See all White Papers

Featured Posts

  • Ad Age Names PMG #1 Best Place to Work in 2021
  • Hindsight 2020 & Looking Ahead to 2021
  • Preparing for Streaming’s Growth & The Future of TV Buying
  • MediaPost Names PMG Independent Agency of the Year
  • PMG Client Portfolio Trends During Amazon Prime Day 2020

Categories

  • Consumer Insights
  • Content
  • Creative Design
  • Data Analytics
  • Development
  • Digital TV & Video
  • Ecommerce
  • Industry News
  • Local
  • Mobile
  • Paid Search
  • PMG Culture
  • Programmatic & Display
  • SEO
  • Social Media
  • Structured Data
Fort Worth

2845 West 7th Street
Fort Worth, TX 76107

Dallas

3102 Oak Lawn Avenue
Suite 650
Dallas, TX 75219

Austin

823 Congress Avenue
Suite 800
Austin, TX 78701

London

33 Broadwick Street
London
W1F 0DQ

New York

120 East 23rd Street
New York, NY 10010

Get in touch

(817) 420 9970
info@pmg.com

Subscribe to the PMG Newsletter
© 2021 PMG Worldwide, LLC, All Rights Reserved
  • Contact
  • Privacy Policy
 Tweet
 Share
 Tweet
 Share
 Tweet
 Share
 LinkedIn
We and our partners use cookies to personalize content, analyze traffic, and deliver ads. By using our website, you agree to the use of cookies as described in our Cookie Policy.