Modern Application Delivery
Three delivery trends are changing the way enterprise IT leaders are bringing applications to market: cloud computing, agile development and composite applications. These initiatives share two common objectives: cost reduction and better, faster outcomes. All three seek to strip the latencies from traditional delivery and provide results that are more aligned with, and more responsive to, the business.
Most likely you’re pursuing all three. But are you doing so in concert? Pursued together, these trends present certain harmonies that significantly amplify their application delivery advantages. Without proper orchestration, these initiatives can pull the enterprise in opposing directions.
The application delivery trifecta: agile, composite and cloud
- Composite and cloud development prize the durability of services, ensuring that components perform well while remaining secure and resilient. Because both cloud development and composite applications facilitate the exposure of services and subcomponents for use by other applications, their shared priority is for components to remain trustworthy in a variety of different contexts.
- Agile development and composite apps align in their aim for modularity. They resist large and change-resistant monoliths—whether in terms of project plans or application architectures—in favor of discrete, bounded units that can be built, tested and delivered to production quickly.
- Agile and cloud overlap in the aim of responsiveness to change. Agile software development projects are designed to anticipate rather than resist change and to be able to pivot accordingly. The “always on” aspect of the cloud can facilitate this aim by reducing or eliminating the time to provision application environments, a key source of latency and inter-departmental squabbles.
But problems arise when application delivery initiatives are pursued in silos, as independent strategies. This tendency means that instead of harmony, the risks in each trend begin to amplify the risks of the others. As one example, Agile software development’s focus on velocity can come to antagonize the thoughtful architectural planning that good composite applications require. In pursuit of speed, developers may code in an ad hoc manner (“cowboy coding”), which leads to a proliferation of redundant or poor-quality composite application services.
The magic of the application delivery trifecta
World-class delivery organizations harness the collective promise of Agile, composite and cloud development by seeing each in the context of the other. These organizations maximize the shared opportunities and minimize what could otherwise become hostilities among the initiatives. In this way, each initiative amplifies the value of the others.
Consider some examples of how these harmonies might be achieved:
- Harmony between composite and cloud: In this case, enterprise technical policy lays out standards for reusable services so that any new service is suitable for either internal use or the public cloud. In this way, standards for security and resilience would be included alongside performance—achieving the durability that both cloud and composite applications require of their services to ensure service trust and adoption.
- Harmony between Agile and composite: At the same time, the organization might define certain principles to guide how coarse- or fine-grained a composite application service should be, ensuring that developers aren’t unnecessarily bogged down in architectural debates or tempted by shortcuts. In this way, Agile software development teams can produce composite services that meet the requirements for enterprise reuse, without a return to endless planning sessions.
- Harmony between composite and cloud: Given the interdependencies in building composite applications, where key services or systems are frequently either under development or available only at certain times, the organizations might seek to virtualize these dependencies—by finding alternate services already available in the cloud, or by investing in service virtualization software that mimics the behaviors of dependent application services.
There’s little doubt that these application delivery trends have improved the way we build and deliver apps. But the real value is in using all three together as part of the same strategic aim: to deliver better applications faster.
For more articles like this, join Discover Performance for IT leaders.