468 karma · joined March 18, 2010
These are fun projects!
It’s great to see all the amazing tooling being built into this space. Other companies to check out include flightcontrol, architect, quovery, Coherence (withcoherence.com - disclosure that I’m a founder), stacktape, and zeet.
Would be happy to discuss getting a PoC setup to see if it helps in your case, or to answer any questions, feel free to reach out
Hopefully the chat and functionality makes it more useful than just a guide or manifesto.
Any ideas or feedback welcome!
Disclosure - I’m a cofounder
At Coherence (withcoherence.com) we're focused on a developer experience layer on top of AWS/GCP. You might describe it as flyctl for AWS.
Feel free to ping hn@withcoherence.com if we can answer any questions or help you get running…
There's a new class of tools emerging that represents a 3rd way. withcoherence.com (I'm a cofounder) gives you the preview environments, built-in pipelines, and friendly UX that Vercel has set the standard with, while operating against your GCP or AWS account. Lock-in, uptime, service diversity, compliance, and pricing are all better on AWS/GCP than a PaaS. Coherence even adds a built-in Cloud IDE, giving you a gitpod or github codespace alternative with zero additional config or integration work.
Most of the "PaaS in your own cloud" category is a pile of kubernetes abstraction. Coherence is something different, that represents a real alternative for teams that are used to a great workflow, but who don't want to invest the time to glue together open source and IaaS, or who aren't a fit for enterprise grade CNCF-based tooling.
If anyone wants to check it out more or has any questions, happy to answer them or to help with migrations - just hit up hn@withcoherence.com!
There's no difference to a business between first-gen infra as code (terraform/cloudformation) and second-gen (CDK/pulumi/etc ...). They both should be replaced by a developer platform that runs in your own cloud
The best tool to build on is something that combines the two with one simple config, like what we're building at withcoherence.com!
To first address the idea that preview environments are trivial to build or are already solved, generally we think that’s not true except in a “rsync=dropbox” kind of way. On top of what we’ve already built at Coherence, which represents a considerable investment of resources (especially when compared to what’s available to software teams <30 heads), there’s still so much more to do before we are even close to 10x better than what teams do today with PaaS or Infra-as-code.
Staging and other static pre-prod still has a place in the SDLC, the rise of previews doesn’t mean that these have no place. If your app has static integrations with 3rd parties, special data that needs to be manually managed, or integration with other workflows/teams/customers that require manual integration - staging/pre-prod has a huge place. In our case, Coherence supports static environments just as easily and fully as it supports previews (as do many other devops automation tools).
To the point above about tons of work left to do, one of the biggest pieces is helping with data generation/automation for new environments. Integration with data anonymoization tools to make moving data from prod possible, data generation/seeding tools that can introspect a schema and generate realistic data, and a library of snapshotted datasets from other envs are all things that some teams do, but which should be available to everyone. Features like load testing and security scanning for ephemeral environments are adjacent areas of opportunity.
There is absolutely no question that sprawling microservices make automating previews more complex, as do bigger teams. And the concerns around cloud cost are 100% valid. On cost, Coherence automatically does things like use spot instances and pause inactive environments. In practice, cost is not the primary issue with usability. Complex serverless systems often have the most trouble with dependencies across 100’s of functions and cloud-provided resources, and to us that only means that these kinds of systems will benefit the most as preview automation scales to encompass them (it still doesn’t do a good enough job today). That said, for a lot of real-world teams, there are cheap productivity benefits on the table if they’d invest in better developer experience.
Alongside reproducible cloud-hosted dev envs, automated pipelines, and ephemeral environments, feature flags and canary releases are also relevant best practices for release management. Coherence doesn’t really help with either of those at this point, but great tools exist for lots of language/framework ecosystems already.
We’re still a new product/company and we love hearing from users - feel free to ping hn@withcoherence.com with any questions/comments!
In general, while it's clear that somehow cloud complexity needs to be abstracted away from developers, I don't think it makes sense that new programming languages or frameworks are necessary to do this well. It makes migration of existing apps and backwards compatibility with the existing software ecosystem too challenging.
At Coherence (withcoherence.com - I'm a cofounder), we believe that a new category anchored by tools like replit, AWS CodeCatalyst, and our products is the solution to this problem, because it does not have the same issues. Instead, it offers best-in-class versions of the same workflows and toolchains that teams are using now, while radically reducing the investment required to get there.
It's an exciting time in the DevOps world!
The other thing that this misses is that the deployments to the cloud are only half the battle. CI/CD pipelines, Dev environments, and other SDLC phases like planning and testing are just as important as terraform. Making the infra as code better and more reusable is a great step in the right direction but only part of the puzzle to making software development workflows better in the big picture.
It's clear that AWS is more popular, especially with startups, but my experience is that GCP is better, if viewed through a user experience and product quality lens, outside of a few notable exceptions such as SSL certs (ACM) and some NoSQL DB products.