HNHacker News
TopNewBestAskShowJobs

evanphx

434 karma · joined March 10, 2010

submissionscomments
evanphx··on Rebuilding My Homelab with Compose, Ruby, IPv6, and No Kubernetes
The honest answer to your question about where the line is: it's when you start writing your own health checks, restart logic, and deployment orchestration on top of compose. That's the tipping point where you're maintaining infrastructure instead of just running apps.

We built Miren for exactly this middle ground. Push to the cluster, it handles image building, TLS, and deployment on any Linux server. No Dockerfile, no compose, no Kubernetes. Autoscaling is on by default. It's not that Kubernetes is wrong, it's that there should be something between compose scripts and a full cluster.

We're actively working on ways of deploying already ready services in docker files to the cluster, which would probably be what you're looking for initially unless the cluster you're doing a lot of development on the cluster.

evanphx··on I am building a cloud
If you're open, love to get your thoughts on https://miren.dev. We've doing similar things, but leaning into the small team aspects of these systems, along with giving folks an optional cloud tie in to help with auth, etc.
evanphx··on I am building a cloud
Are you doing that across a fleet of machines or just one?
evanphx··on I am building a cloud
Totally, it's all about the primitives. I'm curious where exe.dev is gonna build on the the base, or just leave it up to folks to add all their own bespoke stuff to do containers, logs, etc.

The last 20 years has given us a lot of great primitives for folks to plug in, I think that lots of people don't want to wrangle those primitives, they just want to use them.

evanphx··on InitWare, a portable systemd fork running on BSDs and Linux
Agree and so I went looking and here is the reason: https://github.com/InitWare/InitWare/commit/3ee721035525dbb1....

They started with a specific version of systemd and have been mutating it since then, so the whole this is "tainted" with LGPL now.

