Startups do, and always should, focus on getting to market faster so they can get feedback from real customers.
I will take going to market faster over saving a few dollars on server costs everytime I'm given the choice.
Mature products' and companies' use cases are more nuanced.
Let's not go crazy, Apache on metal is a very simple setup and at least as secure as S3 out of the box. Platform spread and simplicity are just lost concepts, that's all.
I'm curious if people are running bare metal web servers. I'd think there's enough lookup, modules etc that it wouldn't be worth it (small embedded applications like IoT frobs excepted)
> OVHcloud Best Value is a great way for you to experience the advantages of bare metal over virtual servers at an unbeatable price. Our Best Value bare metal servers feature the most stable environment, making it perfect for processing large volumes of data.
The terminology is "bare metal" when buying up dedicated servers these days. Some places still use the term "dedicated", but since the advent of "the cloud", the term "bare metal" has come up, since most instances are ASSUMED to be VPS.
“Bare metal” has meant right on the bare hardware (silicon) since the 1960s. I don’t think I’ve ever heard anyone use that expression in any other way.
https://en.wikipedia.org/wiki/Bare-metal_server https://www.ibm.com/cloud/bare-metal-servers/hosting-solutio... https://www.ionos.com/digitalguide/server/know-how/bare-meta... https://www.rackspace.com/library/what-is-a-bare-metal-serve...
This comment is claiming way too many victims. Shame, it'd be a rather exciting experiment!
Startups are very likely to fail before they need to scale. So that single-threaded C++ server, or whatever it is that the existing engineers are fastest at creating, is fine to get out there and get early market feedback.
The way I always balance this is to make the product manager put scaling and redundancy stories in the queue with feature stories. We'll build with scaling and redundancy in mind, but we don't do any extra work until the business decides those things are a higher priority than testing new hypotheses. And then I have them buy it in increments, so we can add automated load tests as we go. Then if we were to get into failwhale territory, it'd be a decision we all made together.
We had a business in one year and were acquired by a major Portuguese company, with luck the company did survive the crash, and exists nowadays as Altitude Software.
Some of the founders of that startup, left after a couple of years and founded Outsystems.
No cloud, no scripting languages with kubernetes scaling to fix lack of performance, no containers, no internet scale document databases.
Just pure C and C++, with a bit of TCL thrown into the mix, and Apache.
Absolutely. But are you telling me that a $5 p/m LAMP stack from a basic web hosting company (I'm a Microsoft dev so not sure what the FoM in Linux-land is) isn't worth it as a first step? That you have to use a bunch of bells and whistles from AWS or Azure or something?
And, if you're in the MS camp, surely a $10 p/m IIS/SQL hosted option is much easier than anything the big three have...
I'm not seeing the value proposition of cloud here...
It'll certainly take less time to manage than Kubernetes, that's fore sure.
> optimizing for a single server is a waste of resources
No, I think you should spend your time wisely and actually building your product. I don't think you should spend a huge amount of time to "optimize for a single server" (whatever that means), just that a single server can be enough for a large amount of traffic.
Many startups go all-in on complex architecture, microservices and Kubernetes from the get-go (or start splitting their monolith or whatever before it's necessary) and lose a huge amount of time setting all this up (when only Netflix-sized companies really need it) at a time where they should've focused on building their product.
The point here is that you can easily scale most apps in small steps without having to indebt yourself with complex architecture from the get go, which requires having to spend huge sums of cash on sysadmins and AWS bills that don't benefit your users.
For startups I personally believe in the more hybrid solution. I would use a cloud provider and manage the vms myself. For 100 dollars a month you can run 4 vms and a load balancer. Perfectly fine for even most scaleups. Aws, gcs and also azure are money pits. These companies to me resemble the oracle kind of company. The same btw goes for all these tooling companies like hubspot, Salesforce etc. Attractive in the beginning, but bloodsuckers after you become bigger.
This has to be hyperbole right? In any startup labor and rent is the dominant cost, not compute and other SaaS products.
This is just like when they got rid of secretaries. The work didn't go away, it just got moved to all the peons.
> Most of these startups in Soma could run their product on a single threaded C++ server.
Most could be run on a single threaded Python server.
Renting managed, dedicated servers is very inexpensive compared to cloud.
And once you factor in the price of the whole system with ECC RAM, SSD, Network Adaptor etc ( Which you get discount from Intel's part ). The whole package cost isn't so much in flavour of AMD.
So I dont see what is the real killer here. Intel ( And arguably AMD ) are still selling as many as they could make. The EPYC 2 was announced Mid 2019, and it has been 6+ months since it was launched, and yet Intel is still making record Datacenter revenue. With EPYC making minimal gains on a already dismally small base number. I.e Even If they had 100% increase in shipment from a Base Market Share of 1%, it would still only represent 2% of the market.
With the launch of a competitive Notebook APU, where Notebook represent 70% of today's PC market shipment, the assumption of more EPYC Orders with four HyperScaler, launch of two new console, Ray Tracing GPU, new GPGPU, AMD is forecasting 30% YoY revenue growth. Different people may have different perspective on this number. But I really dont see any "Real Killer" here.
And that is speaking as someone who really wants to see AMD to grow a lot more, but the Data suggest otherwise.
If you're doubting the value and performance, you must be blind.
Define Change? EPYC has been sampling to all HyperScaler since early 2019. And Google has only just released an EPYC instance days ago.
>If you're doubting the value and performance, you must be blind.
I already gave a value analysis, including AMD's own projected growth. I will leave others to comment on other aspect of your comment.
The simple fact is the server market moves slowly - server roll outs are planned a year in advance, so you need to be patient.
By “the cloud” I’m assuming you mean aws/gcp/azure, and comparing them simply with on-prem is a false dichotomy. There are plenty of other cloud and bare metal hosting providers who actually pass on the savings as hardware value improves.
It would help them and us if you would list them. :)
Currently renting a dedicated 48-core + HT (so 96 virtual cores), 64GB RAM, 2TB SSD, 10Gb WAN right this moment for ~$500/month as a buildserver.
That would cost 10x on AWS/Azure/GCP.
I hope to be able to come up with amazing wordplay like this one day.
Plus, if I have 16 more cores I'm just going to buy even more of the two, sometimes I can't fit any more in the server so I can't increase my density if I wanted to.
Here's the 64-core Threadripper's core to core communication latency: https://pbs.twimg.com/media/EQXru3WU8AAV3JC?format=png&name=...
Communication within a CCX is quicker, but everything else goes through the central IO die that has all the DRAM controllers.
Cache is shared by the cores, but may be temporarily "assigned" to a core that recently wrote to it. Is the latency(x,y) the "# of cycles to reassign to x a cache page owned by y?"?
Not really. All three levels of cache are split on Rome. L1 and L2 are per-core, and L3 is per-CCX (4 cores). If you have 1 thread with a working set larger than the 16MB L3 slice that each CCX gets, then you'll be hitting DRAM rather than spill over into the L3 of another CCX. But if you have cores on separate CCXs that are using the same region of memory, then the usual cache coherency semantics for separate chips applies.
The next version of AMD's Zen architecture is expected to increase the CCX size to 8 cores, so all 32MB of L3 on an 8-core chiplet will be unified and shared between all 8 cores, rather that being partitioned into two 16MB per-CCX chunks. I don't think it's practical for them to unify the L3 cache across multiple chiplets given the performance of their inter-die connections, and I don't think they have the die space on the central IO die for a fully unified L4 cache. (Shrinking the IO die to 7nm may make it possible to have some L4, but probably not enough to really help many workloads.)
Still, 4MB per core is a lot more than the paltry 1.3MB Intel's 9282 offers.
You can configure Rome systems with 1, 2, or 4 NUMA domains per socket (NPS1, NPS2, or NPS4, where NPS == "NUMA per socket".) Memory bandwidth is higher if you configure as NPS4, but it exposes different latencies to memory based on its location.
It's really impressive that you can get uniform latency to memory for 64 cores on the 7702 chips (when configured as NPS1).
https://www.dell.com/support/article/en-us/sln319015/amd-rom...
Saying that memory bandwidth is higher when configured as NPS4 probably isn't universally true, because that setting will constrain the bandwidth a single core can use to just effectively dual-channel. For a benchmark with the appropriate thread count and sufficiently low core-to-core communication, NPS4 probably makes it easiest to maximize aggregate memory bandwidth utilization (this seems to be what Dell's STREAM Triad results show, with NPS4 and 1 thread per CCX as optimal settings for that benchmark).
You can put this part in "NPS1" mode which interleaves all channels into an apparently uniform memory region, however it is still the case that 1/4 of memory takes an extra 25ns to access and 1/2 of it takes an extra 10ns, compared to the remainder. Putting the part into NPS1 mode just zeroes out the SRAT tables so the OS isn't aware of the difference.
But don't take it from me. AMD's developer docs clearly state, and I am quoting, "The EPYC 7002 Series processors use a Non-Uniform Memory Access (NUMA) Micro- architecture."
Please quote something that's unambiguously supporting your claims. What you've quoted is insufficient.
What I said about a single-socket Rome processor is not "completely incorrect" under any reasonable interpretation. The latency and bandwidth limitations in moving data from one side of the IO die to another is much smaller than the inter-socket connections that were traditionally implied by NUMA, or the inter-chiplet communication in first-gen EPYC/Threadripper.
If you want to insist that NUMA apply to even the slightest measurable memory performance asymmetry between cores, please say so, so that we may know ahead of time whether the discussion is also going to lead to esoteric details like the ring vs mesh interconnects on Intel's processors.
So what ???
The initial posting was about the CPU being seen as a single or multiple NUMA node by the software, not about having an equal memory access latency for all cores, which has never been true for any server/workstation CPU, from any vendor, since many, many years ago.
It's a nice looking processor though and probably the only one worth a damn in that line up.
They also support ECC. What's not "well" about EYPC?
I was just again pricing processors and if that 7302 isn't the real killer in the Epyc lineup I dunno what is. It craps on pretty much anything and everything Intel has, and is only about $1100 right now (pricing is inflated, but meh).
It's pretty crazy how cheap hardware is compared to the cloud these days; sure, it's not in a data center or if it is that's a headache of its own... but it is really fucking cheap. I personally think a lot of mid-sized orgs could benefit from moving a lot of their non-production environments to an on-prem server. The VPN is probably already locking people out, causing connection headaches anyway, so it's not like you're gonna have less connectivity than you did ;-)