Environments management - A Critical Support Function


Published on

Environments management - A Critical Support Function

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Environments management - A Critical Support Function

  1. 1. Environments Management
  2. 2. Objective <ul><li>A short intro to Environments Management </li></ul>
  3. 3. What is Environments Management? <ul><li>Environments Management is a critical support function within SDLC, </li></ul><ul><li>which helps to manage and control the software application </li></ul><ul><li>deployment in a planned and systematic fashion from development to </li></ul><ul><li>Staging to production. </li></ul><ul><li>Managing and Controlling Environments means Planning & ensuring </li></ul><ul><li>Environments are built to the requirements with required interfaces and connectivity's </li></ul><ul><li>Environments have enough capacity to run multiple software application releases </li></ul><ul><li>Environments are scheduled and managed for parallel releases </li></ul><ul><li>Environments Health Check is done routinely to ensure its up-time & for optimum performance. </li></ul><ul><li>: </li></ul>
  4. 4. Why Environments Management? <ul><li>It’s a Critical Support Function to ensure the software application can be deployed and tested with varying configurations from development to staging to production </li></ul><ul><li>Helps to reduce the risk of deploying the software application directly into production by staging and testing through various environments with varying configurations (e.g TestHarness, MiddleLayer, GUI etc) </li></ul><ul><li>Establishes greater confidence to the development and project teams </li></ul><ul><li>Empowers Decision Making </li></ul><ul><li>Better control on application deployment & its dependencies </li></ul><ul><li>Provides Standards and Framework </li></ul><ul><li>Provides Visibility & Control </li></ul><ul><li>Better Quality (Process, Procedures, Audit) </li></ul><ul><li>: </li></ul><ul><li>: </li></ul>
  5. 5. Consistent Environments? <ul><li>An Environment includes all the components needed to build and run the </li></ul><ul><li>application. </li></ul><ul><li>For a JAVA based application, on the server side the following components </li></ul><ul><li>forms part of environment: </li></ul><ul><li>Operating System (like solaris, HP-UX, AIX) </li></ul><ul><li>System Libraries (like SH, openSSL) </li></ul><ul><li>Services (like Apache, Oracle/Sybase) </li></ul><ul><li>Run time Environments (like JDK, SDK) </li></ul><ul><li>Application Servers (like WPS, Websphere) </li></ul><ul><li>etc </li></ul><ul><li>It is very important to keep all the above components consistent in all </li></ul><ul><li>environments used for the build, release and deployment. </li></ul><ul><li>Example: </li></ul><ul><li>A developer might be doing development on windows based workstations, while the </li></ul><ul><li>deployment has to be carried out on the UNIX based environment. In this case, consistency can </li></ul><ul><li>be maintained at the Tool or Stack Level, by having the same JDK, SDK,app libraries etc. </li></ul>
  6. 6. Consistent Environments?...continued <ul><li>Consistent Environment means in 2 ways: </li></ul><ul><li>All Environments (Development, Staging) should use the same components (System, Software) to maintain consistency with the production environment (sometimes non-realistic, due to parallel dev/testing) </li></ul><ul><li>Consistency with all developer environments (workstation etc) used for development, build and unit test. </li></ul><ul><li>One can achieve a consistent Environment with the following: </li></ul><ul><li>Version control of all components (server, workstation configurations etc) </li></ul><ul><li>Centralizing the storage of the components & its downloads. </li></ul><ul><li>Developing a strategy to run multiple versions of the components </li></ul><ul><li>Automated/Scripted way of deploying components (server, application etc) </li></ul><ul><li>Identifying and Documenting all application dependencies. </li></ul><ul><li>Good Packaging Strategy </li></ul><ul><li>Virtualization (VMWare, Virtual Server) </li></ul><ul><li>Tracking Environment Changes with a good change management tool coupled with a robust process </li></ul>
  7. 7. Sample Workflow <ul><li>Sample workflow covering the activities happening as part of </li></ul><ul><li>Development, Build, Release, Deployment & Environments Management. </li></ul>
  8. 8. When to involve? <ul><li>In the RUP model, both Environments and Configuration Management </li></ul><ul><li>is involved from inception till transition & goes hand-in-hand with other </li></ul><ul><li>disciplines. </li></ul>
  9. 9. Institutionalization <ul><li>The Growth of the Environments and Configuration Management is measured interms of time and commitment. </li></ul><ul><li>To Institutionalize the awareness has to be spread, a good understanding and piloting in the projects are key. </li></ul>Time Commitment Awareness Understanding Piloting Institutionalization
  10. 10. <ul><li>Thank You </li></ul>