

Ask HN: Would you use a Django package that models the AWS console? - micah_chatt

We have internally developed a django package for spinning up and down EC2 instances, autoscale groups, scaling policies, ELB&#x27;s, RDS instances, IAM Users&#x2F;Groups&#x2F;Roles and policies, security groups and rules, VPC&#x27;s, subnets, and more.<p>It shares similarities with Netflix&#x27;s Asgard, but is written in python using django and is easily extensible for developers familiar with python, as opposed to groovy&#x2F;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.<p>Would you be interested in seeing this open sourced? Would you use it?
======
philtar
Hell 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.

------
amitu
Can you show some screen shots? I think it could be useful in getting more
interest.

~~~
micah_chatt
Screen 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
Thanks 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
Your 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.

------
itsyogesh
I would be really thankful to you guys.

------
kvarga
Yes. Must see.

------
webology
Absolutely.

