Just as virtualisation has transformed data centre operations, the emergence of cloud computing represents a significant shift in the way IT operates applications today. Up until now, IT ops teams have been driven by a server-centric operations model, where the application itself played a secondary role. Cloud computing, on the other hand, is an application-centric operations model.
As applications get more distributed, virtualised and pushed into the cloud, application developers and architects are faced with a multitude of challenges in how they develop, deliver and manage applications with this new paradigm.
The emergence of application-centric operations
Applications that run in the cloud still need to be highly available, resilient and adaptable to varying loads and monitored as they were before. What changes, however, is that these features that were provided in the past by the IT ops infrastructure now need to be part of the application itself. Now, these operational capabilities need to become a part of the development environment. In this new application-centric environment, operations teams will need to collaborate with the developers who create these applications; this new breed is also known as 'DevOps.'
Matthias Marschall of Agile Web Development and Operations says the DevOps team is "a growing group of people practicing a new way of combining development and system administration for more speed, quality, revenues and fun."
ADCs and DevOps
Software-based application delivery controllers (ADCs) can play a significant role in alleviating some of the challenges that arise from this changing environment, particularly for organizations that are using agile development methods.
Being able to proactively implement production-level best practices much earlier in the development and test processes will save a lot of sustaining costs and pain later on in the game during production. This is especially true when deploying applications in business- and mission-critical situations.
Imagine if an ADC could help replicate an entire production environment during the development and test phase?
By using real-world configurations, testing features and loads on the production network, during the development and test phases, DevOps can repeatedly test and troubleshoot in real time as an application goes through the continuous build and integration process.
In addition, developers will be able to gain a better understanding of the potential bottlenecks that may arise when applications are deployed in various environments.
Developers can only be proactive if they have enough visibility into how applications are working in a production environment. Having to deal with problems much later in the process will prove to be both time and resource constraining.
With the right set of tools, DevOps can get applications to market faster and significantly improve their feature velocity.
A seamless ADC for app developers
Having an ADC that integrates seamlessly into the application stack in the same way as Apache or MySQL will give developers a powerful new set of tools. Traditional ADC architectures are not well positioned to truly make this shift. Ideally, organisations need an ADC that is as dynamic as the application itself.
Specifically, it is important for organisations to choose a software ADC (not virtual) that accommodates agile development methods, embraces the DevOps philosophy and aggressively enables ways to optimise development, testing and operations to achieve better and faster real-world application results - all in real time.
Some software ADC programming languages enable DevOps teams to create application deployment policies that are specific to applications. With this, developers are able to quickly and easily deploy policies that inspect, transform, prioritise and route traffic to address application delivery challenges and achieve strategic business goals. In addition, certain capabilities can save developers time and effort to focus on strategic challenges instead of day-to-day maintenance activities.
Every developer should have access to application development tools that fit right into modern QA/test platforms. Those tools can be used to test the exact same rules and scenarios as would be used to deploy into global production environments.Every developer and test team should have a software ADC in their development environment, and every developer should have a rich, familiar scripting language and an ADC that can re-use programmes or code from other languages.
Paul Coates is regional vice president for the UK and South Africa at network optimisation specialist Riverbed Technology.