Your options for having a software development lab in the cloud are increasing. Here’s how to get your dev lab there.
But if you want to get started quickly, the public cloud is your best option. Scale and automation are what have made public cloud service providers successful. These providers tap into a massive user community, unmatched in even the largest enterprise environments. They've invested millions of dollars automating data center processes--everything from service requests to provisioning to alert detection. It's relatively easy to take advantage of public cloud infrastructure services and host your development and testing tools inside these environments.
While the public cloud offers fast startup with no capital investment, the TCO over time may be higher compared with on-premises and private cloud lab environments. Fees from your cloud lab service provider can be difficult to monitor and control, and, as mentioned earlier, end-of-the-month surprises are a constant concern.
Software tools can help companies manage public cloud lab costs, but they can be expensive and don't make sense unless you're spending several thousands of dollars a month in lab fees. Uptime Software's UptimeCloud, for example, is an online service that monitors Amazon virtual server use, calculates existing charges, and projects them well before the end of the month. You can build in limits so that going over budget triggers an alert.
Portability also is a huge concern in the public cloud, particularly for a development lab. Vendors have a certain degree of lock-in with their SaaS applications in the public cloud lab, making it difficult to transfer workflows if you have to change providers. If you're tracking bugs and other issues, you may not be able to easily export and import that tracking into another system.
In addition, some public cloud providers charge for data coming into and out of their cloud offerings, and those costs can add up. When planning to move your lab into a public cloud environment, consider the total amount of data you'll be moving in and, more important, how much data you'll have to deal with if you ever want to get it out of the cloud relationship.If you're putting a lot of data into a cloud lab or are using valuable code there, you'll need a portability strategy.
Security is another big concern. Without formal processes to deal with data security, applications may be abandoned on virtual machines and live perpetually in a public cloud. This approach isn't wise, especially if you're dealing with sensitive, business-critical applications or data. You'll need to inventory the applications and data that must reside in a public cloud and ensure that your security team is OK with the approach.
Of A Cloud Lab
Provides development and test templates compliant with IT policy
Centrally creates users, roles, access control lists, and permissions
Tracks usage by month, user, and project; can implement chargebacks if needed
Shifts lab from capital to operating expense
Avoids technology refresh expenses altogether (public cloud only)
Establishes hybrid cloud architecture to connect to in-house data centers
Assigns individual-, project-, and group-level quotas for machines, storage, and networks
Audits and ensures that compliance policies are followed
Cost control is easier in a private cloud lab. Your data and apps will be more secure there as well. A private cloud also centralizes shared resources for large environments. But the only way to achieve cost savings in a private cloud lab is to have large-scale adoption. You'll have to get most of your organization using your private cloud lab, and for that to happen, you'll need it to be automated, which is the key to any successful cloud lab deployment, especially if cost reduction is a priority.
Besides automation, you'll need other key technology elements, such as bug tracking, collaboration, and asset management (see chart below). As with any private cloud environment, you'll have to decide how far you want to take your lab. Are you just after platform service and infrastructure service capabilities, or do you want to offer software configuration management (SCM) and bug tracking as hosted solutions? How much control do you want users to have over provisioning resources? Once they're provisioned, how much management and monitoring of these resources will be required? Do you need chargeback or usage-based reporting? How quickly do you need to tear down and rebuild environments? Can you replicate the amount of data and traffic needed in the lab?
A private cloud lab may be costly and complex, but it has advantages over public cloud options. It gives you the flexibility to replicate your production environment, which may be necessary to test some applications.
Unfortunately, many tools designed for software development and testing, including SCM tools, aren't readily portable to a private cloud. This can be a problem, as having a full suite of development applications and the control mechanisms to manage them is key to getting value from a private cloud lab.
If you find you must mirror your production environment in the cloud, you'll need a multitier application with clustering and failover support--and that's expensive in the public cloud, especially for large environments. You might need multiple networks in various configurations, and you might need to add multiple network adapters to each virtual machine, connect them to different networks, configure routing policies, and ensure that you're getting an accurate depiction of the production environment. One tool that can help is centralized configuration management automation software, which works across different applications, networks, and servers.
Setting up a lab in a private cloud also lets you control security, as well as the code and other data in the lab, making it the best option for sensitive data and applications. Private clouds also keep you in control of high-risk functions such as disaster recovery and operational continuity.
The cost to scale also will dictate whether you locate your lab in the public or private cloud. But there's no fast and easy formula for figuring that out. The decision depends on your specific needs. Online gaming software developer Zynga found it could do the same amount of work in its private cloud as it had been doing on AWS but with one-third the number of servers. AWS's general-purpose servers are designed to run a wide variety of workloads and don't do one job supremely well. Zynga optimized its servers for specific roles--database access, Web server, and game logic execution--and ended up using fewer of them. Like Zynga, you'll want to do a TCO analysis, comparing public cloud services with a build-it-yourself private cloud.
IT Service Management Must EvolveThe idea of technology being delivered as a service appeals to the 409 IT pros responding to our Service-Oriented IT Survey. But cloud providers are competing for that work, and CIOs are being selective.