HNHacker News
TopNewBestAskShowJobs

AgentK20

2,302 karma · joined June 18, 2016

Co-Founder @ Hypixel Backend Engineer @ BigBox VR, a Meta company [ my public key: https://keybase.io/agentk; my proof: https://keybase.io/agentk/sigs/PUWU6qaZE_vDBukKhhLZZVZYDI9mFqzaziAhBWNsr8E ] hn@agentk.dev
submissionscomments
AgentK20··on Disabling Google 2FA doesn't need 2FA if you're already logged in
The cookie is not something that is "possessed". This is a case of two separate things you "know", such as a username and a password. If they added a second password, it would still only be 1FA. For it to be considered a "second factor" it should either be "something you have" e.g. a physical hardware token (or to a lesser extent a phone who has a saved shared secret, although it's arguable whether that counts), or "something you are" like a biometric verification (fingerprint, retina scan, etc)
AgentK20··on Is GitHub working for you? Status page shows nothing
Noticed some outbound webhooks don't seem to be firing for me. Had to create and delete a Release a few times before it finally sent the webhook to fire off builds.
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
An in-house application that we (I) developed in order to handle game balancing, queuing, and overall network state for a multi-LB Minecraft network. The application's name is MasterControl, and it's architecture and design (or lack thereof, it was literally the first program I ever wrote) has been the source of many headaches over the last few years. Had I known years back that we would see the kind of player numbers that we have this year, we 100% would have completely rewritten it into our modern microservice architecture.
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
We bounced around through a few different hosts in the first two or three years of our operation, but for the past four years we've been consistently with SingleHop, now an INAP company. They've been great through the entire time that we've worked with them and have saved our asses on more than one occasion, especially back before mitigation tech like CloudFlare Spectrum was available.
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
It's a bit off topic, but the challenge there is similar to a reply I wrote elsewhere in this thread about clock speeds. Minecraft is almost entirely single threaded, which means that you could get a $400 Google cloud instance and still only be able to hold those three players. To scale past that you're going to need higher clock speed processors. Take a look at OVH's "GAME" series offering or any dedicated host with E3's or i7s.
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
This isn't a limit of our ability to procure hardware, but instead a limit of one of our 7-year-old monolithic applications. We're working on increasing its stability at high player counts, but it's a totally separate issue from server provisioning and cloud vs bare metal.
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
Offsite AWS Glacier backups, as well as a warm redundancy in another DC.
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
It's definitely something we're keeping our eye on. The challenge with that is that because Threadripper is so new, it's only just now beginning to be supported on server motherboards. In a few years we're hoping that there'll be enough competition in the AMD Ryzen motherboard market that we can get comparable pricing to what we're getting now for cheap Intel boards.
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
About 60 of those machines are custom L7 frontend load balancers, and an additional 40-50 are database and dev machines. As for the actual gameservers, that's about the numbers we expect on average (150/box), although it varies wildly by gametype. Simple games of Skywars or Murder Mystery with no AI and an ultra-slimmed-down world we can fit 300+ players per box and are CPU-bound. Housing or Skyblock servers with full AI, dynamic worlds, and player-built structures we might only be able to fit 100 players per box and are RAM-bound.

You're pretty accurate with the per player bandwidth. We measure it at an average of 200kbps/online player. We are incredibly compute-intensive, though, and these machines are all operating with E3-1271v3 CPUs, 32GB of RAM, and ~100GB SSD.

AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
We actually just get a datacenter blend, but I _believe_ they've got us cordoned off on our own dedicated 40gbps Level3 (now Centurylink) line to prevent us getting attacked from harming other customers. It's not so much about which provider you go to, it's more just about the economies of scale. Our entire fleet exists in one physical DC location due to the requirements of Minecraft's netcode, so rather than having five 10gbps lines at five facilities, we've got one 40gbps line. Because of that the ISPs don't meter by the GB, but by the 95th percentile traffic. At those scales, we're paying pennies on the dollar compared to public "by-the-GB" pricing.
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
I'll be totally honest, I hadn't heard of Outposts till you mentioned it, but from my quick glance I'd say there's definitely potential in it, but I don't think it fits our use case particularly well.

One of the challenges for us is, to be honest, we're rather spoiled having run exclusively off-the-shelf open-source tech on our own hardware. It's difficult to start paying per million DB queries, for example, when we've been paying a flat rate of $X/mo for the past 7 years. On top of that, our team is very comfortable operating and managing these services in-house, and while it would free them up to focus more on dev tasks, it's a tiny gain compared to the cost increase of moving to SaaS model.

Having said that, though, I'm definitely going to look into Outposts more since it seems much more usable than full-cloud, so thanks for bringing it to my attention!

AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
Neither. We've got a long-standing positive relationship with our data center and are operating on the same hardware that we started renting 4 years ago. Because of our initial investment to build up the fleet, we're now basically paying just the power and networking, plus a small markup, for our core fleet and fairly standard pricing for additional month-to-month machines that we spin up and down based on seasonal demand.
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
The other problem for _our_ particular use case is that Minecraft is single-threaded, so it performs better on a quad-core 4GHz than an octa-core 2GHz, for example. Because of this, we use almost exclusively E3-12xx lineup CPUs at 3.6GHz+. I don't believe DO publishes their underlying hardware specs, but last time that I ran benchmarks it performed in the 2.0-2.4GHz range, like most cloud providers. Even if their CPUs were identical, it would cost us $112,000/mo at stock pricing, which is significantly more than we're paying for our current deploy.

Your point does stand, though, that not all cloud providers have the bandwidth price gouging. I was mainly referring to GCP/AWS/Azure, who set the trend for the rest of the major providers.

AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
For models where static files need to be served efficiently, using cloud compute and aggressive CDNs works great. For any model where you've got volatile data that can't be cached (Gaming, VOIP, etc) you're tough out of luck.
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
Great to hear! Lots of the people who learned how to code because of Minecraft have ended up all over the industry. It's where I got my start, as well as many of my coworkers. That's part of our passion for making Hytale, to empower the next generation of youth who want a game they can tinker with and use to learn. If you haven't seen it yet definitely go take a look, got lots of cool plans for moddability and customization :)
AgentK20··on Ask HN: Is your company sticking to on-premise servers? Why?
Like many others have pointed out: Cost.

I'm the CTO of a moderately sized gaming community, Hypixel Minecraft, who operates about 700 rented dedicated machines to service 70k-100k concurrent players. We push about 4PB/mo in egress bandwidth, something along the lines of 32gbps 95th-percentile. The big cloud providers have repeatedly quoted us an order of magnitude more than our entire fleet's cost....JUST in bandwidth costs. Even if we bring our own ISPs and cross-connect to just use cloud's compute capacity, they still charge stupid high costs to egress to our carriers.

Even if bandwidth were completely free, at any timescale above 1-2 years purchasing your own hardware, LTO-ing, or even just renting will be cheaper.

Cloud is great if your workload is variable and erratic and you're unable to reasonably commit to year+ terms, or if your team is so small that you don't have the resources to manage infrastructure yourself, but at a team size of >10 your sysadmins running on bare metal will pay their own salaries in cloud savings.

AgentK20··on Studios would be banned from selling loot boxes to minors under new bill (2019)
This is an article from May 8, 2019.
AgentK20··on Show HN: CallStop – Superhuman for your phone number
One of the features I like about it, though, is the ability to create arbitrary "pin" extensions that I can give out. I'd love for my phone number to be opt-in, worldwide.

Getting spam on a particular extension? Guess CompanyA leaked my number. Blocked.

Call screening is nice, and I actively use it, but a system that is "zero spam by default" is far more preferable than "click to block spam".

AgentK20··on Show HN: CallStop – Superhuman for your phone number
Any plans for Android? Would happily pay for a service like this.
AgentK20··on Calculating a record-breaking 31.4T digits of Pi with GCP
Absolute madmen
AgentK20··on Ask HN: YouTube down?
And it's back!
AgentK20··on [dead]
....and? Companies deciding to take action on things based on the actions of other companies isn't really newsworthy. It's one thing if they were pressured into doing so in back-channels, but if they were already contemplating action and simply decided to move forward with it, that's pretty much standard practice.
AgentK20··on Windows Task Scheduler Zero Day Exploited by Malware
Previous discussion about the exploit when it was first tweeted: https://news.ycombinator.com/item?id=17859589
AgentK20··on PostmarketOS is moving to Gitlab
I mean if making critical decisions about who you want to trust, where you want to store your code and data, and how you want to operate your day to day business, based on an evolving market is being a "brat" then yeah.

I'm not expecting GitHub to change much, if at all, but part of an open internet is people and companies being able to choose how they want to do things.

AgentK20··on JEP 335: Deprecate the Nashorn JavaScript Engine
Since when do new systems get integrated into Java, then officially deprecated for removal less than 5 years later? New technologies take time to be integrated into existing stacks, and new projects take time to come to market. I recognize that it's a lot of work to keep up with the ECMAScript language, but even if the ECMAScript language support lags behind official, that's better than removing a component that was hyped up in the Java 8 release.

My team uses the Nashorn engine as a sandboxed scripting engine in an upcoming game. Because of the nature of the transpiling of javascript into Java, we've got very granular control over what classes, fields, and methods can be accessed from the javascript context. I'm not sure at this point what we're going to do about this, so I'm looking at things like GraalJS. Anyone have any experience with a use case like ours?

AgentK20··on Microsoft and GitHub have held acquisition talks
Really hope these talks fall through and nothing comes of it. Too many bad experiences with Microsoft buying something out, mismanaging it, and it goes down the drain. As much as I love GitHub, I won't be using a Microsoft-owned GitHub for any of my company's work.
AgentK20··on Ask HN: How is DDoS protection implemented?
By far the biggest part of attack mitigation in my experience is out-scaling the attack. A well written and configured application stack can handle a decent amount of traffic itself before becoming bogged down processing malicious traffic, but at some point you'll cap out either the application, the NIC, the upstream switch, the router, or the ISP line, if your application is running in just one place. To get around that, huge providers like the ones you listed are heavily multi-homed. This means they announce their traffic routes to the internet from multiple locations, so traffic naturally flows to the closest (hops wise, not necessarily geographically speaking) endpoint.

From there, you can add layers of protection ranging from simple things like blocking traffic that is obviously malicious (TCP flags, port numbers, etc) to more complex things like pattern recognition in both the overall trends of the data and on a per-packet basis. After you've decided with a decent certainty that it's not malicious traffic, you pass it off to the actual backend service.

For systems that are designed to scale horizontally, that may be a neighboring machine (or even the same machine) in that data center. For single-homed backend systems that can't scale horizontally to multiple locations, that "clean" traffic is then sent via some mechanism (possibly a GRE tunnel, possibly just raw internet traffic to a secret IP) to the backend service. Depending on the methodology used, the filtering may be a true bidirectional proxy, in which case the reply goes back to the scrubber and then out to the original sender, or it may be a unidirectional proxy, in which case the reply goes directly back to the original sender.

All attack mitigation works in some way like this, whether it be by designing your application from the beginning to be multi-homed and able to run in multiple datacenters, or by installing a separate mitigation layer that scrubs attack traffic.

AgentK20··on AT&T updates firmware to block access to 1.1.1.1
Cloudflare's CEO confirms: https://twitter.com/eastdakota/status/991718955021623296
AgentK20··on Serving 100 Gbps from an Open Connect Appliance
I'm curious as to the specific reasoning behind perpetually pushing towards higher per-machine bandwidth. Is it primarily backed by squeezing more usefulness (and therefore decreasing costs elsewhere) out of existing hardware, or is it more of a "Hey let's try and do this" exercise?

Reason I say is that for most smaller operations I'd assume that you'd be more cost effective with dev time to just throw a few more servers at the problem than to go through all the effort to squeeze a few more percentage points of efficiency out of hardware, although I suppose when you're operating at that scale a 1% efficiency gain is enough to justify an entire developer's salary.

AgentK20··on CloudFlare Warp attack mitigation will soon support any TCP/UDP protocol
On one hand I'm really enthusiastic to see attack mitigation tech like that becoming available for more people, but on the other hand I'm worried that this is just another step in centralization of The Internet. We've seen CloudFlare change their policy once and shut down a controversial website, and if they're one of the only people able to keep services online in an attack-ridden web, that gives them far too much power.

Not to mention the already-present breakage of the SSL "contract" by CloudFlare running a MITM proxy on secure webpages.

← PreviousPage 4 of 5Next →