Now as an end user you still have to add this to your Dockerfile, but if subsequent builds are able to continually use this cache, build times will drastically improve.
497 karma · joined September 15, 2012
Now as an end user you still have to add this to your Dockerfile, but if subsequent builds are able to continually use this cache, build times will drastically improve.
https://www.withcoherence.com/
These exist in the B2B space (and isn't an exhaustive list), there are a ton more in the B2C space
I wonder at what point companies would finally bite the bullet and swap to buying? Maybe cataloging the feature set of the internal software, seeing what is a necessity, and seeing which vendors can cover those requirements?
I'll try to simplify what I mean by that but something akin to having Services A, B, and C.
Each of A, B, and C need their own definitions to define how they need to be spun up as well as a definition on how to populate their data. That data population, say through RDS, needs to be spin up RDS instances and make them ready and available whenever someone creates a corresponding ephemeral version of a service. Toss the database afterwards.
In the above case, assuming you needed a full graph, you would spin up the three services as well as attach each service to its corresponding database. This approach works well when the number of services remains small.
Once that number starts growing, it may not be cost effective to spin everything up. Say service N is needed, but you really only need to read from it. In this case, you might have a dedicated staging environment for N and create a dependency graph that says "in my ephemeral environment, create new instances of A, B, and C with their databases, but also allow network requests to make their way to N."
That might be over simplifying, but I've been working in this space for the past few years and have been thinking about this exact issue recently
The technical implementation part can be interesting to readers and potential engineers who will use the platform and is worthwhile to have available, but this content is purely meant to cast a wide net.
- [0] https://techcrunch.com/2021/05/19/netflify-snags-yc-alum-fea...
We basically do this at ReleaseHub, however there is a level of indirection we introduced. We basically have our own version of Kompose which generates our own YAML file, which we call an Application Template[1]. The Application Template then gets parsed into Kubernetes YAML and deployed, however as an end user, you never have you deal with the Kubernetes YAML.
The main piece missing is that we set everything up to parse the docker-compose file once and then expect people to interact with our YAML. However, having seen the level of interest about compose in this thread I'm wondering if maybe there is a feature to be built where we remove the need for interacting with our YAML, an end user can push changes to their compose and through GitOps we update everything and deploy new changes to Kubernetes.
The compose spec has come a long way since we started (we were attending the spec meetings back in 2020 to see how the project was going to kick off) and is in an even better place to support this direct Compose -> Kubernetes idea.
If you're curious, feel free to reach out jeremy@releasehub.com.
[1] - https://docs.releasehub.com/reference-documentation/applicat...
Do you mean from the your perspective, you set up your docker-compose and this startup ends up deploying pods into Kubernetes based on your compose file? Basically cutting out the middleman of you having to deal with Kubernetes yaml files?
On Instagram I mostly follow my friends, I want to know what they're up to. My usage of Instagram dropped off the map once my feed turned into - Friends Post - Friends Post - Ad - Friends Post - Suggested Post - Ad
It really just feels like the content I want to see is being smothered and thus I've mostly stopped using Instagram.
To me, its like they don't have branches (tons of new code not accessible in the game is released in a patch) and they don't have unit tests that catch bugs (a certain ability has 2 modes, with 2 different activation times. In the most recent patch, the activation times ended up the same) but it's possible that developing a game is far different than developing a SaaS product from a coding perspective. Or it could be that studio just has weird practices.
Since I work in the space I'm biased, but having to pull someone else's code locally to test out their feature is such a non-starter for me. If your company is in hyper growth mode (or even if it isn't) and the engineers don't have their own dev environment or better yet an ephemeral dev environment to allow others to test run the code, the company is hampering their product velocity.
1 - https://www.investopedia.com/terms/b/backdoor-roth-ira.asp
Just to note, after I used the invite feature, the pop out closed, but when I re-opened it, the email was still in the field.
In regards to the customers needing an ops pipeline to create images, that isn't necessary to use Release. We have our own build infrastructure, running on Docker Buildx so we can take your code, turn it into container images and deploy it without you needing to have anything set up yourself aside from a working Dockerfile.
But there may be customers who do already have their own pipeline setup running tests and creating images so we did create an external API for shipping those images to us [1]. Creating full fledged integrations with other service providers is something we've thought of exploring, but for now it would be possible to create an environment via a POST call with the image information and a bit of pre-setup to make sure we can pull the images from where you've stored them.
What you describe in (b) is definitely possible right now. The `git push` will send the webhook to us, we'll create the image and automatically deploy the environment. What you describe in (a) is also something we think is important. We have an integration with LaunchDarkly [2] that has pre and post deployment hooks so building out features around those type of hooks for different use cases is something we want to lean into. Another example in the (b) category is our Instant Datasets [3] which gives you an RDS instance with pre-filled data to be used for say a sales demo or a QA validation.
[1] - https://docs.releasehub.com/api-documentation/release-api/cr... [2] - https://docs.releasehub.com/integrations/integrations-overvi... [3] - https://docs.releasehub.com/reference-guide/instant-datasets
At a high level, the way ReleaseHub solves this issue is through a feature we call App Imports. Each App would be microservice and there would be one application that imports all the others. For the sake of simplicity let's have two microservices, Frontend and Backend. Frontend would import Backend and when a deployment goes out, ReleaseHub would deploy Backend first, followed by Frontend. Both deployments end up in the same Kubernetes namespace so the pods can talk to each other directly.
This setup allows for creating the dependencies needed to run the services. If you wanted to set up Backend to only deploy itself and say run integration tests against it, you don't have to connect it to any other services. But Frontend may be useless without Backend, so hooking them together is a requirement.
[1] - https://docs.releasehub.com/getting-started/common-setup-exa... [2] - https://docs.releasehub.com/examples/app-imports-connecting-...
[1] - https://jer-k.github.io/apline-linux-docker-authentication-w...
Could be that. I've used Ruby for 10 years, I'm just used a dynamic language. I also dealt with a typed Javascript monorepo and it was not very fun to deal with when the types weren't working for whatever reason.
I've written Rails professionally for almost 10 years and have been following / playing with Elixir since 2016. While Ruby / Rails are amazing and the ecosystem is well suited getting a project off the ground extremely quickly, I'm just a big Elixir fan and hope to work with it professionally one day. I'll parrot reasoning from some of the sister comments.
"having an entire environment of consistent actors, fault tolerance, hot reloading, etc is a tempting proposition." - Very tempting indeed!
"Code elegance and development joy, maybe?" - Coming from Ruby / Rails, I agree 100%
"Not being statically typed" - Again, I've worked mainly in dynamically typed languages. I've experienced typing in Javascript and wasn't the biggest fan. But don't get me wrong, Rails can be awful when trying to dig multiple objects deep to understand what the data structure of the return value is so its not completely off the hook.