BACK

Why Microservices Matter

JP Morgenthal, VP and CTO, Americas
CATEGORY:

This article is a guest post from Automation Anywhere Vice President and CTO for the Americas – JP Morgenthal. JP is an experienced technology leader with significant hands-on experience with the Automation 360 platform, Control Room API, and Package SDK – not to mention he also knows how to build bots! You can find several of JP’s articles on the Automation Anywhere corporate blog (as well as here on the Developer Portal) and if you haven’t checked it out already – download one of JP’s Bot Store packages like the JSON Object Manager.


One of the technological advancements that Automation Anywhere touts is that we have re-written our entire Robotic Process Automation (RPA) platform to be cloud-native and designed specifically with scalability in mind using a microservices architecture. For many businesses, when it comes to Software-as-a-Service (SaaS) the “how” is often not as important as the “what”. We believe, however, that microservices represent a key differentiator in product design – enough, in fact, that organizations should care that they are investing in a platform leveraging this scalable, fault-tolerant design model.

What are Microservices?

Microservices – also known as microservices architecture – represent an approach to building software that prioritizes autonomy between system components. The key benefit of this design is that it facilitates the extensibility of the system without impacting the running environment. That is, components of the platform can be added or changed without requiring updates to the entire system. This reduces downtime, allows for the ability to add new capabilities quickly, and supports scaling elements of the system in ratios that better support their demand.

A monolithic architecture, on the other hand, acts as one unit, making updates and innovation cumbersome and slow because everything needs to be updated so that the unit can function. It’s an all-or-nothing approach…everything must be taken offline to be updated, and everything must come back online together. A microservices architecture, on the other hand, facilitates agility, scale, and fast innovation. Individual services can be updated without impacting other services within the application. Likewise, services can be scaled up or down based on the specific demands for those services.

Microservices + Cloud

This last point is a critical component of being cloud-native. Cloud computing is all about agility and the availability of resources to scale to meet demand. Cloud-native software is designed to take advantage of this feature of cloud computing whereas monolithically designed software must still be scaled at the same time. This allows Automation Anywhere to ensure that an organization’s RPA environment is consistently responsive regardless of shifting demands that the customer places upon our environment. Moreover, because we can scale up the services that are in high demand and minimize the resources consumed by lower demand services, we can deliver our software at the most economical price point.

Examples of how microservices benefit our customers:

  • We can add new capabilities, like DiscoveryBot, without impacting existing cloud customers. As the services that support DiscoveryBot are deployed, we can update the Control Room to make those services available to customers with no interruptions to existing services. Once they become available, administrators will find the new access control options and can assign them to users to start using Discovery Bot capabilities.
  • We can minimize the impact of logging and auditing for creation and deployment activities. A critical aspect of Enterprise RPA is the ability to audit what actions a bot takes. In traditional systems, this level of logging can reduce system performance. However, because we can separate control traffic from data traffic by routing them to separate microservices, the impact is minimal on the performance of the Automation 360 platform as a whole.
  • We can actually update a service without taking down the currently running version of that service. We can slowly route traffic to the new service allowing us to
    • Ensure that unexpected issues that arise don’t impact a large population of our users
    • Meet service levels for platform availability
  • We can easily switch between cloud regions for maximum high-availability. In cases of a major failure in one region, network traffic will simply be routed to our services running in another region providing high-availability for mission-critical activities. For anyone who has managed on-prem applications where high availability is critical, you know the challenges that can come along with managing/maintaining such an environment. Offsetting that HA capability to Automation Anywhere saves time, resources, and headache.

Conclusion

In designing and developing SaaS (software as a service) solutions, it can be easy to focus only on what the software does while losing sight of the importance of how the software is designed/built. As organizations leverage SaaS solutions and continue to grow, it’s increasingly important that they also consider the SaaS’s ability to grow and scale with their organization’s growth. At Automation Anywhere, we believe that how the software is built is a significant differentiator, in addition to what the software does, that buyers should consider when deciding on an RPA platform for their organization.