584 karma · joined September 9, 2012
@VladAIonescu on Twitter. vladaionescu on GitHub.
We built Earthly [1] to tackle these two problems specifically. We're open-source (10k stars).
[1]: https://earthly.dev
Vlad, creator of Earthly here! Earthly is an open-source build automation tool. We use containers to make builds consistent across any environment, thus eliminating difficult to reproduce CI failures, because you can run your CI build on your laptop every time.
Second, isolation means that dependencies between steps need to be explicitly declared, and with this knowledge, earthly can infer parallelism.
Third, containerization gives caching abilities. We can tell if nothing’s changed since a previous run, and earthly can cache steps across build runs or even across machines. This results in massive speed gains. 2-20X, depending on the setup.
We trended with Earthly on HN a few times before, but we made significant progress since we last had a Show HN entry, 2 years ago [1]. The biggest part is that we recently launched Earthly Cloud, which includes Earthly Satellites, super fast remote runners that work with any CI. Earthly Cloud includes a generous free tier if you'd like to give it a try.
Private would not be callable from command line and not be listed in `earthly ls`?
Cache misses can be a bit inscrutable. It could be the buildkit GC is running, because disk space is getting scarce, or that some arg or file change caused the cache to be considered invalid.
Caching is an area we will continue to improve. We have a proposal for extended cache mounts here[1].
Thanks for using earthly!
Earthly is a modern build solution that is similar to a sandboxed makefile. It works with your existing CI and the #1 reason people use it today is to able to reproduce a CI build locally.
Today we promoted a number of important features to GA status in our 0.6 release including:
- WITH DOCKER : Earthly can execute any number of containers in parallel, via an isolated Docker daemon that it starts up within.
- User-Defined Commands: Extract common repetitive build steps into a command you can use across your projects.
- Shared Cache: Earthly v0.6 now provides shared caching. This extends our existing build caching to work in ephemeral CI runners by storing the cache in regular container registries.
We started working on this project in 2020[1] on GitHub [2] and while time has gone quickly the number of people and projects using Earthly now is truly exciting.Let me know what you think! Feature requests always welcome :)
We have built the build system part and are working on completing the vision with the CI part.
We use buildkit underneath as a constraint solver and our workflows are heavily DAG based.
Hundreds of CI pipelines run Earthly today.
I don't fully agree with all the assumptions in the article, including with the fact that the TAM is limited here. CI has been growing at 19% CAGR and also I think there are possibilities for expanding into other areas once you are a platform.
https://github.com/earthly/earthly
Disclaimer: I am Earthly's creator.
We talked with quite a few developers. There are many who want to launch their startup but have waaay less technical skills than you might think.
The way we thought of bridging the gap with mobile is by using Ionic and/or Apache Cordova, which use JavaScript.
Now to actually address it, I think it's more than just a thin wrapper. Perhaps the example shows too little, but for many developers, writing server side code and all the necessary communication is a road block. For others it's just extra stuff to maintain. And we generally like less code that does more.
I wouldn't worry about V8 vulnerabilities, there are many node servers running in production today, in general, and they are doing fine. But your DDos point is pretty fair - I can see how that could be a problem. Feel free to submit a pull request to add to caveats if you want to take credit for it.
Now I can see why it's easy to disagree with interviews that check your algorithms 101 knowledge: that stuff is really really rarely used in real-life and you can just google it if you ever need it. But! Keep these in mind:
- Can you come up with a better process that scales with the number of interviewers in your company, but also maintains reasonable consistency and keeps reasonable costs? Maybe you think you can, but keep in mind that the tech giants have data-crunched their interview stats over and over and this process is what they stuck with. (Of course, with scale there's also the problem you occasionally have arrogant interviewers - but I think that problem should be decoupled from the coding/non-coding interviews problem).
- In places where they look for A* engineers, the point of the interview is often not to test what you know best, but how you get along with problems you have never seen before. An algorithm or data structure question often fits the bill.
- Geeks love geeky puzzles (like inverting binary trees). Companies often look for geeks in love with abstract stuff.
Also, IMHO, knowing only one language is a red flag for me too at 10+ years experience level.