TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Launch HN: Release (YC W20) – Staging environments made easy

150 点作者 tommy_mcclung大约 5 年前
Hey everyone, we’re Tommy, David and Erik, co-founders of Release. (<a href="https:&#x2F;&#x2F;www.releaseapp.io" rel="nofollow">https:&#x2F;&#x2F;www.releaseapp.io</a>). Release makes staging environments easy by automatically generating an ephemeral environment for every Pull Request.<p>David, Erik and I have worked together for almost 20 years starting with Erik and I meeting each other at an Internship right out of college. We met David in about 2003 when we were all working for RLX Technologies, which was one of the original blade server companies. Our early days were focused on systems management problems before VM’s were widely used. Interestingly enough a lot of the systems problems we are facing today are similar to the problems faced back then, just abstracted a few levels. Staging environments were hard then and they are hard now.<p>Since then, we’ve all pretty much stuck together, including co-founding IMSafer (detection of inappropriate conversations online for parents) together in 2006. David did take a break from us along the way as he became one of the early engineers at Etsy where he got a new perspective on systems challenges while Erik and I founded CarWoo! (YCS09 - online car buying made easy). David eventually made his way to CarWoo! and rejoined Erik and I after 4 years at Etsy where he was responsible for their search infrastructure and was involved in their DevOps systems. CarWoo! eventually was acqui-hired by TrueCar in 2014. We stayed on as the technology leadership team there for 5 years and led a major replatforming project that solved environments and enabled developers to iterate quickly.<p>Throughout our careers in doing systems engineering, starting companies, and being in and around technology there has been a universal difficulty in building environments that represent production and actually aid in getting work done vs being a bottleneck. As we’ve explored this problem with early customers, we’re getting similar feedback that’s reinforced our excitement to solve this problem.<p>We’re hearing some common themes as we talk with customers. Teams with just one or few staging environments have a big bottleneck in their process and can’t get product delivered as quickly as they’d like. The drift between production and the few staging environments a team may have is a problem. A lack of environments causes stakeholders to be out of the loop until really late in the development cycle and rework costs are high.<p>Engineering leaders are telling us how expensive in time, money and distraction away from core company objectives it will be to focus on this effort. Many times this is the reason this project (building a more flexible staging environment solutions) sits in the backlog and teams are just living with suboptimal velocity. Leaders that have invested in building an in-house solution have told us how complicated building it has been and aren’t happy that they’ve had to dedicate resources to this versus solving customer problems directly.<p>It’s not all bad though, as companies who have actually built and are maintaining adequate environment infrastructure have a distinct advantage in speed of delivery of complex applications. They are moving faster and that speed is a distinct advantage over companies without this capability. However, the cost of building this infrastructure is generally prohibitively high unless you’ve raised a lot of money or your application is extremely simple.<p>We’ve solved staging environments at every company we’ve started or been a part of throughout our careers and it’s always been the key to enabling us to move fast. We’ve learned that if developers have their own staging environment automatically created on every Pull Request, they can move incredibly fast. They are free to experiment, they can share work-in-progress changes with stakeholders early and they aren’t waiting for resources to free up to get their work done. We’ve seen ideas come alive while they were being built which has allowed them to iterate faster with more feedback and less rework.<p>We decided to build Release after spending countless hours talking about our experiences in our careers and when we’ve been the happiest at work. We’ve seen how powerful technology teams can be when they have enabling platforms at their disposal and how hard it can be when they don’t. We’ve always taken pride in making developers happy and more efficient. Release is the perfect avenue to solve a really big problem AND do work we love, that makes us happy.<p>As we started thinking about building Release, we leaned into the technology we were already familiar with, Docker, docker-compose, AWS and used that as our starting point. We felt that adding Kubernetes to the equation gave us a way to create these environments in a generic way where almost any application would run. We’ve tackled some complex environments for our early customers with lots of services and the interdependencies between them, including cloud native dependencies. Our ability to tackle complex environments has given us hope that the right technologies have emerged that make this possible now.<p>As we started exploring the idea, we knew Docker and containers were the baseline and we liked the starting point that docker-compose offered for running applications and defining environments. If you have a docker-compose we can run environments for you. We take that docker-compose and compile it into an application&#x2F;environment definition (release.yml) that we automatically generate. Think of this as an abstraction that sits in between docker-compose and Kubernetes that gives you flexibility to define environments and resources that meet your needs.<p>From the application definition in the release.yml and your docker-compose we automatically generate all of the Kubernetes yaml files to run your environments. As a customer, you don’t need to know anything about K8’s. Whenever you do a PR we automatically generate all that’s needed to deploy and run your environment in K8’s. We’re interested to hear how much access customers would want to the raw K8’s ecosystem. To date we’ve had the opinion that customers shouldn’t have to deal with it, but would love to hear HN’s opinions on this.<p>If you’d like to give it a shot, request access at <a href="https:&#x2F;&#x2F;www.releaseapp.io" rel="nofollow">https:&#x2F;&#x2F;www.releaseapp.io</a> We’d love to have you! We’ve tried to keep the model simple and just charge a fee for the number environments created each month by our users.<p>We’d love to hear your feedback. We’d also love to hear about how companies are handling this problem today. Your feedback is incredibly important to us, we know the HN community has a really unique perspective and appreciate you reading our launch post and making it this far in our launch story!

24 条评论

monus大约 5 年前
I think that&#x27;ll be pretty useful for a lot of companies but I&#x27;m not sure whether going with container count as limit will work.<p>Staging is where the software is tested as a whole before the production and in many cases it&#x27;s more than a few containers. I&#x27;d not pay $500 for &quot;Up to 5 containers&#x2F;env&quot; to set up a staging environment for my app that consists of many microservices deployed on Kubernetes. My two cents; change the pricing model. It&#x27;s not only expensive but also container count is not that helpful. Number of environments is a good proxy for the value I get but I don&#x27;t want to be punished just because of my number of containers; cpu + memory could be more acceptable.
评论 #22487575 未加载
评论 #22486395 未加载
yani大约 5 年前
Been there done that. I would take a different route. I will start with one application and make it easy for a developer to install and run it on their computer, ideally with some dummy data. Price it as free to use, you will get tones of users. These users will need a way to get these local applications to a staging and to a production servers. Thats where you charge money and you control the entire cycle. Pulling and pushing data between live and staging sites is where the demand is and there are not many easy to use solutions.
评论 #22492389 未加载
评论 #22489051 未加载
photonios大约 5 年前
How is this different from Heroku review apps [1] besides that it&#x27;s not Heroku?<p>We have this at work. Every PR provisions a new app with your code deployed on it. Since we use a mono-repo, we built a small Github bot that depending on Github labels sets up the right app.<p>[1] <a href="https:&#x2F;&#x2F;devcenter.heroku.com&#x2F;articles&#x2F;github-integration-review-apps" rel="nofollow">https:&#x2F;&#x2F;devcenter.heroku.com&#x2F;articles&#x2F;github-integration-rev...</a>
评论 #22488030 未加载
评论 #22490501 未加载
bfirsh大约 5 年前
As the creator of Compose (née Fig), I am very excited to see this. We initially created Compose with the intention of it being used to deploy to staging and production environments.<p>Docker Swarm was intended as the target of Compose deployments, but that never materialized because Swarm didn&#x27;t catch on. I&#x27;m very glad to see someone carrying the torch in a Kubernetes world. :)
OriPekelman大约 5 年前
I think it&#x27;s fair to point you at my thing: <a href="https:&#x2F;&#x2F;platform.sh" rel="nofollow">https:&#x2F;&#x2F;platform.sh</a> has been doing something similar since 2015. Based on containers (although that is not the abstraction we expose, in that sense we are more similar to Heroku). Production represents the master branch. Every other branch gets an automatically generated ephemeral staging with a full clone of all the data (and no specific configuration required). With support for microservices and multiple data backends. The whole operation takes about a minute. But this is not something you can run on your own tenant. To get production cloning (for what should be obvious reasons) we need to actually run production.
评论 #22491167 未加载
评论 #22489019 未加载
dubcanada大约 5 年前
It just seems to be a docker host hooked up pull requests. Unless I am missing something there doesn&#x27;t seem to be anything fancy or new.<p>Main things I see missing<p>- Ability to clone live database<p>- Ability to run any sort of tests<p>- Yet another yaml file with docker configuration in it, slightly different then every other docker configuration system.<p>Also seems to be twice the size of docker compose?
评论 #22487083 未加载
hashhar大约 5 年前
We had something like this built at my previous org using nothing but Jenkins API and plain docker with a few bare metals for persistent stuff (RDBMs, Solr, Redis etc.). It was created circa 2014 so no fancy stuff like K8s.<p>I miss it a lot at my new org. Will definitely look at this and suggest to leadership if it aligns.
iamEAP大约 5 年前
I may be at a place where this would be useful, so I signed up! That being said...<p>At this point, one-click (or one command or one PR open) pre-production environments are almost table stakes for PaaS offerings. This kind of functionality was the primary reason we moved from self-hosted to PaaS (Pantheon) back in 2012&#x2F;13 at a prior gig. Heroku (as mentioned in other comments) offers similar functionality these days.<p>Given you probably won&#x27;t have much traction with teams who are happy on PaaS offerings like the aforementioned, am I right in thinking your market is either people doing completely bespoke docker stuff (how many of those are there), or people whose apps don&#x27;t neatly fit (either due to size or complexity) into an existing PaaS offering?<p>If that&#x27;s the case, I wonder if docker is the wrong abstraction-point. Perhaps it&#x27;d be better to be a glue layer between a VCS and something like a Terraform configuration or a Pulumi project.<p>I also wonder an open source model could be a winner here, too.
评论 #22490419 未加载
endymi0n大约 5 年前
Nice idea and all the best of luck to the team, but if experience has taught me anything, it&#x27;s that the staging topic is extremely hard, mostly due to conflicting requirements.<p>On one hand, what you want is as much prod&#x2F;stage parity as possible, however there are often various side concerns that go against the ideal of &quot;isolated, but equal&quot;.<p>Just from the past few years, I can remember dozens of instances where &quot;easy&quot; staging wasn&#x27;t an option. Staging services actually needing access to various levels of (partly anonymized) prod data, partly read-only, partly local. Deactivating caching on stage for better testing. Separating or smartly accessing cookie domains from others. Databases that are far too heavy to keep a second set of (especially data warehouses).<p>In the end, &quot;staging&quot; for me is a problem class that I don&#x27;t see anyone &quot;solving&quot; in the way &quot;dependencies&quot; won&#x27;t ever be solved, but I&#x27;d be super happy to be proven wrong.
gingerlime大约 5 年前
There’s another YC company doing this called dockup[0] How are you guys different&#x2F;better?<p>We tried dockup but things like DBs, authorizing Facebook and google oauth, subdomains, Stripe webhooks etc became tricky quickly. We ended up doing our own thing with docker compose and some deploy scripts. It’s a bit hairy but dockup wasn’t much cleaner either and it’s one less thing to trust (and a bit of NIH I admit)<p>Edit: one particular limitation of dockup that probably pushed us was the time limit on the environment. Our use case required longer running environments in some&#x2F;most cases.<p>[0] <a href="https:&#x2F;&#x2F;getdockup.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;getdockup.com&#x2F;</a>
评论 #22488300 未加载
gitgud大约 5 年前
Great idea, and is exactly what I was thinking about a few months ago actually.<p>I&#x27;m not too sure about the name of the company though &quot;<i>Release</i>&quot;, kind of an <i>un-searchable</i> name. Nobody will be able to find you in Google without significant SEO against business&#x2F;tech blogs. Try searching &quot;release app&quot; or &quot;release company&quot; it&#x27;s just too generic.<p>Sorry to be critical of the name, but I think it&#x27;s much more important than people realise. I genuinely like product though!
评论 #22490262 未加载
matisoffn大约 5 年前
I worked multiple years in an organization led by the founding team. Just dropping a note to say that the team is top-notch, and they are maniacal about listening to customer feedback.<p>They advocated for and implemented a strikingly similar product within the organization, and it was used for all deployments: development, test, staging, production, etc. The system was a crucial aspect of everyday development and extraordinarily helpful for working with cross-functional partners.
webmons大约 5 年前
I work at mostly early stage startup and setting up ONE staging environment is always the default option. Sooner rather than later, we&#x27;d run into broken staging, botched demo, etc... and waste countless hour debating on how to make it better. Ephemeral environment based on PR came up often as the ideal solution but wasn&#x27;t implemented because it&#x27;s not easy<p>Using release at my company now and I wish they existed 5 years ago
flippyhead大约 5 年前
Finally! We&#x27;ve been wanting something like this for a long time.
JensRantil大约 5 年前
&quot;Non-Production Environments Have Diminishing Returns&quot; <a href="https:&#x2F;&#x2F;medium.com&#x2F;@paulosman&#x2F;production-oriented-development-8ae05f8cc7ea" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;@paulosman&#x2F;production-oriented-developmen...</a> Exactly my insight from years of fighting staging environments and the issues with them. If I&#x27;d ever start a company I&#x27;d skip a staging environment all together. Instead of focus on staged&#x2F;gradual rollouts, solid automatic testing before mainline and feature flags.
das_keyboard大约 5 年前
This is what the site looks to me with Firefox: <a href="https:&#x2F;&#x2F;imgur.com&#x2F;ILi5zEK" rel="nofollow">https:&#x2F;&#x2F;imgur.com&#x2F;ILi5zEK</a> This does not seem right.
评论 #22487756 未加载
评论 #22486972 未加载
dmundhra大约 5 年前
Do you handle setting up cloud specific environment like SNS, SQS, Lambda, etc.. and initiating it with seed data needed to create a complete environment for testing?
评论 #22490067 未加载
dunky11大约 5 年前
The website is really slow. You got images which are 3700px in width and 1.2mb large on the landing page. You should resize them to the width you really need, probably 1000px in width max. Use .png for images which are transparent and .jpg for images which are not. Also don&#x27;t forget to compress them. Google Chromes Lighthouse shows an optimization of 16seconds on 4G mobile by resizing&#x2F;compressing images alone.
mleonhard大约 5 年前
A deployment that is deployed differently from prod is not staging. It&#x27;s test.<p>Can releaseapp.io work for prod?
评论 #22489016 未加载
striking大约 5 年前
Welcome, Release. A question: do you plan to support features of clouds like AWS Lambda?
mishkinf大约 5 年前
Looks like an enticing solution to the age old problem! Great work guys
markivraknatap大约 5 年前
No Gitlab ?
评论 #22487893 未加载
评论 #22487647 未加载
DantesKite大约 5 年前
Hacker News comments always remind me of this quote:<p>&quot;People who are brutally honest generally enjoy the brutality more than the honesty.&quot;<p>- Richard Needham
marvindanig大约 5 年前
What is this with &quot;Launch vs. Show&quot; thing by YC incubatees lately? Is it typical &quot;us vs. them&quot; thinking or does YC also promote these projects on HN over others to let them appear on the frontpage much more easily?
评论 #22487610 未加载
评论 #22486586 未加载
评论 #22487240 未加载