By Frank Greco
Services Architecture for the Modern Enterprise
In the Information Technology (IT) world, the word “enterprise” is mentioned quite often. If you do some serious digging, you’ll find out an enterprise is a federation, in other words, a collection of related business units with a common goal of profitability. It is an aggregate, dynamic yet unified entity that provides a product or service to benefit customers in return for revenue and profit. You’ll probably hear “enterprise” loosely and actually incorrectly used interchangeably with “company” or “business”.
An Enterprise is a Federation
As most of us are well aware, the success of this type of federation is very dependent on its network of vendors, service providers, partners and even the IT systems of its customers. In other words most enterprises rely on their supply chain network. This cooperative ensemble usually includes information management, purchasing, inventory, manufacturing, process-flow, logistics, research/development, distribution and customer service. This is true regardless whether you are a large retailer, a telecom provider, an investment bank or a television network.
This means a spectrum of enterprise applications needs connectivity with other applications and services. Trading systems, real-time inventory, big data analytics, complex event processing, systems monitoring and management, mobile notifications, social media sentiment analysis, et al, increasingly require traversal across multiple organizational boundaries. And today, many of these applications not only reside in IT systems on-premises but also off-premises within a cloud provider beyond the traditional firewall boundary.
The Need for Agility in a Dynamic World
The success of the “enterprise” now depends on a federation of organizations, integrating multiple external applications over multiple firewalls opening multiple ports. It is an atmosphere where the art of negotiation becomes more critical rather than mandating localized governance. And it’s an environment that clearly demonstrates and reinforces why agility and technology standards are truly useful.
This evolutionary phase in the modern enterprise coincides with another trend: the growing user demand for more apps and services. Users are now accustomed to the instant gratification of mobile and embedded apps. They are now challenging IT departments to provide similar functionality and ease-of-use for enterprise applications and most importantly, at on-demand timescales.
As we know all too well, this new business environment is complex, extremely dynamic, hugely event-driven, and constantly challenging our strategies and deliverables. This unpredictable environment requires rapid adapting to change and rapid reaction to business events. It requires agility. Successful business agility now clearly becomes a critical differentiator.
These parallel trends are massively changing how IT organizations design, develop, deploy and manage systems. The key to these systems is developing a robust and thorough services approach.
Modern Services Architecture
Services architecture is a design pattern that meets these modern requirements. It is where components of a computing system provide services to other components typically distributed over a network. It is a powerful and standard approach for the modern enterprise. As modern requirements expand, enterprises must evolve their services architecture and update their infrastructure tooling.
Applications are now composed of a wide collection of services reachable via a very large set of libraries deployed via the cloud using coarse-grained VMs and fine-grained container virtualization mechanisms.
And to manage these applications, there are new models of software design using small, independently deployable services called microservices such as Docker and large-scale management systems such as Kubernetes and Mesos. And these services are now both inside and outside the firewall, residing in a collection of cloud environments both on-premises and off-premises.
There are a number of powerful trends in services architecture. There are modern tools and techniques that every technology executive, technical manager and enterprise architect should be aware of. These competitive weapons originating from inventive technology vendors such as Google, Apple, Amazon, Netflix and others, are now easily available to all enterprises. Tools such as microservices and containers, API management, modern security, WAN-scale middleware, streaming APIs, etc. are all now available to all enterprises.