Part 1: Microservices: Technical, Business, or Organizational Architecture? Yes

November 26, 2019 Joe Chung

With a bucket of Legos, you can tell any story. You can build an airplane or a dragon or a pirate ship—it’s whatever you can imagine.
Christopher Miller

One of the hallmarks of any digital transformation is increased speed and agility. Decisions need to be made more quickly using data and algorithms. Digital services need to be created rapidly to capture new revenue streams and increase customer experience. You might have heard your CTO or Chief Architect (or AWS) talk excitedly about a new software architecture that is going to save your business, make it more agile, innovative, and solve world hunger called microservices. Much has been written about the technical aspects of microservices architecture, but the non-technical aspects (business, organization, etc.) of microservices I find are not covered with the same frequency or energy. But before I cover the non-technical aspects of microservices, I think it’s worth trying to explain it in layman’s terms and the connection to business value.

I find it’s helpful to imagine software systems as a physical manifestation to better explain and understand digital concepts. Imagine if the mixer in your kitchen had the dough kneading implement permanently attached. To change it you have to use a hack saw to remove the dough kneading implement and then weld on the wire mixing attachment. When you test it, you realize that the alignment is off because the mixer shook so violently it fell of the kitchen counter and landed on your toe. So, then you repeat the process again until the alignment is correct.

On the other hand, imagine having a mechanism to allow you to quickly change the attachment or add a new attachment that you just bought. You would think it would be ridiculous to buy something that was not built with this ease. However, most software systems are not engineered this way.

Don’t believe me? Have you ever had the pleasure of working with your IT colleagues and they tell you the minor change you requested requires testing the entire application and will take three months just to retest? (I’ve literally had to tell this to a customer.) In this case, you have the opposite of a microservices or modular architecture, or what is colloquially named a monolithic architecture. Monolithic applications are an intertwined ball of string (code) and duct tape (data). Making changes requires either the equivalent of digital neurosurgery or taking the virtual hacksaw to systems.

Microservices is a technical architecture approach that emphasizes modularity and independence of software and hardware components. The separation and independence are arguably the most important characteristics. Just as physical objects cannot share the same space, microservices should not share the same digital space. If you have younger kids, you know that having them share the same toys is a recipe for a fight. Therefore, as crazy it sounds, you end up buying the same toy for each kid, like I have. In the IT world, buying everyone the same toy is equivalent to giving everyone their own servers or data centers, which seems very expensive, but this leads to “fighting” in civilized forums like Change Control Board meetings. In the world of cloud, the economics change because of the pay-as-you-go utility model and new paradigms where you don’t even have to worry about servers at all called, wait for it…Serverless. So, PlayStations for all!

So, how does this relate to business agility, speed, and value? Let’s use another example, but a digital one. Your CEO has declared that direct to consumer is an important channel that needs to be focused on. A new ecommerce platform has been created. Customers are initially thrilled, but they are starting to complain that the product recommendations don’t make sense. Also, a new business unit wants to create a new category on the site. The tax rules have changed in a state in which you do business, so the tax calculations have to be updated at time of payment. The problem is how to make all these changes. A huge schedule has to be created to coordinate the code for the different technical components and to make sure they don’t break anything. The next window to deploy these changes is months away.

However, if the ecommerce platform were broken up into independent building blocks, then each change could have been made without coordinating with other teams. That is the benefit of microservices, and it’s how Amazon.com is constructed.

Back in 2010 I attended a conference where I first heard the story of how Amazon.com was architected as thousands of microservices. At that time, Amazon.com was deploying a change every 11.6 seconds! I remember thinking to myself, that’s just not possible. Fast forward to today and it’s estimated that a change is made to Amazon.com once every few seconds. So as Amazon has continued to grow and scale, it’s been able to drive even more frequent change. Mind blown. However, it’s not just about the technical architecture that makes this work, it’s about the business and organizational architecture that we’ll cover in the next series of posts.

Never stop innovating,

