1 IT Environments Management IT Environments Management is probably one of the most misunderstood concepts in terms of the part it plays within the IT Organisation as a whole, especially its contribution to the success of an IT Project in general. Most Programme, Project and Test Managers in running Projects sooner or later, come across IT Environment related issues that can severely delay the delivery of their Project. IT Environments Management also referred to as Test Environments Management Service (TEMS) clearly contributes to improving the overall quality of IT Software development and support through the lifecycle. IT Environments Management encompasses a set of best practices proposed to provide an effective, end to end management service for test software platforms or development environments. The software test bed or development environment could consist of a client server application, Relational Database Management System (RDBMS), middleware, interfaces, daemons, customised processes (written in any software programming language), FTP utilities etc. Functional test phases such as Unit, Integration, Acceptance, all manner of performance or non functional testing and development phases all require IT Environments. The primary clients of an IT Environments Management Function are the Software Project and Test teams. An end to end Environments Management service will cater for the following; Manage the creation, build, upgrade and support for all test and development Application Environments. Clearly defining auditable processes of allocating application environments, multiple bookings or shared usage, code upgrades, service level agreement, support, decommissioning and re-allocation. Manage data refreshes, collating test data and assist in the anonimising of production or other sensitive data if necessary. Supply, provision and manage all Application Environment Requirements from the Project and Test teams all through the software development cycle of a project. Assist the Project in establishing their application environment requirements, provide expert knowledge on an IT environment s set up, connectivity and serve as a guide to the projects in using the environment in the most efficient manner.
2 Review and contribute to the Project Initiation Document (PID) ensuring that the IT Environments Management function and its deliverables are clearly defined and captured. Create and maintain project plans to assist in managing all activities required to successfully carry out major code upgrades to all application environments. Provide reports on usage/utilisation, availability, forward planning and schedules. IT or Test Environments Management is a fairly new and emerging area which has arisen due to the following reasons: The increased Test and Development Environment requirements for many companies who have several software projects running at any one time. The increased levels of interfacing and connectivity between several systems in most organisations also known as spaghetti. For example in some companies more than thirty systems are interfaced or connected with each other exchanging files and data flows etc and has meant that any changes to one system most times could require a change to many others and requiring large numbers of test and development IT environments. Increased awareness and more commitment to carrying out rigorous software testing especially with more companies opting to use the Prince 2 methodology and ITIL Framework A typical IT Environments Management Tool should be able to provide the following services: Environments bookings and allocation, manage multiple bookings and reoccurring bookings. Provide reporting on usage, availability, interconnectivity or interfacing environments, utilisation and conflict reporting etc. It must also serve as a repository of all information on an IT Environment to include Host Server names, Hardware Type, Operating System, IP Address and Interfaces if any, code levels and versions. An Example of a Test Environments Booking Tools is TEBS that can be found at The ideal background for Application Environments Management personnel could be Software Development, Application or Technical Support, Infrastructure Project Management, Configuration and Release Management etc but must be exposed to at least the ITIL
3 Framework, Client? Server development, System Architecture/Design, Networks, TCP/IP and messaging systems etc. Terminologies defined and Explained: Application, Test or Development Environment? A single test bed or development platform instance of a software application or system that can also be used for all manner of functional and non functional testing or could be the production instance (production environment). It could also be large, medium or small which normally refers to the size of data, the RDBMS will be holding depending on the type of testing it is required for. Integrated Application environments (also known as stripes): More than one application environment connected to each other also communicating with each other and exchanging files and data flows. Connections could be via Microsoft ODBC, via FTP, TCP/IP, daemons, middleware, defined interfaces and database links etc. Anonimising or scrambling of data: Anonimising of data refers to the manipulation or transformation of production data held in the RDBMS such as Oracle, SQL Server, Sybase, Microsoft Access, DB2 etc to be used in a test or development Application Environment ensuring that for example real names, addresses, date of birth, bank account details and other sensitive information or data is transformed to dummy data. The data is transformed whilst still maintaining its defining characteristics in a Relational Database Management System table such as character length (Char 25 or Varchar 50) etc to ensure its usage in testing or development is not compromised and that the integrity is maintained. For example a valid name such as John Smith defined as Char 10 will now be updated in the table to become possibly a unique character string XXXXXXYYYY (comprising of ten characters including the space between John and Smith). Pipe cleaning: Pipe cleaning caters for the all the activities required to be carried out before a test or development environment is handed over to the Test or Project team and includes disk clear down, archiving and purging logs, importing test data, killing off rogue processes, resetting passwords, changing environment settings, end to end connectivity or integration tests to make sure everything is working okay. Depending on the complexity of the system a checklist of activities may be required and ticked off capturing all the checks and tests that have been completed on an environment or an integrated suite of environments prior to its hand over to a Project or Test team. Smoke Test: A smoke test describes an initial end to end test of all the integrated or even stand
4 alone environments very possibly using dummy data and carried out by the support teams who have created or built the environment or by the test team when the environment is handed over. Cloud Computing and Test Environments Cloud computing which essentially means that you can pay for IT services as a utility, on a pay as you use basis, hosted in the cloud. Essentially another form of outsourcing, in this case you pay a provider to either use their software applications via the Internet (Google APPS is an example) and is known as Software as a service (SaaS). Or to use their Platform as a service (PasS) to build and host your web based application (Google Engine is an example). Or to use their Infrastructure as a Service (IaaS) which essentially allows you to pay a provider to host an image of your application negating the need for you to own your own servers, (Amazon EC2 is an example of this kind of service). Before signing up to any of the services, it is important that a company clearly understands the costs benefits, identify and implement an entry and exit strategy or plan capturing how to move to another vendor if it becomes necessary or to bring back the service in house. Hosting sensitive data off site must also need to be considered very carefully and the need to ensure that no regulatory requirements are breached or the customer data act is adhered to in any such implementation. Non mission critical systems are probably the best ones to consider first to be implemented in the cloud. Test and Development Environments and Cloud Computing Of particular interest must be the IaaS flavour of Cloud Computing, because companies spend a significant part of their yearly IT budget (sometimes as much 30 to 40%) on purchasing new hardware to host new applications, in response to new business requirements. The cost of maintaining such hardware can also be quite expensive from software licensing to support costs etc. Test and Development environments which are not necessarily mission critical, (since they are not live environments), can certainly be procured on a pay as you use basis with little or minimal risk, which could significantly reduce IT spending by as much as half or a quarter. As proven with virtualisation, building test and development environments becomes an easily repeatable process and likened to a factory floor where environments are rolled out on demand. The same principle will apply to having your development and test environments in the Cloud using the IaaS module and the benefits are as follows; Test and development environments tend to be required for fixed periods of time through the lifecycle of a Project and are left idle at other times. You only pay to use these environments when you need to, which can significantly reduce IT spending.
5 The effort and time required to set up test and development environments is significantly reduced, as you only need to access your server via the cloud and create your own environments. There is no need to wait for three weeks for the server to be delivered, another two weeks to be set up in the data centre etc. The cost of support, from setting up the server in the data centre, configuring it, installing the operating system, installing other security and monitoring software, setting it up on your LAN etc. The effort required to decommission and re-use these test environments also becomes minimal when test environments are hosted in the Cloud. Also since live data (de - sensitised data can be used on the other hand) is normally not used for testing or development there are no regulatory requirements to adhere to if hosting test environments in the Cloud. Most IaaS cloud computing vendors offer 99/100% up time, back up facilities, monitoring etc which ensures that once your environments are created, you only need to focus on carrying out your development and testing. A company can embark on several IT Projects at any one time, because there is no longer the constraint of available hardware (or rather the need to provision more hardware) to host test and development environments. Efficiently provisioning, building, managing and scheduling your test/development environments certainly contributes significantly to the success or failure of IT Software Projects. Paying for your infrastructure as a service at least, eliminates the effort and cost of provisioning, installing and supporting the hardware to host your test and development environments. You can also find free test environments management tools, tips and templates at