Historically, Development & Testing (Dev & Test) environments have been built and managed at the project level and has often been under-funded, under-resourced and under-utilized for significant periods of time. The Dev & Test demand and the IT infrastructure management processes differ in their DNA. Dev & Test is unpredictable and have variable demand cycles while the IT managers look at smoother predictable operations, gradual capacity building and higher utilization. Despite being a crucial IT function, the inability to quickly provide the capacity Dev & Test teams need delays the application development lifecycle and hampers the delivery of an application quickly and efficiently while dealing with compressed delivery timelines.
As the pace of change and the level of competition are growing, businesses today need agile IT environment to match the highly dynamic and resource intensive needs of the application Development & Testing – a business critical function. According to Gartner, Cloud and Mobility will drive the worldwide application development market to exceed $10 Billion in 2013.
Challenges Facing Traditional Dev & Test Set-up
- Long resource provisioning cycle
- Complex project specific configurations
- Limited hardward and shared resources
- High CapEx and OpEx
- Multiple development environments with non-standard methodology
- Lack of efficient management of spiky demands
By leveraging Cloud, developers, test engineers, and QA teams can develop and perform extensive scenario testing in shorter cycles. Here's how:
Cloud provides developers and test engineers with a self-service model for requesting and almost instantly receiving resources from within a pool of secured, shared and scalable infrastructure resources. This capability can shave days or even weeks off of application development project times, speeding time to market. Cloud also enables these teams to build configuration templates and machine snapshots in seconds, run them in parallel, and customize them to meet the needs.
Benefits of Moving Dev & Test to the Cloud
- Achieve faster time-to-market and greater flexibility for new products and services
- Automate approval workflows and reduce the cost of IT infrastructure management
- Enhance ID and Access control and safeguard data with a private or a hybrid solution
- Utilize infrastructure capacity efficiently with granular monitoring and management of infrastructure resources
Test engineers can quickly deploy configurations and scale performance on-demand heavy load testing, saving time and operational costs over traditional on-premiseDev & Test environments.
Considerations for Cloud-based Dev & Test
While Development & Testing in a Cloud based model addresses the traditional roadblocks of cost, scalability, lack of process and methodology; it has its own challenges:
Security & Control – Businesses may have applications that need to comply with regulatory and corporate restrictions around security and data privacy for e.g. access control for offshore and sub-contractors or an applicable local law that mandates compliance to data residency and hence restricts usage of a Public Cloud for data/devices under the purview of security & control. These may not even move to an off-premise Cloud instance for Development and Testing because of proprietary/legacy systems, as well as intellectual property security considerations. In addition, control & governance mechanism needs to be set for integrating workflows, identity management, usage metering, chargeback, etc. to ensure efficiency and quality.
Interoperability – Businesses may be confronted with issues surrounding legacy systems Development & Testing on the Cloud as connecting to legacy systems from the external Cloud may pose interoperability issues. The ability to integrate with existing systems and share data between different platforms may need multi-tier technology architecture.
Performance – As Dev & Test environment on Cloud maybe shared by numerous users, there may be cases where businesses may have to wait for the required bandwidth.Uptime is an important consideration when developing and testing on the Cloud to assess the performance characteristics of an application. The IT admins have to ensure that underlying hardware provides adequate performance levels across storage, network and compute in a Private Cloud while such tweaking may not be available in a Public Cloud.
Monitoring – Monitoring of application which is in a distributed format, one spanning multiple servers, on multi- Cloud environment or accessing multiple applications through Web services, becomes difficult from a performance, security and availability perspective. A full-featured logging and tracing mechanism for troubleshooting becomes imperative. Measuring the Cloud utilization by various teams and business units enables better capacity planning for future.
Management – Servicing and managing Dev & Testenvironment has been challenging because of the bursty workloads and the dynamic service requests. The current processes are designed around current IT service delivery models. The processes such as provisioning, procurement, configuration and de-provisioning of the resources are manpower intensive at the transactional levels and automation is limited by the technology. While Cloud provides a wide variety of build/integration systems, test harnesses, and Dev & Testtools, there is still a need to bring all of this together in a turnkey and managed model to reduce the burden of managing Development andTesting infrastructure on Cloud. Developing for Cloud – Developing applications to run on Cloud is different from developing applications for a traditional or virtualized IT environment. Developers must build applications that considers resource unavailability and is able to recover from such incidences. For e.g. a multi-tier application should be loosely coupled and ready for any other tier failure. The application should be built in a way that allows multiple instances of a component to run concurrently so that in case an instance fails, the components could easily switch to another instance.
Critical Success Factors
A thorough planning and selecting the right technology and Cloud Service Provider must be done in order to maximize value of the Cloud-based Dev & Test environment.
- To understand Cloud-ready environments, some key architectural requirements of a Cloud-based Dev & Test environment must be known:
- What hardware/compute resources will be used and will it be capable of achieving Dev & Test objective?
- What resources (wiring and cabling, SAN and storage, rack space etc.) will be needed before any servers or workloads are installed?
- What networking and data storage capabilities in terms of capacity will be required?
- What workloads/applications will be placed in the Cloud?
Businesses must make sure that the Cloud-based Dev & Test environment is aptly architected for hybrid environment and does not lead to application performance degradation.
- Once the Dev & Test environment in the Cloud is established, businesses must take into consideration the following, for an agile Dev & Test life cycle:
- Template library of ready-to-use VMs, defining server, capacity & storage requirements along with application components, must be created. Such templates allow team members to quickly duplicate environments and streamline provisioning.
- Services in the Cloud should be integrated with the right chargeback/metering processes and tools. This will enable enterprises with the financial thresholds and control of costs in the Dev & Test Cloud. A comprehensive Cloud solution for Development and Testing provides increased control over projects, speed of deployment, ease of collaboration, and the ability to access environments on demand, enabling efficient and quality application Development & Testing.
A Fortune 10 Multinational Company, with its business units spread across various countries and a complex globally dispersed IT environment, was looking at setting up a Private Cloud for Dev & Test to overcome high operational expenditure and latency issues in leasing machines from its central IT unit. The central IT unit's Dev & Test Private Cloud environment had very limited and standard templates that were not very useful therefore for all non-standard requirements, the client was using Public Cloud, thereby incurring high operational costs; data risk being another major concern. Also, as the data-center of the central IT unit was at a different location, the client also faced latency issues.
Microland evaluated client's business and technology platform and created a comprehensive Roadmap and Business Case for Dev & Test Private Cloud. Microland considered different Cloud solutions and defined different instances as per Engineers' needs along with technology recommendations.TCO vs. Solution capabilities comparison for various technologies; monthly cost for each instance type and the benefits of implementing PaaS for engineers was also recommended to the client. The client is now implementing the best suited Cloud Solution suggested by Microland in a phased manner.
Typical IT infrastructures SLAs and policies are governed by the central IT units. The service requests for resource allocation, configuration takes days and weeks. The operational expenses of rendering central unit services are usually high and the Dev & Test community satisfaction levels are low. Servicing of various project team's unique requirements require significant IT staff and management effort. These challenges are a result of the typical service delivery model design and technology limitations.
Cloud paves the way for businesses to overcome the legacy challenges by transforming the IT infrastructure services capability through the new delivery model. Deploying the service catalogue through a self-service portal and automation of the workflow are critical aspects to deliver the user satisfaction. The instances can be pre-defined as per the user needs. These instances can then be provisioned and auto de-commissioned within minutes. This takes the demand management workload away from the IT managers and delivers & increases the utilization efficiency.The products are tested in wider scenarios, which reduce the efforts of patch-up jobs and maintenance releases. The Dev & Testworkloads are typically non-critical and the spiky demand makes this an ideal starting point for the Cloud implementation roadmap.
The use cases are established and many leading businesses have chosen to start their Cloud journey with the Dev & Test Cloud Solution that deliver products in shorter development cycles and at much lower operational costs.
How Eucalyptus can help
Eucalyptus allows organizations to build production- ready, AWS-compatible Private and Hybrid Clouds by leveraging their existing physical and virtualized infrastructure to create on-demand Cloud resource pools. These highly elastic pools can dynamically scale up ordown depending on application workloads and is uniquely suited for enterprise Clouds, delivering production-ready software that supports the industry- standard AWS APIs, including EC2, S3, EBS, and IAM. The benefits are highly efficient scalability, organization agility, and increased trust and control for IT.
Along with key partners, Eucalyptus has developed an integrated solution to address the Dev & Test requirements described above. The solution includes four required components that deliver Cloud-based development resources while maintaining adherence to IT standards.
The components include:
- Self-Service Provisioning – Allows Cloud users to quickly provision and deploy compute, storage and network resources that adhere to enterprise standards and policies.
- Image Creation & Management – Easily create and manage Cloud server templates based on supported configurations, then publish the templates into an app store setting to make finding and launching standard images a breeze.
- Cloud Configuration & Automation – Powerful scripting capabilities help to dynamically expand the compute and storage capacity of existing Private Clouds or quickly setup a new Cloud.
- Cloud Monitoring – Gain visibility across the Private Cloud infrastructure to track utilization and detect potential issues before they impact Service Level Agreements.