Cloud applications are perceived as an inherently easily deployed, modified, scaled and metered service. This provides...
the clue as to how modern enterprise architecture and application designs must evolve. Here's why and what the future will look like.
Cloud services themselves, built upon highly distributed infrastructure, are designed to be resilient to failure and easily moved and resized without affecting users. Being accessed and controlled using application program interfaces, or APIs, the abstracted services completely insulate users from the implementation details. Users have little to no idea, or concern, over where services run or on what type of system. These core attributes underpin the many advantages cloud services have over traditional monolithic software.
Yet these same characteristics can and should be applied to enterprise applications built upon one or more clouds. Indeed, a granular, microservices design using shared, on-demand, scalable cloud services is a virtual requirement for any modern enterprise architecture that expects to meet the demands of digital business, serving millions of mobile customers, smart machines and connected sensors.
The connected digital enterprise
The reason enterprise architectures must change is the confluence of high-speed connectivity and decades of exponential Moore's law improvements in computing power. This has enabled cheap smartphones to saturate the market and utility-scale IT service providers to create cloud services. Together, these technologies have catalyzed dramatic changes in business. Whether you call it the New Economics of Connections (Gartner) or the Unbounded Enterprise (AT&T Bell Labs), it means businesses, and consequently IT systems and applications, will increasingly interact not just with people, but devices, virtual objects, and other software in the form of automated business processes and intelligent devices. It's an explosion of interactions that Gartner calls the digital mesh.
The implications for enterprise architecture become more like the big cloud services -- think Google, Facebook and AWS -- and less about using monolithic, centralized systems to handle growing and increasingly unpredictable workloads. Indeed, the effects will reach far beyond enterprise architecture to the very core of how IT does business as concepts like Bimodal IT, DevOps and Agile development are introduced to quicken the pace of digital business innovation. But our focus here is on the architectural framework.
Dealing with "connectedness"
However, if an organization chooses to implement it, the evolving, modern enterprise architecture will be cloud-like. Whether applications end up running on shared, public services like AWS and Azure; private infrastructure built on software like Azure Stack, OpenStack or vCloud; or a combination of both, the architecture must assume the availability of shared, even if only within an organization, metered software services can be instantly instantiated, modified, scaled and interconnected. As organizations build digital services that look more like Facebook and Uber, the application architecture must resemble cloud-native services and not monolithic systems sequestered on a single box.
The modern architecture should have the following key attributes:
- Disaggregates client interface from business services: Applications will embrace mobile and browser design paradigms with the client side exclusively for the UI and business processing on back-end services.
- Inherently distributed: Back-end applications will be capable of running multiple instances, providing resilience and scalability while enabling nondisruptive updates required by continuous, agile development processes.
- Uses microservices: Back-end services will be designed for a specific function. It'll also be shareable among many consumers and easily linked into service chains for specific applications. Think of microservices as building blocks used to construct arbitrarily complex functions. Services may run isolated in their own VM or as containers sharing an operating system instance. They will also be inherently self-metering to support consumption-based billing, fine-grained performance tracking and auto-scaling.
- Asynchronous inter-service communication: Services will exchange information using message buses, not persistent connections to network sockets and file shares.
- Rich service portfolio: Services will expose metadata allowing them to be managed, consumed and orchestrated as part of a broad service portfolio to include mobile and IoT app back ends, data storage and analytics, messaging, monitoring and security.
- Library of application templates and design patterns: The portfolio is the foundation for templates that stitch services together to solve various application developments needs and design patterns, such as that provided by Azure. The developer library also includes standard data models used to select the appropriate data services like object storage; NoSQL; SQL; Big Data, e.g. Hadoop and Spark; and data transformation pipelines for a specific need.
- API-centric: APIs are the primary, and often only, service interface. Client access is often stateless, but any state handled via message bus and back-end data services with minimal client-side support.
- Automatable infrastructure: Service chains can be instantiated from infrastructure templates that are used to deploy, scale, move and decommission cloud instances. Service metering and instrumentation is used to alert on resource usage; activity; error states; and to trigger automated remediation, e.g. scaling, restart and human notification.
- Fine-grained security: Access to individual services is controlled via role-based access control lists with policies defined as part of application templates. User identities and roles are centrally managed and possibly federated with external identity management systems from business partners or public online services.
Having the right enterprise architecture will likely be the difference between success and failure for future digital business initiatives. For CIOs and IT execs, it means architecture should be an executive-level priority that is developed via close collaboration between IT, application developers and line of business managers. For IT managers and technical pros, the importance of enterprise architecture requires a dedicated team of multidisciplinary specialists -- e.g. IT operations, AppDev, DevOps, cloud Ops and data scientists, among others -- whose focus is developing, refining, updating and implementing the architecture.
The growing enterprise architecture is part of an evolving IT that must focus on agile service innovation, development and implementation in response to dynamic digital business needs. As such, it will likely be accompanied by structural and cultural changes within IT such as Bimodal and DevOps organizations and continuous delivery processes. The result is one of the most challenging yet exciting times to be an IT professional.
Top enterprise NoSQL architecture challenges
Churn out cloud applications quickly for IoT devices