2 ms·
I can't give a very complete answer as I've been using AWS to work on a side project for about a whole week. I try to design my app with 12-factor in mind (htt
by Khao 12y ago
I can't give a very complete answer as I've been using AWS to work on a side project for about a whole week.
I try to design my app with 12-factor in mind (http://12factor.net/ http://12factor.net/) so all the configuration is passed to the app at run time (either ENV vars, config files, args or pulled from etcd). I'm trying to run the exact same code while in dev and while deployed in prod. For example I will absolutely try and avoid having "if Env == Test" or "if Env == Prod" in my code.
For example, my service connects to S3 to store/retrieve files. The access key, secret key and even the bucket name are all passed as ENV variables so I can work on a test bucket easily with a test api key without changing code. Some services I can run locally (memcache or redis are really easy to spin up locally) and some services I'll rely on Amazon to provide like S3 even in dev/test. Of course this requires a reliable internet connection but it's the best way to deal with this for me as a single developer/devops.
I'm sure bigger teams handling larger projects could give a lot of valuable information on the subject, I would love to hear about it too.