Successful retail companies today are expected to develop and scale their software solutions at an incredibly high rate of speed. How are they able to do this? Enter microservices. Companies like Netflix, Uber, Groupon, Google, and eBay would not be the leaders that they are without employing microservices software strategies. What can we learn from their success?
Divide and conquer into easier building blocks
Just what are microservices? Even though the standard, monolithic application development model has been around since Dr. Peter Rodgers introduced the concept back in 2005, Forbes recently published an article describing microservices, or “containers,” as a means to “simplify development and deployment. This allows new software and versions to be available faster, and there are fewer problems in making that software available.” How is this possible?
Big, sometimes massive, software programs are broken into independent components. Each microservice is associated with a single functional implementation. For example, when shopping online, a shoppers experience links to the payment process when they are ready to check out. Although the separate microservices function are linked together (via APIs) in one large application, they are maintained individually. This allows future versions of individual shopper services to be updated independently, saving time, improving quality and simplifying the iterative process of software development.
Change your process
They promise unprecedented levels of control and speed. But one of the best things they do is allow developers to focus on one thing and to do it really well. When implemented correctly, microservices can benefit retail websites in the following ways:
- Performance — Microservices boost a website’s performance during peak usage. This is critical for sites that have to quickly respond to their user’s needs. For example, the Netflix API Gateway uses it to service the fluctuating demands of 2 billion API requests a day.
- Stability — One of the issues with a large monopolistic system is that, as the website grows, it becomes more unstable. Microservices organize business functions into discrete systems. This means that when you update one system or add new business functions, it does not affect the rest of the website. For more information on microservice stability, check out this case study by Gleb Radchenko.
- Faster to market — Developing software with it gives the programmer a faster methodology to build the application and website. The two key factors are focusing on one business function or feature at a time and having a small dedicated team working on it. In most cases, the development time is only 2 to 3 months. To learn more about how microservices can decrease development time, take a look at Alex Williams’s case study entitled How Microservices Have Changed and Why They Matter.
- Tight product focus — Holger Reinhardt, CTO of the Haufe-Lexware Group, warns that scope-creep is the biggest factor for failure because it overwhelms project teams. I have also seen scope-creep cause the death of a project. How can it be reduced? By adhering to the principles of “do one thing, and do it well”, the business and development teams focus on one function or feature at a time. This focus on product needs reduces the dreaded creep and is the key to success in microservices.
Compared to the current all-in-one implementation of the monolithic website, microservices produce a superior shopping experience and one that is much easier to support. As customer expectations rise and eCommerce website revenues increase, eTailers who wish to capitalize on this growth will want to implement microservices.
Figure 1 illustrates the benefits of Microservices architecture.
Faced with the enormous challenge of trying to re-architect an enterprise eCommerce website, many developers would not know where to begin.
Microservices starts with a map
For a project to be successful, the developer needs to follow a clear and logical path. There are many methodologies that facilitate the definition of requirements, from waterfall to agile methodologies, but none are better than customer journey mapping. Here are the four distinct user journey maps.
- Discovery: Shows how customers find new products and how the system recommends similar products.
- Shopping: Illustrates the ideal features, functions, navigations and user interfaces for the website.
- Payment: Creates a clean and easy transition for entering personal information, reviewing orders, and securing payments. Attempting to up-sell, cross-sell or promote products in the Payment journey map narrows the sales funnel. The payment journey map is separate from the shopping experience because the customer mindset is switching from exploratory to task-completion. Many websites mistakenly keep the exploratory concept going in the payment cycle, and suffer the loss of customers because they failed to narrow the sales funnel.
- Tracking: Customers are more likely to reorder if the tracking of the current order is available on their mobile devices in real time. Of the four customer journey maps, Tracking has the highest positive effect on customer loyalty.
Breaking a complex eCommerce website into functional components (discrete business objects) facilitates the implementation of microservices. A good journey map defines the pains and gains and focuses on what is most important to the customer. Customer journey maps define a clear set of implementable requirement for microservices.
Figure 2 illustrates the Microservices for an enterprise retail website.
If you are developing complex applications, microservices are the best choice. They allow you to develop, scale, test and implement software quicker, reducing time-to-market, and development and maintenance costs. To learn more about this topic, check out my LinkedIn.