janoszen
janoszen on Hacker News
Posted by
janoszen on Tuesday April 13, 2021 @04:16PM
from the containerssh.io dept.
Posted by
janoszen on Wednesday September 16, 2020 @03:51AM
from the pasztor.at dept.
Posted by
janoszen on Wednesday July 15, 2020 @03:49AM
from the pasztor.at dept.
Posted by
janoszen on Monday June 08, 2020 @03:35AM
from the show-hn dept.
Posted by
janoszen on Thursday March 28, 2019 @03:59AM
from the show-hn dept.
Posted by
janoszen on Tuesday February 19, 2019 @01:41AM
from the medium.com dept.
Posted by
janoszen on Tuesday January 08, 2019 @03:06AM
from the pasztor.at dept.
Posted by
janoszen on Friday August 31, 2018 @05:47AM
from the wikimediafoundation.org dept.
Posted by
janoszen on Monday June 25, 2018 @02:44AM
from the pasztor.at dept.
Hey folks, I'd really like some feedback on this before I push the final version to Maven Central.
Posted by
janoszen on Saturday June 09, 2018 @01:58PM
from the show-hn dept.
Posted by
janoszen on Sunday May 06, 2018 @08:47AM
from the pasztor.at dept.
Posted by
janoszen on Tuesday March 20, 2018 @04:45PM
from the pasztor.at dept.
Posted by
janoszen on Saturday March 17, 2018 @04:01PM
from the pasztor.at dept.
Posted by
janoszen on Friday March 09, 2018 @08:06AM
from the toptal.com dept.
Posted by
janoszen on Thursday March 08, 2018 @03:08PM
from the pasztor.at dept.
Posted by
janoszen on Tuesday February 20, 2018 @11:56PM
from the pasztor.at dept.
Yes, but it's kind of a whack-a-mole since their reuse times are not public AFAIK, so it would constantly need tuning as they develop the service.
A POP or edge location is a server (or multiple) that the user traffic is being routed to, hopefully close to the user. A CDN consists of multiple POPs, one in each region, with intelligent traffic routing added (as described in the article).
If you are fine with having slashes at the end of your URLs and you do not want to do anything too complicated like content negotiation for image types, S3 and CloudFront is fine. The moment you turn on Lambda@Edge, to do the magic, things get slow after a period of no traffic.
I plan on expanding on the featureset, so no S3 for me. :)
It depends on the scale. Running a personal blog with sub-1MiB/s traffic is not a problem. I've seen some larger projects though where detailed data analysis had to be employed to debug bad connections... that's not a one-man-job and it was a serious headache to work around some of the less... neutral providers.
Of course it's dockerized, it has to be cool, right? :)
Ansible is running docker-compose up -d on deployment an Traefik is doing the magic. I want to extend it to host multiple sites in the future. (Btw. Ansible ran from a central location is painfully slow because of the large latency to the edge nodes.)
The content itself is deployed using rsync, Ansible was just too painfully slow for that.
(I'm the author.) This whole setup is built for a comparatively low traffic blog, so DNS caching won't help much. (On normal days I get ~100 visitors.) This is compounded by the TTL which is 60s to account for node failures.
The optimization level is in the sub 1 second range, so not having to pay one large RTT penalty for a DNS lookup is quite important. I've measured 300+ms RTT to Australia on the previous box I was using, that impacted the load times quite severely.
Yes, but you would need a crawler that does so in every region, or at least know the IPs of the edge nodes on that CDN. You would probably also hit some rate limit / DDoS protection with the CDN itself.
Thank you for pointing that out, I've updated my bio to reflect that. Hopefully this way it's a little less ambiguous. :)
Thank you to both of you, I've edited the article to clarify that point.
Interesting, although I specifically wanted to build a push CDN (where I can push the content) rather than a pull CDN (that works with an origin) to avoid the added latency with cache misses.
"When it comes to picking a solution, I often choose the less traveled road"
I forgot to add that this applies only to R&D and hobby projects, for production setups I'm a bit more careful. :)
(I'm the author.)
Traefik can simply request certificates using the DNS verification method, as opposed to the certbot HTTP verification. (HTTP would not work with a distributed setup like this.) Alternatively, Traefik can also synchronize certificate requests using one of the many key-value stores supported (untested as of yet).
The drawback of the DNS method without synchronization between the nodes is that you run into the LetsEncrypt rate limit quite easily. My expansion to ap-southeast-1 and sa-east-1 is waiting for the LE cooldown.
Disclaimer: I'm the author of the article.