7 ms·
I think this is really great for getting stuff up and running as quick as possible, maybe if you're just starting out, but I'm really surprised at some of the t
by ookblah 7y ago
I think this is really great for getting stuff up and running as quick as possible, maybe if you're just starting out, but I'm really surprised at some of the things said. Maybe if this is a site that you run on the side.
Doing test/staging on a nano and then pushing to production on an m5? What? Like get ready to troubleshoot random issues completely unrelated to your code. And then equating different AMI's to containers is vastly oversimplifying things.
With docker I can just get up and running on my local box and every dev I share this with has the exact same environment and config.
I can package up those images and send them up to ECS/Kubernetes and not deal with the same headaches. The learning curve is a bit steeper, but absolutely worth it.
I walked the same path here (starting out with single VMs for environments, installing services locally on my laptop) and the headaches down the line are not worth it and it isn't even a case of over-thinking the solution. You don't need to ride the cutting edge but modern tooling saves a ton of time.
It was a PITA migrating our old VM stuff over, but absolutely worth it. If you don't want to deal with maintaining systems there are other solutions mentioned ranging from full PaaS to something like GKE.
- mpmpmpmp 7y agoMy favorite part about using ECS was never being able to deploy because our nodes had jacked up ecs agents on them. So the application was still running but you couldn’t touch it. We switched to GKE last year and haven’t had a single problem with infra since. YMMV but for simpler docker/k8s apps GKE has been so easy in my experience.
- eatonphil 7y agoECS Fargate is an option for fully managed container runtime/scheduling on AWS today. We're looking into using this for deploying applications. Anyone here had experience with it?
- cle 7y agoI’ve used it for both running a website and backend batch processing, and it has worked great so far.
- nbouscal 7y agoI’m using Fargate for almost everything now, and am never going back. It’s extremely simple and easy, does exactly what it says it does, and saves me a ton of time and headaches. (I use Terraform to set up services, and CircleCI (with the ECS orb) to deploy updates.)
- spondyl 7y agoWhat happens with Fargate if you need to SSH into the underlying instance? I haven't used it myself, and I'm not sure that it truly abstracts away the EC2 instance, but the description of Fargate always made me assume that to be the case.
- eatonphil 7y agoThere is no underlying instance, it's a fully managed service.
- nbouscal 7y agoI assume eatonphil is correct, but to be honest I’ve never even tried, and in my view that’s actually part of the point: full commitment to immutable infrastructure, made really easy. If something needs to change, I tweak the Dockerfile or the task definition or a config file and redeploy. No more SSH.
- t34543 7y agoFargate is nice but expensive. Run through the numbers for your app. I’m moving away from ECS and going to EKS. The rationale is k8s has a significantly larger user base and I will benefit from that.
- randallsquared 7y ago> With docker I can just get up and running on my local box and every dev I share this with has the exact same environment and config. Well, that's the dream. The reality is like that sometimes, but also sometimes like "I ran `docker-compose up -d` like you said, and the local-dynamodb container seems fine, but the app container output 'Cannot find /volumeforsomething' and died...?" and then there's a slack thread for a couple hours about which version of Docker and is it native or Docker for Mac, and whether to try upgrading Docker for Mac first or just `docker volume rm -f volumeforsomething` or even `docker volume prune -f`...
- diminoten 7y agoYeah but some of us have paid those dues over time and don't have that level of issue with Docker any longer. I used to really struggle getting Docker and docker-compose to do what I want, but after a few years working with it, I'm not blocked by the various volume or network or what-have-yous that used to come up. Alternative proposal: run your containers in docker-compose environments on an ec2 instance. Everyone wins?
- seabrookmx 7y agoWe started that way. I'm honestly surprised this isn't suggested more often. It allowed our devs to benefit from containers while not totally uprooting our existing Infrastructure. We've mostly moved to EKS now but we had plenty of time to do it right thanks to this approach.
- wanabroboticist 7y agoIf it takes years to figure out how to do things "properly" with Docker, then maybe it isn't very good.
- diminoten 7y agoMaybe, but now that I have, it's very very good. It's also totally reasonable to say, "It shouldn't have taken you years." It probably shouldn't have!