Joe

 

Previous Article
Letting Go: Enabling Autonomy in Teams
Letting Go: Enabling Autonomy in Teams

My detailed project plan won the war. — said no military commander, ever. In the chaos of battle, it is acc...

Next Article
Digitally Transforming What Exactly?
Digitally Transforming What Exactly?

If I were given one hour to save the planet, I would spend 59 minutes defining the problem and one minute r...

×

Interested in learning more? Let us know!

First Name
Last Name
Phone Number
Company Name
Country/Region
State/Province
State/Province
Postal Code
Industry
Job Role
Job Title
Level of AWS Usage
Company Type
Company Size
I am completing this form in connection with my:
Yes
I'd like to receive information from Amazon Web Services, Inc. and its affiliates (AWS) related to their services, events and any special offers by email or post.

You may unsubscribe at any time by following the instructions in the communications received. Your information will be handled in accordance with the AWS Privacy Notice.
By completing this form, I agree that I'd like to receive information from Amazon Web Services, Inc. and its affiliates (AWS) related to their services, events and any special offers by email, post, or other forms of communication.

You may unsubscribe at any time by following the instructions in the communications received. Your information will be handled in accordance with the AWS Privacy Notice.
I'd like to receive marketing information from Amazon Web Services, Inc. and its affiliates (AWS) related to their services, events and any special offers by email or post.

You may unsubscribe from the sender at any time by following the instructions in the communications received. Your information will be handled in accordance with the AWS Privacy Notice.
I agree that Amazon Web Services, Inc. (AWS) collects and uses my information and to receive information from AWS and its affiliates related to their services, events and any special offers by email or post.

You may unsubscribe at any time by following the instructions in the communications received. Your information will be handled in accordance with the AWS Privacy Notice.
I'd like to receive marketing information from Amazon Web Services, Inc. and its affiliates (AWS) related to their services, events and any special offers including by email or post.

You may unsubscribe from receiving further marketing communications from the sender at any time by following the instructions in the communications received. Your information will be handled in accordance with the AWS Privacy Notice.
I'd like to receive marketing information from Amazon Web Services, Inc. and its affiliates (AWS) related to their services, events and any special offers by email or post.

You may unsubscribe from the sender at any time by following the instructions in the communications received. Your information will be handled in accordance with the AWS Privacy Notice.
I'd like to receive information, including marketing information, from Amazon Web Services, Inc. and its affiliates (AWS) related to their services, events and any special offers by email or post.

You may unsubscribe from the sender at any time by following the instructions in the communications received. Your information will be handled in accordance with the AWS Privacy Notice.
I'd like to receive marketing information from Amazon Web Services, Inc. and its affiliates (AWS) related to their services, events and any special offers by email or post and telephone.

You may unsubscribe from receiving further marketing communications from the sender at any time by following the instructions in the communications received. Your information will be handled in accordance with the AWS Privacy Notice.
I'd like to receive information from AWS and its affiliates related to their services, events and any special offers by email or post.

You may unsubscribe at any time by following the instructions in the communications received. Your information will be handled in accordance with the AWS Privacy Notice.
I'd like to receive information from AWS related to AWS cloud services, events and any special offers by email, post, or other forms of communication.

I understand that Amazon Web Services, Inc. and its affiliates (AWS) intend to use and transfer my name and contact information for direct marketing purposes and that AWS requires my consent in order to do so. You may unsubscribe at any time by following the instructions in the communications received. Your information will be handled in accordance with the 
AWS Privacy Notice.
I have reviewed the AWS Privacy Notice and I agree to the collection, processing and use of my personal data on the terms and conditions in the AWS Privacy Notice. I specifically agree to receive information from Amazon Web Services, Inc. and its affiliates (AWS) related to their services, events and any special offers by email or post. You may unsubscribe at any time by following the instructions in the communications received. Your information will be handled in accordance with the AWS Privacy Notice.  
Thank you!
Error - something went wrong!