6 ms·
Show HN: SetOps – Run containers, databases and more in your own AWS account
- tobi_tobsen 4y agoHey HN! I’m Tobi, Co-Founder of SetOps. Heroku is awesome; I started my dev career with it as well. But for us, a digital agency, it didn’t scale very well, mainly price-wise. AWS solved the pricing issue but made our dev teams slow since they did not know the in-and-outs of AWS and therefore relied on the DevOps team, which became a bottleneck for new projects. During this time, the idea of SetOps was born. We imagined a tool that empowers developers to run their applications in the cloud to ship apps faster. But it needed to be flexible enough to fulfill all our customer’s requirements. So our key target group is Devs & DevOps alike. By providing a web interface, CLI and API, it can be used by devs and automated CI/CD systems. Unlike other players like Heroku with SetOps users deploy to your own AWS account – keeping ownership and control of their infrastructure, allowing them to leave SetOps as they please and profit from AWS saving plans which might save a lot of money. Two important topics to us are reliability and cost-efficiency. By using AWS ECS, managed load balancers, autoscaled EC2 instances, and redundancy across data centers, the infrastructure and, therefore, the deployed applications are highly available and self-healing. By sharing resources as much as possible – like one load balancer for multiple apps and shared database instances – SetOps can save some additional bucks. If there is a use-case that SetOps does not support, it can be extended by additional AWS resources and external cloud services like MongoDB Atlas via VPC peering. Also, a reason to deploy to one’s own cloud account. Although user-facing SetOps is currently an imperative infrastructure tooling, under the hood, we use a JSON definition of a so-called stage (a collection of apps and services) which we pass to Terraform to ensure that the state in the cloud account always matches the desired state. This allows for fixing broken AWS configurations as well. Long story short: if SetOps sounds interesting, check out setops.co. We are looking forward to your feedback and use-cases.
- superb-owl 4y ago> Isn't it just Kubernetes under the hood? That's not the right question...Kubernetes is just one of the building blocks for easy and secure app deployment. It is not a one-shot answer for day two operations such as reliable databases, load balancing, backups, certificates, and data security...With SetOps, you don't need to care how we run containers – you'll profit from the sensible choices and long hours our infrastructure experts spent to make sure it runs well. I have really mixed feelings about this response. On the one hand, I 100% agree - vanilla k8s is not prod-ready, and you need to do a _lot_ of work to figure out some things, especially around persistent storage (but load balancing and certs are a pretty solved problem). But the line "you don't need to care how we run containers" bugs me. Maybe your two-person start up doesn't need to know, but eventually you will grow to the point that you _do_ need to care how things are running, and need control over it. This is why so many companies end up outgrowing Heroku and have to go through an expensive migration. What I'd love to see is a "batteries-included Kubernetes", which allows me to slowly take control over more and more of the stack, until I'm a 1000 person company and ready to run my own clusters.
- lukeramsden 4y agoThis also makes sense as somebody who has never deployed to or operated k8s - I want the most prod-ready and batteries-included cluster config, which I deploy myself on my own infra, and can then customise as and when I need to, and learn as I go.
- _whiteCaps_ 4y agoHave you seen https://github.com/cloudfoundry/cf-for-k8s https://github.com/cloudfoundry/cf-for-k8s?
- latebird22 4y agoMy experience with tools like these on Kubernetes, even with something stable and widely used as e.g. certmanager, is that in the end something still breaks and you still need to get familiar with all the building blocks. In comparison if you use managed services like the AWS Certificates service you have less friction and less risk for something to break.
- chrisweekly 4y agoGood abstractions always allow you to drop down a level as needed.
- latebird22 4y agoInteresting thought. I can see your case for some growing companies. However I'm not sure if you would always need Kubernetes for this. What would you like adjust when we grow into a 1000 person company? I think you have still similar requirements like autoscaling, resource allocation, zero-downtime deployments etc. This is also possible without direct access to the container management. And there are a lot of companies which do not become the next Unicorn and need an easy way to manage their container workloads. SetOps currently uses ECS since it comes with no additional overhead costs for the management plane/API and does the container management job well enough. However this is not a definite decision and ECS could be replaced in the future. The main point is that there is a simple abstraction for users managing the workloads and that the "backend" is interchangeable.
- melony 4y agoCrowded space! Flightcontroller, qovery, Architect. Competition is stiff, I am interested to see where your product is heading.
- tobi_tobsen 4y agoHaha, that's true! I'm excited to see so much interest in making Cloud Native more accessible. Companies like Qovery and FlightControl make awesome products too, of course. This is not a winner-takes-it-all problem because the market is huge and infrastructure is diverse. Great developer experience is a win for everyone.
- nullcipher 4y agoHeh, I haven't even heard of any of those alternatives! Thanks for the list.
- Lazare 4y agoAlso: https://getporter.dev/ https://getporter.dev/ https://convox.com/ https://convox.com/ https://atomizedhq.com/ https://atomizedhq.com/ And closely related: https://humanitec.com/ https://humanitec.com/ https://www.okteto.com/ https://www.okteto.com/ https://www.env0.com/ https://www.env0.com/ And then old options like: https://dokku.com/ https://dokku.com/ https://caprover.com/ https://caprover.com/ And maybe: https://swarmpit.io/ https://swarmpit.io/ https://coolify.io/ https://coolify.io/ https://www.bunnyshell.com/ https://www.bunnyshell.com/ https://platform9.com/ https://platform9.com/ And probably a dozen more. It's kind of wild.
- ohmanjjj 4y agoTruly a SaaSflation is upon us
- nickstinemates 4y agoAnd don't forget - https://cycle.io https://cycle.io
- throw03172019 4y agoDon’t forget Convox. https://www.Convox.com https://www.Convox.com
- codegeek 4y agoI donno. I am looking for a simpler solution on top of AWS that abstracts away setting up the services with configuration but doesn't necessarily use containers for everything and def. not Kubernetes. Is this not desirable for others ? All the solutions that I see are focussed on containerizing (I get that to an extent). But I would personally want a service on top of AWS that abstracts away setting up EC2, load balancers, auto scaling, RDS etc etc. Does it have to be kubernetes ?
- latebird22 4y agoThat's exactly the idea with SetOps: using all these components under the hood but abstracting it for the user with a much simpler management. You could give it a try in the demo environment if you like.
- dgivney 4y agoIt sounds like you might benefit from AWS Beanstalk which feels like a configuration widget built on top of CloudFormation - https://aws.amazon.com/elasticbeanstalk/ https://aws.amazon.com/elasticbeanstalk/ Choose your stack and beanstalk deploys to a load balanced, autoscaling group in your VPC. You can attach a RDS when you choose your stack. And all resources can be managed separately or through CloudFormation. Beanstalk also supports container deployments. From the website > "You can simply upload your code and Elastic Beanstalk automatically handles the deployment, from capacity provisioning, load balancing, auto-scaling to application health monitoring. At the same time, you retain full control over the AWS resources powering your application and can access the underlying resources at any time. There is no additional charge for Elastic Beanstalk - you pay only for the AWS resources needed to store and run your applications."
- oakct 4y agoNice project! Just a note of feedback: for a service that advertises with transparently deploying resources to my own AWS account, it is surprisingly difficult to find out to what AWS services the various concepts in setopts maps to. Given that I would be the one paying for any mishaps and overprovisioned resources, it would be good to have a reference for this. Maybe I missed it?
- latebird22 4y agoThank you so much for your feedback. You are not mistaken – it looks like our documentation is currently lacking some of these details. We are going to improve on that within the next days. I can share a slide of one of our presentations right now which roughly shows the inner workings of SetOps in your AWS account: https://static-media.setops.co/infra/aws-components.png https://static-media.setops.co/infra/aws-components.png
- cagataygurturk 4y agoWhat is your product‘s difference with Cloud Run?
- latebird22 4y agoFirst of all Cloud Run only provides the workload / container part of an application. SetOps also does more like managing databases, storage, backups, monitoring, network security, etc. Also you have some potential for saving money by over-provisioning your workloads on the actual compute instances, which is, as far as I can see, is not possible with Cloud Run.
- throw03172019 4y agoThis sounds super similar to Convox (generation 2 - built on top of AWS ECS). Is SetOps using Kubernetes (EKS) or ECS?
- latebird22 4y agoIt's using ECS so that there are no additional costs for the control plane, like there would be for EKS.
- rco8786 4y agoI want to love this. I think we desperately need the "new heroku" and this touches on that. BUT, it takes 24 separate commands to launch a "quick start" rails app. Hopefully this is just a alpha/beta experience, and the idea is get these going a little easier? And once I launch it, what AWS resources are being used? How much should I expect this quick start rails app to cost me? Having a hard time figuring that out.
- tobi_tobsen 4y agoSure, this is only the start. Internally we have a definition file; the CLI is, so to say, the fancy editor for it. We plan to open up this definition in a JSON or YAML file. Regarding the AWS Resources being used: The cost estimation feature is on the roadmap, telling you how much exactly one Project costs. And showing you in advance how much more changes will cost. Using SetOps starts with base costs since we need at least one EC2 instance + database running and some other services. The base costs are ~130$, including your first apps. But launching your first 10 containers doesn't bring many additional costs, so running some apps are quite cost-efficient. Someone else already stated here that something is missing in the docs regarding the services provisioned in AWS. We will deliver that! For now, I can show you this slide from the internal pitch deck: https://static-media.setops.co/infra/aws-components.png https://static-media.setops.co/infra/aws-components.png
- icodefuture 4y agoLooks super promising