Keskkonnapõhise konfiguratsiooni eraldamine rakenduse arhiivist

Date

2013

Journal Title

Journal ISSN

Volume Title

Publisher

Tartu Ülikool

Abstract

Iga rakenduse paigaldamisel erinevatesse keskkondadesse (nt arenduskeskkond, kvaliteedikontrolli keskkond, toodangkeskkond) on vajalik rakenduse konfigureerimine, mis sõltub keskkonnast, kuhu rakendus paigaldatakse. Rakenduse tarne ja paigaldusega on sageli seotud mitu inimest ning rakenduse (ümber)konfigureerimine toimub sageli käsitsi, mis on aega- ja ressurssinõudev tegevus. Kui keskkonnapõhise konfigureerimisega seotud info on rakenduse osa, siis peale konfiguratsiooni muutmist sageli ehitatakse kogu rakendus uuesti. Tavaliselt rakenduse keskkonnaspetsiifilise konfiguratsiooni muutmine ei nõua kogu rakenduse uuesti ehitamist, vaid üksnes konfiguratsioonifailide sisu muutmist. Käesoleva töö eesmärgiks on välja töötada lahendus keskkonnaspetsiifilise konfiguratsiooni eraldamiseks rakendusest, mis võimaldab lihtsustada rakenduse konfigureerimisprotsessi. Käesolev töö on jaotatud kaheks suuremaks peatükiks. Töö esimeses peatükis tutvustatakse erinevaid metoodikaid, mida on võimalik kasutada rakenduse konfigureerimiseks. Samuti antakse ülevaade, millised on võimalused neid meetodeid kasutades teha rakendusele kättesaadavaks keskkonnaspetsiifilised seadistused. Lisaks tutvustatakse rakenduste paigaldamiseks mõeldud toodet LiveRebel, millele antud lõputöö praktilise osana lisati lahendus, mis võimaldab keskkonnaspetsiifilisi seadistusi tsentraalselt määrata. Keskkonnale määratud konfiguratsiooni kasutatakse automaatselt paigaldatavale rakendusele konfiguratiooni kättesaadavaks tegemisel, milleks rakenduse jaoks on realiseeritud kaks erinevat võimalust. Teises peatükis sõnastatakse detailsed eesmärgid rakendusele LiveRebel lisatava funktsionaalsuse jaoks ning selgitatakse, milliseid lahendusi iga seatud eesmärgi saavutamiseks kasutati ning miks alternatiivsed lahendused kõrvale jäeti. Suur osa väljatöötatud lahendustest on juba LiveRebel viimases versioonis olemas ning ülejäänud kirjeldatud võimalustest on valmis ning muutuvad kättesaadavaks järgmises LiveRebel versioonis - LiveRebel 2.8.
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.

Description

Keywords

Citation