Decoupling Environment Configuration from Application Archive
Name
Ats Uiboupin
Abstract
Every application that aims to be reusable in different environments, needs a mechanism that can be used to receive the environment-specific configuration. Therefore deploying a web application often requires much more than just packaging and uploading it to a server. Most of the time different configuration is needed for running the application in development, testing and production environments.
One example of the configuration that is usually different for all environments is connection data for database server: host and port of the database server, username and password. It makes sense that when configuration value needs to be changed, then the whole application should not need to be rebuilt from scratch, but instead a single configuration parameter should be modified. Changing configuration parameters is often sole responsibility of delivery manager and it should not require involving other people, such as developers, to do a simple configuration change.
The purpose of this study was to investigate solutions to decouple environment-specific configuration from the application archive, to provide more convenient ways to change environment-specific configuration for the application. As a result of the theoretical part of this study, many goals were set for the environment-specific configuration management feature. All these goals have been achieved in the environment-specific configuration management feature added to LiveRebel (i) by providing means to assign configuration for each deployment environment from one place and (ii) by providing ways to deliver those configuration values to the application. Two different approaches were implemented for applications to receive the configuration values assigned for the environment where they are deployed. One approach is used automatically by LiveRebel to replace configuration parameter value placeholders from the application archive before deploying the application. Another approach can be used programmatically by the applications that are already deployed to the servers managed by LiveRebel. When those applications are running, they can programmatically detect current configuration parameter values assigned to that specific environment via Command Center.
Environment-specific configuration management feature added to the LiveRebel application deployment tool aims to provide flexible means for operations teams to easily configure the applications they manage and to simplify the technical solutions used by developers to configure the same application for different deployment environments.
Graduation Thesis language
English
Graduation Thesis type
Master - Software Engineering
Supervisor(s)
Neeme Praks, Helle Hein
Defence year
2013