Managing environments for your cloud deployments

Managing environments for your cloud deployments

One of the first technical decisions you will make at the start of a cloud- based business application project is the management of your software environments. You need to think about how many instances you need for configuration, development, testing, training, and staging to get to the production. Each type has a different life cycle and characteristics. The more environments you create, the more work you must do to sync them up. Having a good plan upfront will save you some headaches later.

For development, you are going to need multiple environments to enable simultaneous work. These environments are created at the start of the project. Some will exist even after the go-live, for continuous improvement. They are used for configuration, customization, integration and data migration. They are smaller in size and need to be connected through a code management tool - such as Azure DevOps (formerly known as Visual Studio Team Services). These development environments then feed a single testing environment.

The testing environment is larger in size and created at the start of the project also. It stays on during and after the project is completed. It is used for end to end testing. Even though unit tests can be conducted within the development environments, the merged code needs thorough testing by the larger project team in a single environment. During the project, this also becomes the hub for the pristine configuration of the solution.

Toward the end of the project, you are going to need a training environment. As you open the solution to more users, they need a separate environment to learn the solution. This is also large and stays on until the go-live. It is a controlled instance with specific training data. It is refreshed regularly with the latest configuration settings.

As you are approaching the go-live, you need to create two environments: the staging and production environments. Both will stay on after the go-live. The Staging environment is small and will maintain the latest code base and settings to be promoted to the production environment. The Production environment is the largest one and tightly controlled by the software vendor.

In large projects where transaction volumes are high, you may need to boot up a performance testing environment. This is generally a large environment that resembles the production instance. You will use it for a brief period towards the end of the project to ensure the scalability of the solution.

The movement of code, settings and data across these environments requires a highly coordinated effort. You may end up creating multiple build environments to keep track of different versions of the code: what is live in production, what is being tested, what is being developed, etc. You need to consider which environment keeps the pristine settings, how frequently code needs to be merged and distributed, how to store setup, testing, training data packets, etc. It is a best practice to write down your procedures upfront before rushing into creating bunch of instances.

So far, we focused on the environments for the software you are deploying. In addition, you need testing environments for the software you are integrating to. You cannot use production environments to test integrations to your new solution.

If you are interested to learn more, please connect with me in LinkedIn, follow me at Twitter, or watch me at YouTube.

My name is Cem and this has been another gem.


To view or add a comment, sign in

More articles by Cem Item

  • How to conduct your weekly project updates

    Every project manager is asked to provide a weekly update. Key stakeholders want to know how the project is progressing.

  • Best practices for cut over planning

    Each cut over requires a leap of faith. You are letting go of your legacy system and embarking on a journey with the…

  • Running blind without system diagrams

    Replacing a legacy business system is like replacing a piece out of a tower of wood blocks - a game of Jenga. You need…

    3 Comments
  • How to train your project team and end users

    Training is an interesting subject in system deployments. Everyone agrees that it is important for the success of the…

    1 Comment
  • When to enable product configuration

    At one time or another, most consumer goods companies will try to expand their customer base to gain market share. As…

    1 Comment
  • What to do with your transaction history

    New system deployments trigger an important question: what should you do with your transaction history in your legacy…

    3 Comments
  • How to transition to support

    The long-term viability of your new solution depends on how smoothly you transition it from your implementation team to…

  • Visualizing your business model before system design

    A good system design cannot be accomplished without a solid understanding of the business model. This is especially…

    8 Comments
  • When and why product dimensions matter

    Stop me if you have heard this one: a guy walks into a store, shows a salesperson a picture of a shirt he likes and…

    1 Comment
  • How to assess your go-live readiness

    How do you know if you are ready to “go live” with your new system? The answer is, obviously, quite important. If you…

    1 Comment

Others also viewed

Explore content categories