Friday, April 17, 2009

IT Environment Management

The role of the IT environment manager has in the past been seconded from different areas of the organization. The decision makers that decide how servers are provisioned and who manages the environment has predominantly been divided between the infrastructure team or the development team. This role has typically been shared with that of infrastructure manager or the development manager, both of these having dual responsibility and not being able to provide a dedicated focus for environment activities.

Business demands changes more quickly and with business change there is usually an inherent technology change. New technology means that the business now needs to manage both new and legacy environments. As Virtualization finds its way into the fabric of our IT infrastructure, we are now able to provision environments that run concurrently with legacy environments without the necessity to procure new hardware. This means new business capabilities can be provided in a short space of time and more efficient use of available resources.

Keeping track of development and test requirements and ensuring that the projects have the necessary infrastructure on time is a difficult task. Having one person who understands the capabilities of the different development and test environments across all projects is another challenge. The environment manager is the role that coordinates all activates across Data Management, Configuration Management, Release Management, Infrastructure Management, and Test management.

The following roles are important for environment management and provide input into the environment manager:

Data Management

  • Provisions converted test data per test scenario per environment
  • Provides a consistent processes for data population into test environments
  • Enables data refreshes prior to the beginning of each test pass
  • Controls the acquisition/administration of project data
  • Handles data from storage and retrieval systems
  • Provides guidelines for the handling of classified data
  • Handles the planning, scheduling, and delivery of data into a test environment

    Configuration Management
  • Configurable item versions are managed such that the right version is always used in a development activity
  • Historical versions can be captured and deployed to test environments
  • Source code can be grouped to deploy application releases in a structured manner, maintaining security according to environment requirements
  • Defects can be traced in updated source code files
  • Defects can be traced per test environment
  • SCM impacts test environments by controlling configurable item version usage as well as the structured movement of compiled software from one environment to another.
  • Build Management

    Release Management
  • Provides a structured approach for deployment of system changes to Production, which reduces quality-related risk
  • Changes to software are bundled together in releases which occur on a limited basis, minimizing the impact of changes to the users and the likelihood of introducing defects to Production.
    Infrastructure Management
  • Procures hardware in terms of Networks, Servers and Disk.
  • Provisions physical servers for the purpose of hosting virtual servers.
  • Deploys virtual servers up to OS and network level.
  • Provisions disk.
  • Regular backups of environment components, including servers and databases.
  • Restoration of base server infrastructure in the event of a failure.
  • Ensures that the infrastructure services Mail, Directory Services and monitoring are functioning correctly.

    Test Management
  • Monitor the environment after the deployment of bug fixes.
  • Track core functionality within an environment.
  • Co-ordinate test activities and teams.
  • Includes processes to support the test environment.
  • Allows for the consistent tracking of defects associated with a test environment.
  • Captures core functionality within an environment, such as test execution, defect management and metrics reporting.
  • Executes test cases to verify an environment is ready for use.
  • Captures the required components needed for a test environment.

    Environment Management
  • Monitor the availability of the environment according to plan.
  • Track releases, upgrades and changes to the development and test environments.
  • Log, coordinate and resolve environment defects.
  • Plan the reuse or decommission of environment when testing is complete.
  • Coordinate test environment configuration, deployment and test activities required to provide a stable test platform.
  • Ensure monitoring of environments is conducted.
  • Communicate hardware requirements to Infrastructure Management.
  • Allocate project infrastructure based on the project requirements. Environment management may allow environment sharing where the technologies are similar and where there is sufficient capacity.

    Supporting Processes

  • Demand Management
    Manage the process of allocating test environments in an efficient way. Verify enough environments are available across projects.
  • Security Testing
    Verify an environment meets the security requirements prior to testing.
  • Smoke Tests
    Execute a selected test script with critical functionality to verify an application is ready for testing.
  • Health Checks and Monitoring
    Verify the environment is ready for testing. Manage the various mechanisms that provide monitoring capabilities.

    Each and every IT organization and project has its own unique requirements. While the information above is an accurate account of the types of work performed around environment management, each project can tailor the roles and ensure that the underlying responsibilities are managed and met within their organization


  • 3 comments:

    1. nice post was looking for something like this thanks

      ReplyDelete
    2. Great points to help shift one's viewpoint and thinking
      http://www.403tech.com/

      ReplyDelete