Digital business provides businesses with more data to understand their customers better and to identify opportunities. Metcalfe’s law states that the value of a network is proportional to the square of the number of connected users of the system (n2). You see this principle being used when valuating social networks. This concept is what is driving much of the hype around mobile, Internet of Things (IoT), and Machine to Machine (M2M) and what it will mean for a digital business. We are on the verge of being able to dramatically increase the number of connected users, or devices in these cases. The value organizations will be able to derive from these interactions will be incredible, but the actual devices are not as important as the underlying architectures and software that will be required to harness the opportunity that lies ahead.
One of the biggest challenges organizations face as they look to build an infrastructure to meet the increased demands of everything connected—where everything is generating data—is the ability to scale. This is why a growing number of organizations are looking at digital companies like Amazon and Netflix for inspiration, and like them, are concluding that they need a new type of architecture that enables a new type of application—one consisting of purpose-built services, designed to provide one business service to users and excel at it, so apps can be quickly created by combining services for immediate business response to a new requirement. These services need to be composed of business functions, internal or external, and easily onboarded. This new architecture design pattern is called microservices.
Monolithic applications are almost always leveraged horizontal scale out, where duplicate copies of the monolithic application sit behind load balancers.
One of the key benefits of microservices is the ability to segment functional actions into scalability domains. The independence of microservices allows them to be scaled independently—and that can be done in various ways, often referred to as scaling along the X, Y or Z axis.
- X-Axis Scaling: This is the horizontal scale out by running multiple instances of a microservice. The benefit in a microservices context is that services can be scaled based on the specific purpose of the service and required SLAs. You do not have to scale the entire system because of high SLA requirements of one or a few services.
- Y-Axis Scaling: Each request is dissected to determine to which service the request should be directed. By deploying the services independently, Y-axis scaling can be implemented along with an X-axis scaling strategy for the specific service. This allows you to run multiple instances of specific services.
- Z-Axis Scaling: The data is broken up into functional domains. Each service is responsible for only a subset of the data. By segmenting the microservices by functional action, you are already able to break down the data into components used by each service, but you can further break down the data and route requests to specific services based on customer type or primary key of the data being accessed.
One of the major challenges faced by organizations looking to tap into the potential opportunities of these newly connected devices is being able to scale to meet peak loads. Designing enterprise-level services following the microservices architecture will allow you to do this well. It allows individual services to be scaled across servers as their load demands increase. For more information about microservices and how TIBCO can help you maximize their value, see www.tibco.com/microservices.