4 ms·
Ask HN: Would you use a Django package that models the AWS console?
We have internally developed a django package for spinning up and down EC2 instances, autoscale groups, scaling policies, ELB's, RDS instances, IAM Users/Groups/Roles and policies, security groups and rules, VPC's, subnets, and more.
It shares similarities with Netflix's Asgard, but is written in python using django and is easily extensible for developers familiar with python, as opposed to groovy/grails. We use the Boto package for interacting with AWS, and the models have a .sync() function for pushing locally modeled infrastructure changes into AWS.
Would you be interested in seeing this open sourced? Would you use it?
- webology 13y agoAbsolutely.
- kvarga 13y agoYes. Must see.
- itsyogesh 13y agoI would be really thankful to you guys.
- amitu 13y agoCan you show some screen shots? I think it could be useful in getting more interest.
- micah_chatt 13y agoScreen shots of the admin panel http://imgur.com/a/B3rbO http://imgur.com/a/B3rbO Features: * Models have several extra/modified methods: .sync(force=False) # push changes to AWS .should_sync() # if last .last_aws_sync() > self.last_update_time .destroy() # for deleting in AWS .delete(destroy=False) # override of .delete to call .destroy() on delete * Uses django-encrypted-fields for storing passwords, SSH keys * Uses django-netfields for validating subnets * Uses jsonfield for validation and storage of IAM policies in postgres. Each model has an additional interface for making calls to AWS. This keeps .models from being too huge. There is still much to model and build out, but we're actively using it in production.
- amitu 13y agoThanks for the screenshot. Interesting. I am not getting the point of it. I mean, its kind of a "api translation" right? Instead of using boto, you will be using django's db-api to create/manage things. This in itself is quite compelling, who wants to learn boto? I am wondering if this was the reason you built it, or you had some other use case? Also, this is a little bit less "accurate" than boto right? If for example I have to query the number of instance running using my account, a direct query using boto will give me accurate result, but a query on django can be out of sync due to any number of reasons. Is there anything to summarily say if my data is in sync with EC2? Good work btw, I think you should def open source it. :-)
- micah_chatt 13y agoYour points are valid, its not a total replacement to the console, and is a wrapper around Boto. There are several reasons that we use this: * 'Template' out our infrastructure. If us-east-1 is ever down, we can easily re-create and spin up in us-west or wherever we'd like. * If us-east-1 ever goes offline (a-la hurricane sandy), we have a record of what size/how many resources we had in production. Especially helpful since our infrastructure is dynamic. We add autoscale groups as we gain customers. * We can easily foriegn key models in other apps in our project to an Autoscale group/ELB's etc. Ex: a customer is assigned to a particular autoscale group or load balancer. * The loss in accuracy is acceptable, as we don't use every feature of AWS, so we only (at this point) have built out the necessary features.
- philtar 13y agoHell yes. Please don't disappear after saying you're thinking of open sourcing this. Also like the other guy said, screenshots would be very nice.