-
Notifications
You must be signed in to change notification settings - Fork 174
Continuous Deployment #527
Comments
Each environment should have different roles Currently, we have 2 known roles:
|
The DB and any other external resources should not be part of this instance, they should be connected using the instance parameters. |
Is Oknesset Using AWS? then db/memcache/redis should be using amazon services, RDS for postgres ELASTICCACHE for redis/memcache etc. Using user data is actually an anti pattern (mostly manual in AWS). I believe (and practice.. ) it's better to deploy an .envs file as part of the deployment process, source it in .bashrc and put ENVIRONMENT variables there and/or in the supervisord.conf (which should also be part of the deployment) |
currently open knesset is using amazon EC2 instances + ELB (load balancer) I'm used to working with user data and launch configurations, but I'm open to any other implementation.. Also, if you want to migrate away from AWS, that's also an option |
We're on AWS but we don't use RDS. The primary DB server also runs the cron While it was free, we used Elasticache, but then we moved back to having We don't use supervisor because we didn't feel we need it yet, but it would On Sun, Feb 14, 2016 at 9:19 AM, Alonisser [email protected] wrote:
|
I just noticed dockerisation is the issue. Anyhow, we started working on a dockerised DB server at one of the hackathons. I dropped it when I couldn't figure out how to give postgres a non-docker directory for the DB files. |
I'm for using Amazon whatever possible, while dockerisation of postgres is Twitter:@alonisser https://twitter.com/alonisser On Sun, Feb 14, 2016 at 1:29 PM, Amir More [email protected] wrote:
|
If you've got a solution for the cron jobs you'll have my vote to move to RDS. |
They can run on a micro instance.. Twitter:@alonisser https://twitter.com/alonisser On Sun, Feb 14, 2016 at 2:19 PM, Amir More [email protected] wrote:
|
I suggest you take a look at what the cron jobs do. I'll add the current On Sun, Feb 14, 2016 at 2:35 PM, Alonisser [email protected] wrote:
|
Updated crontab is at https://github.com/hasadna/Open-Knesset/blob/master/deploy/crontab.txt |
@habeanf looks like what I suggested could work. working example using ecs + data pipelines here: |
Also, AWS Data Pipeline looks interesting but take into consideration the following: |
So a micro instance + RDS is also out of consideration (since RDS is a Twitter:@alonisser https://twitter.com/alonisser On Sun, Feb 14, 2016 at 3:22 PM, Amir More [email protected] wrote:
|
RDS is a problem in that sense, yes. |
I checked prices, 2x m1.small would be 0.094 / h while RDS would be 0.128 (Postgres, Multi-AZ, EU Ireland). That works out to $25 a month. Also the primary DB does the cron jobs, so no need for a micro either. But I do agree its quite ad-hoc and a systematic solution is better; case in point being replication is not working at the moment. |
No replication 😲 .. ok so RDS is currently not an option Twitter:@alonisser https://twitter.com/alonisser On Sun, Feb 14, 2016 at 3:42 PM, Amir More [email protected] wrote:
|
Well once the web server is dockerised we can do everything from google cloud.. |
And no, no replication. There used to be replication but it broke and I never reset it 😳 |
Re: using a micro instance to run the jobs. One interesting approach could be to have that instance start up automatically on demand, like in the link you provided. It might require more than meets the eye because its important we get the logs from the runs, especially if scraping is failing. |
Each release of Open Knesset knesset has a tag on GitHub, for example: https://github.com/hasadna/Open-Knesset/releases/tag/v2.9.0
I would like to be able to deploy a specific version to an environment.
Currently, we have only 1, production environment, but I would like to support any number of different environments.
Each environment should have all it's settings provided externally (e.g. using environment variables), so the instance is generic (for example, an AMI file) - which gets all it's settings external (e.g. from Amazon Launch Configuration User Data)
Ideally we would also have a dashboard which allows to manage all the instances, do the deployments, see monitoring of all instances, all the logs, etc..
The text was updated successfully, but these errors were encountered: