Live data from Hacker News

Migrating from Heroku to AWS using Docker

blog.doordash.com

51–58 of 58 posts

Re: Migrating from Heroku to AWS using Docker

#51

A year into this I'd love to hear a cost benefit analysis including infrastructure & ops cost, uptime, disaster recovery, security management (key rotation, heartbleed-like threat mitigation, etc), and overall developer happiness.

Having run Cloud66 for the past year, I can say that actually managing infrastructure and dealing with security management such things would have been prohibitively expensive. Cloud66 has taken care of things like heartbleed and package updates (and alerts for rails updates). It's been a good experience in that I learned that I really do want a managed hosting environment - since I can see what they've done, but don't actually have to do it myself.

I would also love to hear a cost benefit analysis a year into managing your own servers.

Re: Migrating from Heroku to AWS using Docker

#52

This post is mostly focused on migrating application instances. I wonder what's the best step-by-step way to move database from Heroku/EY/etc provider to Amazon . And is it possible to first migrate app instances that would for some time use Heroku DB and then migrate the DB itself? Instead of doing everything in one big step?

[deleted]

Re: Migrating from Heroku to AWS using Docker

#53
post #14

Interesting way to go about it. But how scalable would this solution be? I would love to hear your opinion on your implementation vs using the traditional configuration management tools. Which would perform better? My point being that in the future when you have scaled out to a lot more servers you shouldn't have to end up trying to move everything to chef later on.

I'm curious about what kind of scalability challenges you had in mind?

Re: Migrating from Heroku to AWS using Docker

#54

Earlier quoted context omitted.

Yup, pretty much. We actually were using Docker Hub but they went down a few times so we are going to try setting up a private registry. We also tried Docker Hub's "Automated Build" service but it doesn't do any layer caching between builds so we found it way too slow. One thing I'd recommend is at least installing the Docker service itself on the AMI (spinning up EC2 instances, especially on Opsworks, is slow enough…

I actually trust Docker Hub more compared to a private registry setup... had so many hard to debug EOF errors, registry container crashes, etc. But the Docker Hub is also a single point of failure, so now I'm considering just having our CI service dump (docker save) the container build to a tarfile and send it to S3, then having the destination host download it and run docker load. Docker's handling of layers is excr…

We use private registry instances behind an ELB, with the containers stored in S3. When production counts on the registry being available, you've got to ensure reliability of the service and durability of the underlying container data.

Re: Migrating from Heroku to AWS using Docker

#55
post #41

Earlier quoted context omitted.

I appreciate your response, but - When you discuss CM being necessary, you are talking about using it on the host and not within the container. Ultimately, operability and proper configuration inside the container is critical. Using a Dockerfile with no CM inside it is not much of an improvement on not using CM anywhere. You don't need stateful CM inside the container. It's fine to fire and forget - use Puppet in app…

What else do you think is happening under the hood when you use a CM tool like, say, Ansible? Ansible translates your configuration to small Python scripts, uploads them to the remote host and runs them. What I'd like to see is a "script dump" output that still lets you create your yml configuration but converts it into shell scripts that you can call from your Dockerfile without any dependencies. Of course, now you…

What happens under the hood is almost irrelevant, because it's predictable and repeatable.

Re: Migrating from Heroku to AWS using Docker

#56
post #23

Earlier quoted context omitted.

That's definitely something we considered doing at DoorDash. I've heard bad things about it as you want more control over deployment/package upgrades, etc. how has that played out for you?

I'm also curious if any large projects use it. We tried it out for a couple weeks - it worked fine but we felt overly constrained by the configuration rules and ended up rolling our own solution.

We use it at Mi9 to run some of Australia's highest trafficked websites, like ninemsn.com.au (and family of new sites) and jumpin.com.au. Also Stan.com.au (Australian Netflix competitor) runs their micro service architecture on Elasticbeanstalk

Re: Migrating from Heroku to AWS using Docker

#57

I'm in a situation like this as well, using Heroku but not happy with the performance on the Dynos and looking to move to EC2 (we already use our own databases etc hosted on EC2). The biggest issue is finding a solution which can give similar ease of use and functionality as Heroku. Doing a opsworks/chef setup like this isn't appealing - over time we want to have many microservices which can be scaled independently,…

"It also doesn't seem to have any way of easily running and scaling multiple processes per app like you can with the Procfile on Heroku."

Have you seen that Elastic Beanstalk now lets you deploy multiple Docker containers in a single environment?

https://aws.amazon.com/about-aws/whats-new/2015/03/aws-elast...

Re: Migrating from Heroku to AWS using Docker

#58
post #57

I'm in a situation like this as well, using Heroku but not happy with the performance on the Dynos and looking to move to EC2 (we already use our own databases etc hosted on EC2). The biggest issue is finding a solution which can give similar ease of use and functionality as Heroku. Doing a opsworks/chef setup like this isn't appealing - over time we want to have many microservices which can be scaled independently,…

"It also doesn't seem to have any way of easily running and scaling multiple processes per app like you can with the Procfile on Heroku." Have you seen that Elastic Beanstalk now lets you deploy multiple Docker containers in a single environment? https://aws.amazon.com/about-aws/whats-new/2015/03/aws-elast...

I have, and I should really look into it more. Although my experience using Docker on Elastic Beanstalk hasn't been so great.

We actually upgraded to PX dynos recently and the performance is great - just expensive!

Post reply on HN