Before we begin with our journey to understand KonfDB configuration model, it is worth while to have a look at a few scenarios where configuration management plays a vital role. The scenarios mentioned below will be applicable to both enterprise applications and consumer applications.
Multi-tenant Enterprise Applications
The word multi-tenant applications, generally, refers to a piece (single-instance) of software that runs on a machine (or may be set of servers based on the scale) to cater to multiple clients. So if the software is large scale application, the application architect would typically partition this application on several aspects – data, load, hardware configuration, affinity, latency and alike. Sometimes even functionality is partitioned (or distributed) between components of this application.
The economics of multi-tenant applications (and their architecture) result in cost benefits at the expense of complex release management, configuration management, source code maintenance, data-store schema rationalization and many more.
One size doesn’t fit all. Each application team handles these complexities in a different way, probably in a best possible way in their ecosystem.
KonfDB positions itself to resolve the complex configuration management issues and provide a consistent model for large-scale applications deployed in different regions and multiple servers. It integrates right at the time of development and helps application teams take their configuration into production.
Furthermore, KonfDB removes the dependency of storing configuration on flat files (XML, JSON or properties files). For any configuration change, you would not require a production packaging, release and deployment. No change management related issues, and no effort on release & deployment gives you teams more development time.
Cross Platform Applications Configuration
With increase of social media and personalization of content over the Internet, most of the applications we use are supported on multiple platforms – Mobile/Tablets, Cloud, Desktop and Web. A lot of times application development on these 4 platforms involve development in different programming languages with different teams.
Different programming languages have different methodologies of maintaining static and configuration data. An application built on JAVA may rely on property files, a .NET application may rely on app.config files, whereas a Azure application may rely on both app.config files and online configuration on Azure portal. Furthermore, all these platforms have different API to read configuration.
This adds an overhead of configuration management as soon as the application scales in market.
KonfDB Host provides an easy way to read configuration using HTTP and TCP protocols and also provides REST API. This helps you centralize your configuration for all your instances on any platform regardless of the programming language differences.
Small Scale & Hobby Applications
For Entrepreneurs, Small and Medium scale businesses (SMBs) and hobbyist developers, it is extremely important to launch a product faster in the market. In the course of product development, there are several Rapid Application Development tools that reduce the complexity of application & database design. However, when it comes to configuration management a lot of applications end up with hard-coded configuration or local configuration files.
KonfDB provides complete configuration management using proven data model so that any application can use it with minimal configuration. With around 10 minutes of first-time configuration, your application can be ready to use non hard coded values from centralized configuration service.
Bring in the consistency in configuration management across your multiple applications
Auditing Configuration Changes
In most organizations, configuration changes are usual audited activities. Every small change in the configuration is either controlled by a configuration/release manager and is tracked in some document for the purpose of audit. Generally, this document is part of a change ticket.
As a process, this is perfect. But there are some loose ends that need to be tied up. There is no direct link between this change system that audits the configuration change and the actual configuration. This information is good for audit – that happens probably once in an year. But is not good for the development team as it is not easy to find. For large size teams, it’s again a tedious job.
KonfDB ensures all authorized actions are audited in the same data store. Audit information is available at each level – configuration, master data, user logins and access management. This information can be easily retrieved