Building a Better Infrastructure Through Agile Integration
Approaches taken over the past decade no longer fit the needs of agile development and hybrid cloud.
Just like enterprises are under pressure to produce products and services to stay ahead of their competition, U.S. agencies are accelerating production of defense systems to stay ahead of foreign adversaries. As a result, government IT has taken strides toward achieving greater agility. From embracing hybrid cloud models to seeking ways to leverage artificial intelligence, federal and civilian agencies are investing in new, innovative technologies and development processes designed to increase efficiency and accelerate delivery.
But while these buzzworthy topics are easy to get excited about, agencies must also reconsider and re-evaluate their application architectures. The approaches taken over the past decade no longer fit the needs of agile development and hybrid cloud.
A popular technology and architectural feature of service-based software systems has been the traditional Enterprise Service Bus (ESB). While the ESB approach has been useful over the years, its capabilities and philosophy are no longer a good fit for modern solutions. The ESB architecture can be cumbersome, complex and centralized—both operationally and organizationally—as opposed to agile, simple and distributed.
Modern application development requires an agile architecture that is highly adaptable and nimble. That architecture should be able to integrate with both new and existing systems and services with different data formats and interaction models. Application services must be both composable and re-composable to deliver new capabilities from existing assets.
Creating an infrastructure based on this type of agile integration can provide many benefits. Agencies can more easily connect different systems to gain a complete view of important information, such as the status of contracts or threat intelligence. They’ll also have an ideal platform to support their goals of faster and smarter delivery of applications, enabling them to keep pace with or surpass foreign adversaries.
Building an architecture based on agile integration requires three technology and capability pillars:
Containers
Containers are a dominant packaging and deployment approach for teams working with DevOps and microservices. Development teams can build or re-architect complex applications as discrete and independent services that can be deployed in containers and scaled across a variety of IT infrastructures. Containers provide an easier, more consistent and repeatable approach to development, testing and maintenance.
Application Programming Interfaces
Containers require a way of building, deploying, and managing services independently while still enabling services to communicate with one another. However, a typical government IT environment consists of services that exist independently but still need to communicate with each other.
APIs expose these independent services through clear interface contracts. They enable the services to communicate and exchange information without the need for a large centralized integration hub. APIs provide a means to separate the contract of a service from the actual implementation, giving service developers the freedom to rapidly evolve service logic and take advantage of the latest languages, algorithms and techniques without impacting its ability to satisfy the needs of its consumers.
APIs also provide a point of governance and control. They can be shared among different development teams, promoting re-use and consistency, but developers can also apply security policies regarding how APIs are used.
APIs are fundamental in component and microservice architectures. They reduce integration complexity and can be deployed together with containers in different environments.
Distributed integration
While APIs facilitate communication between services, distributed integration enables more seamless communication between different systems. Like an ESB, distributed integration offers routing, data transformation and more, but in a different manner.
Distributed integration treats each integration point separately so that they can be containerized and deployed locally without impacting each other. This distributed approach can lead to greater flexibility. It is also more conducive to today’s highly dispersed environments and the work being done by small, agile teams delivering application services.
Distributed integration takes what was formerly a highly complex and centralized process and boils it down to smaller, more manageable pieces. It essentially turns the process of integrating and connecting systems into a microservice that enables functionality to be deployed wherever it’s required.
In fact, breaking down larger, complex elements of traditional infrastructures is what agile integration is about. It helps government IT teams focus their application architectures to three core elements. In the process, it establishes an ideal platform for agility and an essential foundation for today’s accelerated development needs.
Ken Johnson is senior director of product management for Red Hat.
NEXT STORY: How Federal Agencies Can Move Innovation Forward