← All Articles

How do you configure your software?

Khash SajadiKhash Sajadi
Feb 7th 12Updated Jul 27th 17

How do you configure your software?

We usually have config files. XML, YAML, INI and Property and the like. You know the drill.

They work fine. Right?

The problem is we thought config files were fine until we got tiered of probelms like:

  • How do you manage different environments in config files?
  • What if you have more than environments? Like different
    configuration for different geographical regions? or different app
    types: mobile, web and desktop apps configured differently.
  • What are we going to do about the developers? Share the same config?
    Or do we give each developer a separate config file and make sure
    they don’t check it in?
  • How about testers? Or handing over the app from Development to
    Operations? How do we tell Ops what to set the db names, queue
    addresses, endpoints and ports in Production? And make sure they got
    it right?
  • How about audit? changes? who changed what in Production? Why did it
    change? Do we allow developers change configuration of production
    systems? Or can they only see it but not change it?
  • And passwords or API keys? Do we leave them in text files just like
    that?
  • What about sharing configuration values. You know: database name is
    the same everywhere but the server address isn’t. things like that.
    Except for the QA when it’s in Europe!
  • How are we going to support multiple versions of the software? Not
    everyone upgrades their apps at the same time. How do I manage
    different versions of the configuration?
  • …and change notification. I wish I could change the config on the
    fly and tell all instances that it’s changed.

Our list grew bigger and bigger with each project. So we thought: ENOUGH IS ENOUGH! Let’s fix this configuration thing once and for all!


Try Cloud 66 for Free, No credit card required