evanphx··on Daylight Computer – New 60fps e-paper tablet
Upon hearing this (and seeing the software that you've got listed on the website) I went and bought one. Looks great!
evanphx··on A History of the Rubinius Ruby JIT
Hi, Evan Phoenix, Rubinius creator here. I just wanted to stop in and say thank you for this comment. It means a lot to me, even after all these years that Rubinius helped you out.

I mentioned this on twitter as well (https://twitter.com/evanphx/status/1458912013011152898?s=21) but wanted to reach out here and let you know personally too.

Thank you.

evanphx··on Templar: A proxy to improve HTTP API interactions
It's very true that things like timeouts are done better within the client library. But Templar can combine timeouts with caching, allowing an API to appear to still be active and returning something even when it's just very slow.

Because a cache is best when it's populated often, it make sense to put that into a service that many different processes on different machines can use.

Everything within templar can be done by adding capabilities to client libraries, no argument. But most client libraries don't provide these capabilities in one programming language, let alone many of them. By having the functional available as a service, Templar provides these capabilities fairly transparently (and even more transparently in the future when there is per/host and per/url configuration).

evanphx··on Templar: A proxy to improve HTTP API interactions
That assumes nginx has the capability to do what Templar does and I don't believe that's true.
evanphx··on Templar: A proxy to improve HTTP API interactions
Templar does not do SSL termination because it does not terminate requests for your api. It's designed to mediate connections between you and any APIs that you use, protecting you against those APIs being unreliable.
evanphx··on Templar: A proxy to improve HTTP API interactions
Yup! That's on the todo list. Auto-caching, as I'm calling it, would figure out a how long to cache something for and then be able to later on use HEAD to check if the url in question has changed.

That cache time could be as long as 5 seconds, so that Templar is checking pretty often if the upstream has changed.

evanphx··on Templar: A proxy to improve HTTP API interactions
Thanks Veejay!
evanphx··on Templar: A proxy to improve HTTP API interactions
Templar is designed to be used within your own infrastructure on a trusted network, where you talk to it and it talks to the outside world.

An attacker would have to be already within your private network, and if they were, they could observe the traffic in plain text already.

I think the confusion is around where Templar sits in relation to your app making HTTP API calls and the services you want to talk to. I'm going to draw up a diagram to help explain this better.

evanphx··on Templar: A proxy to improve HTTP API interactions
Ah! Ok, I got it. Feels like the right way to handle this is the allow a blacklist to be defined via config file, then applied as request, something like "X-Templar-Blacklist: internal". The list would be a set of ip ranges and thus you'd have to construct the list so that the EC2 => EC2 problem doesn't crop up, but it's doable!
evanphx··on Templar: A proxy to improve HTTP API interactions
Looking at that CPAN module, it wouldn't be hard at all to add a blacklist to Templar via a config file that is checked. The EC2 => EC2 issue is probably the biggest stumbling block to getting what you want. I'll have to investigate that, it seems like that would only happen if internal to EC2 they do ICMP redirects...
evanphx··on Templar: A proxy to improve HTTP API interactions
That's good point actually, I could see that happening.

What is your concern about the url used? That they point at something a user is trying to coerce you to hit? If so, that could be a public IP too..

evanphx··on Templar: A proxy to improve HTTP API interactions
A great question. Nginx is not typically configured as a normal proxy but it can certainly do it. A difference is that Templar gives you control of options applied to each request differently rather than the same the same to all.

From timeouts to caching, one Templar can be used for all different kinds of upstream APIs.

evanphx··on Templar: A proxy to improve HTTP API interactions
I agree, async responses are a great tool. It's a question of figuring out a good way of delivering them back to the client. Another option is a long poll endpoint within Templar that it can deliver a stream of responses on. AMQP is an easy option because it keeps Templar simple.
evanphx··on Templar: A proxy to improve HTTP API interactions
Fire-and-Forget is on the todo list. Since you're asking about it I'll bump it up. The later, Templar could have an option that tell it to only connect to public ips. Would that do it for ya?
evanphx··on Templar: A proxy to improve HTTP API interactions
Author here! That's certainly an interesting feature that could be added. I have on the future list to support sending responses back via AMQP. Your callback scheme isn't much different than that.
evanphx··on Ezra Zygmuntowicz has died
Thanks so much for the info Eli. For those that want to attend the service, do you have a time and location available? Or should they contact you to get that? I'd like to pass it along to people who have asked on twitter.
evanphx··on Monit's DMCA takedown notice for Inspeqtor
Thanks, fixed!
evanphx··on Monit's DMCA takedown notice for Inspeqtor
Monit is wining this discussion because their DMCA notice has caused the code not be visible, since anyone with both codebases could easily look at them and see that Inspeqtor is not a translation of the Monit code in any shape or form.

Because of this, I have put the code back up, please consult https://github.com/evanphx/inspeqtor vs http://mmonit.com/monit/dist/monit-5.9.tar.gz

evanphx··on Rubygems.org AWS bill for Feb 2014 [pdf]
Virtualization allows us to spin up new instances and migrate traffic to them. This means we can work entirely from chef and keep things clean. This is important for our volunteers to have a complete picture of an instance and to be able to make new ones.
evanphx··on Rubygems.org AWS bill for Feb 2014 [pdf]
Very true on the signatures. Using multiple sites isn't necessary though, imho.
evanphx··on Rubygems.org AWS bill for Feb 2014 [pdf]
Here is a partial log, every /24 that had more than 10k hits in the last 24 hours: https://gist.github.com/evanphx/9361755
evanphx··on Rubygems.org AWS bill for Feb 2014 [pdf]
The caching mirror configuration achieves nearly the same thing. In the past, people have wanted to run their own mirrors that we directed people to, but that's got reliability and security issues.
evanphx··on Rubygems.org AWS bill for Feb 2014 [pdf]
I'll put that on my todo list.
evanphx··on Rubygems.org AWS bill for Feb 2014 [pdf]
Thanks! I'll definitely keep you in mind as we're (finally) getting around to setting up correctly.
evanphx··on Rubygems.org AWS bill for Feb 2014 [pdf]
Thanks! I'll bring it up with the team.
Page 1 of 3Next →