Dropbox saved $75M over two years by building its own infrastructure (2018)
geekwire.com
geekwire.com
But once certain startups turn into big companies with hundreds of millions of users, with computing needs that they’ve come to intimately understand, it can be far more efficient to set up computing infrastructure designed exactly with those needs in mind.
I think the main advantage of cloud providers is to offset the risk of purchasing equipment that eventually is no longer needed, which is ideal for younger companies that are still trying to reach their market capacity or unsure about whether they'll still be around in a year. Of all the things on a startup's todo list, I can't imagine setting up their own infrastructure is the best way to improve profits or revenue.But once the constraints of a userbase are more established, it should be easier to migrate off these platforms, since their pricing is optimized for users of all business sizes and use cases, whereas your specific hardware can be optimized for your specific users.
My biggest question is whether cloud providers could achieve a scale where they are able to offer the most optimal infrastructure costs for specific businesses. Maybe this is the case for smaller or mid-size companies, but I'd be interested to see where the inflection point lies.
it would be insane for them to deliver their video content over aws.
By some measures, that's much more extreme than running your own datacenter.
It's about their core values and identity, at least because in this way they are seen in the market as a big player and not just as another AWS reseller with some added benefits.
IMO, this has happened. AWS GovCloud. Since the USGov has near unlimited spending power, it's better for integrators to just pass the costs along. Compared to certifying your own infrastructure, this will probably be much cheaper for most everybody.
You also might not want to manage that many it experts for your infrastructure or you are not able to get them.
Also if your companies product is very technical, i would argue that those companies are much better equiped doing it by themselfs then others.
Nonetheless, it also doesn't need to be all or nothing. You can easily combine a MultiCloud approach.
Build only the stuff which is easy to build and costs a lot on cloud yourself. I would say Buildsystems or compute instances are good candidates.
Like i could imagine putting netflix authentication system on a cloud provider while doing the compute stuff in my own data center and building the CDN myself.
There may be reasons to go multicloud but ease isn’t one of them. You double your infra support overhead (or more likely, half its quality) and have a “least common denominator” experience.
The natural tendencies of large organizations is a diffusion of investment but the cheapest costs frequently come from a concentration of investment.
You can leverage the high quality network infrastructure from Google while using your own DC for Compute Heavy Load.
Use Azure for your Windows specific workloads.
Go with AliCloud in China.
You need to be big enough so that running it yourself is doable with a certain amount of quality. Which does imply many teams and workloads.
Heterogeneity in compute location has a multiplicative effect on accounting, security, capacity management, network management and is dilutive in terms of expertise -- instead of being able to justify the worlds leading experts in one system, you now need more staffing to cover a wider surface area (and they all need to have collaboration overhead to ensure they arent working at cross-purposes in strategy or tactic.)
I think this belief in marginal benefit from "right tool for the job" is a local-optimization where the costs of coordination and overhead are not borne locally and so are generally undervalued/discounted.
My employer runs on a single cloud provider, but -- do to its scale and closeness to core competency of our business -- we do operate our own CDN infrastructure, and this is a decision I happen to agree with. As a result of this division, I am acutely aware of the impact it can have on an engineering organization and only in certain specialized use-cases would advise considering DIY or multi-cloud.
Or so that you are not dependend on only one.
I would say as someone who supports lots and lots of apps that cloud services are usually financial winners in a SaaS perspective and in a rapid growth scenario. Nobody can deliver Exchange cheaper than Microsoft. My team stood up apps for covid related activity for 20-40% of the cost and more importantly type than services under our organizations control.
That said, for what I would call "base load" scenarios, in many scenarios it's exactly the opposite.
It's not to offset risks, if you have very little load (a site with 10k visits a day, for example), you can share the costs on the cloud and save nearly the entire bill.
Companies with a high revenue/load ratio tend to stay at the cloud even after they get big. That is because even though the cloud is very expensive for their needs, it adds speed on their internal processes by saving the time to decide and buy equipment. But when that ratio is small, they just can't afford it.
colo'd datacenter or 'off brand' cloud provider can easily be much cheaper than the big 3, still get you out of 'dealing with hardware' and either way you are still 'setting up infrastructure' in terms of developing software management tools for your system
The problem will be finding skilled labor. Short-haul networking, power configurations, thermal load, hardware maintenance; these and many more are specific skills that can’t be learned overnight. Data center work used to be a viable middle-class career, but the pay scale for it has gone down and down. Companies that do run their own DCs like Google and Facebook have a few centralized experts, a thin professional staff on-prem, and an army of minimum wage disk swappers who are told what to do by a ticket system, just like an Amazon warehouse worker. The knowledge of how to build and run these things is all at the top now.
I’m not saying the jobs or talent pool are gone. Just that they’re shrinking, and will continue to shrink. Like the manufacturing industry, the fewer people there are who are comfortable working with real hardware, the harder it will be to start anew.
I don't do contracts regularly unless my business in contracts.
Same with taxes.
Just another form of specialization. MSPs and data center companies have been doing this since the 1990s at least, this is just the next evolution.
0.5% downtime should void the bill.
I think presently the providers are getting all the upside. High margin, perpetual lock-in, and no consequences.
I don't know where this idea that cloud providers and other DCs don't pay out for SLA agreements is, but they absolutely do.
That depends on your workload and the nature of the loss of availability. Is the completed work still there but just unreachable for an hour every few months? That might be okay for some folks.
Is your data center always available mon-fri but constantly has scheduled downtime on weekends? Might still be okay.
Your analysis is incomplete which is why it looks like insane high-profit margins.
Amazon AWS (and MS Azure, Google Cloud) also sell high-value services on top of raw datacenters. It's not just commodity rack servers. Amazon keeps iterating on new value-added services (e.g. see new announcements at annual AWS re:invent conference[1]). E.g. AWS DynamoDB service was announced in 2012 and Netflix is one of the customers that use it.
In contrast, other datacenter companies that don't have the same higher value-added portfolio like Rackspace and DigitalOcean are losing money[2] or not even profitable yet[3]. Yes, the lower-tier datacenters are also adding value-added services but the breadth of their product portfolio is not in the same league as AWS/Azure/GCP.
Rackspace was losing so much business to AWS that they're trying to sell the idea of customers paying their RS employees to manage AWS.[4]
>(And testament that the customers are VC-gorged price-unconcious baby gremlims.)
Most of the revenue comes from non-VC businesses. A lot of old Fortune 1000 companies where IT is a cost center shrank their self-run datacenters and moved the workload to the cloud vendors. Another example is AWS winning the big $600 million contract from the CIA.
[1] https://www.youtube.com/results?search_query=amazon+re%3Ainv...
[2] https://www.google.com/search?q=rackspace+%22net+loss%22
[3] https://www.sdxcentral.com/articles/news/digitalocean-inhale...
Honestly, in a few years, I think we'll see Google forced to exit this space, Azure and AWS competing on price for big name corporate contracts, while others such as Digital Ocean being crumpled, simply because the AWS offering is so vast and widely supported online. And AWS' lock-in is pretty damn good.
The only solution to break out of such a duopoly would be for tech oriented companies to stop being lazy and start building out their own cloud infra.
What competitive advantage do you get by making your own in-house, inferior version of an infrastructure service that won't benefit from AWSs economies of scale?
Does this math work out, or have the tasks become more demanding at the same speed that hardware has improved?
I work at one of the decent size tech company and we are split between cloud and on prem. From our experience you have to inform AWS/GCP in advance (sometime way early) if you are looking to meaningfully increase capacity in zone/region.
Sure, auto scaling few hundreds of hosts may be possible but people who run a service which needs few hundreds of hosts run it directly on AWS, they will run it some kind of scheduler+resource manager which will have some kind of operational buffer anyway (as in you would already have those hosts so cloud elasticity is not a factor here).
Are managed data stores that attractive? You can pay for on-prem management.
What workloads are in the cloud versus on-prem?
We actually recommend not using custom cloud providers Databases or any other value added services.
Why not completely either way (on prem vs cloud) is something that happened way before I joined the group but I think the main reason is to have a tactical edge in the long run such that we avoid lock in. I guess in some ways it helps us negotiate pricing better.
Imagine moving a certain workload from GCP region to an AWS region as part of a failover drill.
This times a million. I think SQS standard queues are probably the only thing that IME actually fulfill that promise.
About the up-front investment - most hi-tech companies are a massive initial up-front (or nearly-up-front) investment.
Probably a whole lot less.
At larger scale - I would guess it's the same thing. If an organization needs more than a rack during peak use, it can probably benefit from setting up its own infrastructure. Only in the uncommon case of short extreme peak use and almost no use most of the time does such elasticity make a could solution attractive. IMHO.
https://nickcraver.com/blog/2016/02/17/stack-overflow-the-ar...
Very few web apps will ever serve as much traffic as SO.
Their traffic is like 80-90% reads and they actually hire good devs and let them work on perf.
Neither of those things are true in typical companies.
A bank running 50 different services, on different platforms, with serious audit requirements, physical and logical access control, strict change and configuration management, etc., has two orders of magnitude more complexity. And that shit is very expensive in manpower.
The organizational complexity and specialist knowledge is mind-boggling and there is zero chance that your in-house knowledge is better than what Amazon can provide.
We're talking about Dropbox scale.
At that scale you can (nee should) hire all the specialists you need.
Indeed. The margins are bonkers high. As an example, the amount of ram that you can stuff into a physical machine has at least doubled in the last five years, but the price of the average virtual machine has not.
Increasing hardware performance relative to task load created the rational for virtualization. Virtualization also turned out to be rational with respect to consistency, convenience, maintenance, and so on. At that point, outsourcing to a cloud can be rational.
But fewer people get hands-on experience with the infrastructure, and it sounds like many consider it almost mythical. For example, realizing the amount of work that can be done in 4U today. What does amazon charge for 96 cores and 256GB?
There's some other huge arguments against running your own datacenters.
One is being able to properly provision resources. Being able to write just a function and have it consume just that tiny amount of resources rather than a whole VM is huge. Being able to spin instances up and down as you need them is huge.
I think that's been obvious for a long time, but what I've seen less obvious to the business analysts is the impact of more advanced cloud services. The direction of cloud computing is managed services where they run your databases, container platforms, etc for you. Trying to run a huge Cassandra cluster or Kubernetes cluster takes up a ton of expensive labor's time and there's a good chance the cloud providers are a lot better at it than you.
Sure, cloud services tend to be really expensive, and besides cost, there's also concern about things like vendor lock-in, IP protection/data privacy, and ability to tweak the small details of your platform. But cloud platforms in 2020 have a lot more features than in 2010 and in 2030 will have even more. The direction is pretty obvious. Running your own datacenters will be about as common as running your own power plant.
A 75 million dollar price tag is also huge.
Bothering about the operational impact of a VM or a request sent to a function-as-a-service might be a significant operational issue if your whole team can be moved around with a small sports utility vehicle.
Once you've grow over the point where your monthly cloud pricetag eclipses your company's paycheck budget, operating your own hardware is a no-brainer.
> But cloud platforms in 2020 have a lot more features (...)
That really doesn't matter at all, does it?
I mean, cloud providers are already repackaging FLOSS services as their Serverless offering.
And besides pursuing the latest fad, how many of those features are killed off and vanish from the face of the earth?
It's always great if we can get others to do the work for us, but if we consider the absurd premium charged by cloud providers for their services... Well, those "others" doing the work can be employed by your company and you still save money.
Is it? Over the two years they saved, this is about the salary for 100 engineers. Can you replace and maintain all the cloud aspects that AWS provides you with (I mean the ones you actually use) with 100 engineers? Maybe, if they are good engineers (which is kinda implied by the 300k salary tag in the calculation). If it's worth it, remains to be seen. Definitely nothing for any medium sized company.
Dropbox is huge and has a relatively simple, highly optimized use-case, for which cloud perhaps doesn't offer too much. This is NOT the norm. For most companies, no matter the size, building their own cloud is a no go.
> those features are killed off and vanish from the face of the earth?
Don't use Google Cloud then ;).
> but if we consider the absurd premium charged by cloud providers for their services...
Do you have any data on backing this up? This "absurd premium" includes the salaries of engineers to develop it, maintain it, do DevOps, keep the hardware/data centers, do marketing, etc. etc. There is of course a margin, these companies aren't doing it as a social service... That margin is highly variable from service to service and also between cloud providers. Some may not have a margin at all, others may run at a loss. There is not easy "uh everything is overpriced". Most companies will have a VERY hard time providing the offering at the price of large cloud providers. And the simple "back of the envelope" calculations often miss all the work & cost that needs to be done, but you don't know about...
> Well, those "others" doing the work can be employed by your company and you still save money.
Yeah, if your company is really big, then yes. If your revenue is below 100 million, there isn't even room for any discussion on this: Don't run your own cloud, it's not gonna work. Most of the "cons" I see are about misunderstandings of the offerings and failure to navigate the pricing models and picking the cheapest offerings that do the job. If you fail to do even that, how on earth are you going to run your own cloud?
I work at a medium sized company. Depends on who you count, but let's say around ~30 devs.
Recently we basically did just this, and it's been a great success. We haven't fully migrated and still use AWS for prod, but have seen substantial savings already.
We spent $2k on servers, Dell r720s. We bought a UPS and mount, and racked them in our office. I installed OpenShift 4 on it, which is Red Hat's Kubernetes offering with a nice web GUI, and setup a few terabytes of NFS to automatically provision storage.
To be fair, installing OpenShift for the first time took a while, around 3 weeks. Since then it's been smooth. We still use AWS, but our usage has gone down dramatically. We are still only migrating dev and test environments, leaving prod in AWS (we don't want to be responsible for uptime SLAs, and clients pay prod hosting costs). Some of these projects are CPU heavy, machine learning and computer vision projects too. They're not just simple web-apps. I'm not privy to our entire AWS budget, but I know that one project which we migrated saved over $500/mo.
After installation, maintenance has taken barely any time. Around 10-20% of my time is dedicated to OpenShift cluster maintenance. The rest I do normal project work. I often go weeks without having to touch anything, and the most common task I do is onboard new users. We've had 2 outages in over 6mo, one was an expiring cert and one was an airflow issue on the rack. I've learnt a lot and am certainly not an expert. These were the firs rack servers I'd ever worked with personally, although I had been researching used models for home use for a while (shoutout to /r/Homelab).
In fact, I had such success doing this that I personally bought a Dell r720 and have used it to selfhost a bunch of stuff at home. A co-worker of mine hosts his self hosted lab on AWS. Things like Plex, private photo storage, a few other toys, etc. He says he pays $300/mo, which seems insane to me, but I guess people streaming 4K plex adds up. The used r720 server I bought was $1,500CAD and has way more horsepower than he's paying for. (There are also electricity costs I haven't factored in here, as I'm trying to control for other changes in my power bill. Might be $100/mo at most.)
You're not doing anything even remotely close to the features offered by cloud providers or even managed hosting providers.
Disaster recovery? Geographically separate redundant servers with failovers? Automated (and proven to work) backups? One-stop access control for infra maintenance? Audit controls for your database and storage objects? Tape backups?
Even today to support all those things you need a small army of specialists. Granted, a heck of a lot of things can get away with not having any of this. But the use cases are out there and hosting and maintaining all of that in-prem is another different level.
I understand your use case, but your is very, very far from the sheer and absolute complexity and features that enterprise data centers have.
So what?
Who in their right mind believes in, say, you need to operate and maintain half a dozen types of RDBMS in three flavors along with two or four or eight different message brokers and your own convoluted infrastructure-as-code multiplied by three along with a repackaged FLOSS offering... And a ground station?
Let's not be mad, here. There are proper, full-blown, popular, global-scale cloud service providers. That. Only. Offer. VMs.
Are we so drunk with corporate kool-aid to believe that we are missing out because we are missing... What do you believe you're missing, actually?
I repeat: there are popular professional cloud service providers whose business consists of providing either VMs or access to bare metal. That's where real-world companies run their real-world businesses. Why are we supposed to believe that you need more to operate your own stuff?
This is about as far from the truth as I have experienced in life.
Fortune 500 companies have an innumerable number of platforms for software, use hundreds of products from dozens of vendors, many dead long ago. Same thing with governments, at every level of scale. Telecoms? Utility providers? Medium-sized businesses who are not in tech? Specialist software that runs in a basement rack and that eventually gets moved to a datacenter and compliance requirements begin demanding all the bells and whistles I just mentioned.
Without a doubt there's a lot of gross compute power that lives on the VMs you just mentioned. But all their financial processing is probably about a fraction of what some AS/400 or mainframe doing a nightly batch job, with software running from decades ago and licensing costs going into 7 figures a year.
What you're asking for just doesn't exist. You can do what you're mentioning across, maybe, a single product line and a half-dozen teams. But even that company needs to use CRMs, ERPs, and custom stuff for which you cannot possibly define platform requirements on your own, limited, terms.
A customer that I used to admin their Unix servers on had software on IBM mainframes, IBM AS/400s, Solaris, AIX, two SCO Unix machines running some proprietary hardware control plane, a few thousand Windows machines, etc. You want a "real" ERP product? It's gonna run on Oracle or DB2, forget about Postgres. That app you made 15 years ago running on MySQL with the ISAM storage engine? Forget about ever upgrading that. Need to interact with banks? Holy smokes have I got bad news for you. You need software to interact with medical records that requires special legal compliance across multiple jurisdictions? Well, no one cares what that runs on as long as it keeps the millions rolling in.
These are our dev+test setups, and we're looking far more carefully at prod for the reasons you touch on. Those aren't necessary for every project too, eg hosting computer vision demos.
For our government projects, the government hosts it on their own OpenShift cluster that they maintain (including their own data centre), due to requirements for all data to be hosted within our boarders. The OpenShift cluster I setup is no-where near as well maintained as the governments, they have multiple FTE and it runs most of the open source gov't code. They have tape backups, rolling on-call staff, public developer chat for support, the whole deal.
What I setup is far more simple. We have daily/weekly/monthly rolling backups of postgres pods. We store some backups of those on digital ocean, but that's just a cheapo litttle linux server.
But now a team of 30 developers can easily spin up their own projects using a web-based GUI from basically just providing a Dockerfile or a link to a git repo. One of the oft-touted organizational benefits of "cloud" is that you don't have to wait a week for Ops to provision a VM. We get all that.
>I understand your use case, but your is very, very far from the sheer and absolute complexity and features that enterprise data centers have.
My point is that many things people host in AWS do not need enterprise quality. If you're a startup, then almost by definition you do not need enterprise quality (though, as always, it depends). We made a tonne of savings. I'm sure many others would by self-hosting and learning a moderate amount of Linux / Kubernetes.
Obviously, this only applies to huge companies like Dropbox. Everyone else is better served by AWS.
I was also thinking about COBOL programmers when writing my comment.
You're right about the stubborn part, but not necessarily largest. Many IT leaders at companies of all sizes have their political capital tied up in the data center. What you're talking about doing (with cloud adoption) is outsourcing 90% of what they control. For them it's existential, uptime and agility be damned.
Serverless is even worse for them, as far as IT fiefdoms are concerned.
I think that overstates the problem. It does not require a whole pile of skill to purchase a few rack mount servers from Dell or Supermicro with onsite 24 hour warranty, and plonk them in a co-lo. In the rare event the hardware does break ring Dell and ask them to fix it for you. When the onsite warranty end's in 7 years it's time to replace the servers.
The expertise required it literally minimal - not much beyond the ability to use a screw driver to install it into the rack and know how to connect the Ethernet cables. Then you have to plug in a USB and install whatever OS you want, of course, but you don't have to be onsite to do that. They all come with iDRAC's or the equivalent.
They will cost about $1000/yr with maybe 10TB raid disk, co-lo costs of around another $1000/yr for unlimited bandwidth. To rent the same dedicated metal is about $500/mo from OHV where I live, so over twice the cost.
Obviously, this is all impossible if you aren't big enough to have dedicated IT staff. And obviously, if you are likely to go through rapid change (well, something more extreme than adding a new server every now and then), it isn't the best plan. But for a stable mature business that employs several hundred people, all you are really doing is cutting out the middle man.
Every corporate use case I have seen is labor based. They dont want the overhead of salary and healthcare for the IT department. Even if long term they end up paying more, they always view it has pay for it now or pay for it later. And they always choose later because they dont know better.
(none of these have been the scale of dropbox, that is different)
This is a dangerous assumption to make. Delaying payments and going with the crowd are both safe decisions. Safe decisions are smart decisions under normal circumstances.
Their product is extremely close to basically just reselling storage space. Of course it makes sense for them to build their own infrastructure.
For a company whose product is a saas application (business logic in code) with users spending hundreds or thousands of dollars per month, those cost savings may never materialize relative to the amount of infrastructure each customer is using per dollar.
Dropbox is essentially buying a barrel of gasoline and selling it in gallons. Their product can never be profusely more valuable than the underlying infrastructure.
As I recall there are giants like Netflix that still run on AWS...which brings up another point! If you’re large enough to consider your own data center, you’re large enough to negotiate contracts with cloud providers at below-retail rates.
Isn't the financial implications of capex vs opex a huge consideration? I've heard that opex is is a lot simpler to account for. Technically once you get big enough cloud becomes more expensive. But hiring people to manage both your own datacenters and cloud services does complicate things. I find it understandable that companies are willing to pay more for cloud providers if their core business doesn't require expertise in cloud computing.
Disclosure: I work at Microsoft on Azure, but I’m on the product/dev tool side not on infra.
I think this is already happening to a certain extent and will happen more in more verticals as time goes on. There are massive government use cases for the cloud and it isn’t as if governments and agencies haven’t been maintaining their own datacenters and servers before. Clouds optimized for healthcare are also a thing and are only becoming bigger — again, industries that have long maintained their own infra.
You also have the private cloud model, which OpenStack pioneered but Azure Stack and AWS Outpost have put their own spin on, which essentially lets you host specific cloud services and tools on your own infrastructure.
There are always going to be some businesses that reach a size and scale where it doesn’t make sense to offload to the cloud, where paying for people to do maintenance and support, build out monitoring, handle everything soup to nuts makes sense. I think Dropbox, which is a storage provider, is a key example of that.
I talked with the then CTO of Dropbox right after it finished moving from AWS to it’s own datacenters and the process was extraordinary and really impressive. For what Dropbox is doing, it makes sense that it owns and operates its own infrastructure and storage and tooling.
Of course, you can also have the inverse. Zynga famously moved off AWS as its demand peaked and it saw the cost savings, and then had to move back to it, after demand died down and the numbers of owning and maintaining its own infrastructure no longer made sense.
Netflix has moved much of its stuff in-house, but still relies on AWS and likely will for quite some time.
But on the whole, yes, I absolutely see cloud providers moving to offer specific business and business vertical centric solutions with pricing that is lower than what those businesses could achieve on their own, even if you take some of the “services” stuff out of it snd are just looking at raw infrastructure costs.
Is it because Starbucks has the most efficient cost outlay for long term investment in a user's needs?
Or is it because people just want some damn coffee and there's one on every corner?
Or is it because, in a world full of places to buy coffee, one place gives you everything you could ever dream of in a coffee place?
That is what the big cloud providers are. They are Starbucks. They are not the cheapest. They aren't even the best. But they are everything you want.
If your company gets Starbucks-huge, you don't need to buy your coffee from Starbucks. You have your own deals with roasters and your own supply chains and baristas and coffee logistics experts.
That's why some companies build their own. Not because it's a better idea (it's not), or because Starbucks costs too much (compared to the investment in re-creating Starbucks?). It's because they are a business that effectively makes their own coffee already, so it makes no sense to pay Starbucks for it. Of course, they won't have a Starbucks once they make their own coffee, but they will have served their needs well enough.
So in most cases, if I want a coffee I don't go to Starbucks. They I go to the kitchen, it's faster, cheaper, and more convenient than going to Starbucks.
However, if I'm out and about it doesn't make sense for me to invest in temporary coffee infrastructure. In those cases it's easier to go to a cafe like Starbucks.
This matches the idea of the article. If you have consistent demand it makes sense to buy infrastructure to meet that demand. But if the project is temporary or extremely bursty it may make sense to have someone else do it for you.
It reminds me of the arguments for and against K8s. Most of the discussion is based on use case, and not considering the solution space for all solutions. E.g. if I'm running an Erlang solution in K8s, or have a small number of servers, I may have better options.
It isn't only about scale. It takes understanding your system and your needs in depth, and any short cuts lead to cost inefficiencies.
That may actually work the opposite way. The big guys can negotiate pricing with the cloud providers to the point where they may be running at close to cost. It's the small and mid tiers that get hosed with cloud pricing.
>You personally need to run the numbers with both scenarios. Depending on your use case, it may be cheaper to be in AWS
I'm not sure about that. Certainly cloud infrastructure provides a level of flexibility which may be advantageous if you're going through high rate of growth. Outside of that, I'm not sure you'd see any cost savings.
A public cloud inherently/structurally has more costs because it is built to be truly multi-tenant and has lots of elastic capacity.
A single tenant private cloud can cut out a lot of bells and whistles and can be tailored to the needs of the company's private use-case – this brings down the cost significantly.
If your compute/storage bill is greater than $10 million per year, then it is highly likely that for the same money you will get much higher compute/storage capacity in a private cloud. And that gives you more headroom for growth/elasticity etc.
If your bill is greater than $30 million per year, then you will likely save significantly as well as get other strategic advantages – especially if your infra scale continues to grow over next 2-5 years.
Stories like this can be really misleading because large companies almost can't help but trick themselves into financial shenanigans. It's very possible that Dropbox just spent $100M upfront to start saving $35M / year relative to AWS current prices... but discovers in year 3 that they are no longer saving money because AWS has reduced prices via their own R&D, which is spread over a massively larger customer base.
Now, because Dropbox is a storage company, it may well make since for them to continue R&D and try to keep pace with AWS, at least for their own needs. But 99% of other companies - of any size - would likely fall on the wrong side of the scenario above.
Sure, AWS may be constantly innovating on doing things more cheaply and scalably. Sometimes, those savings get passed off to the customer; but not most of it, and not necessarily all that frequently.
Did you miss where AWS reduces prices multiple times a year? I don't know the latest figure, but as of 2018, they reduced prices 67 times since launch in 2006.
The only S3 price reduction I can find was in 2012 https://aws.amazon.com/blogs/aws/amazon-s3-price-reduction/
fwiw, a quick google search for `s3 price reduction` yields one from 2016: https://aws.amazon.com/blogs/aws/aws-storage-update-s3-glaci...
there's also one-zone s3 storage options which are cheaper as well
Amazon competes with other cloud providers and with build-your-own continually, and use price segmentation to stay on the right side of the equation for as many people as possible, while still skimming as much premium for themselves from each user group. Historically, that’s meant big price drops in most categories that would make most one off investments obsolete - while still keeping a ton for themselves.
It also helps that S3 is an anchor product that helps them sell higher margin stuff.
Nothing I have seen indicates dropbox "built its own datacenter." It looks like they are in Equinix, CoreSite, and DRT colocation.
In one case, you pay a premium so that somebody else worries about all details and maintenance, and in the other, you take on that burden but don't pay the premium. This has always been true for everything where a service is provided to you.
Great if your needs are small or not well known because there is no initial investment, but bad in the long run.
Or they can go through a 3rd party consultant to take care of it so they can focus their cycles on more important issues.
Not everyone is an infrastructure provider. Time is a limited commodity, and there are clear benefits of spending as much of your time on the core business.
Just saying spend isn't the only factor here.
The real secret is that compute isn't the driving factor in cost - its bandwidth. I've had too many conversations where people are congratulating themselves on their $0.027/GB PPA only to explain that they are paying effectively $8.00/Mbps for a network link. The real threshold is network consumption and when you cross it figuring out a hybrid strategy is the best path.
Wow thank god some of y'all aren't running these businesses.
It still surprises me every time I see failures to think marginally.
It could also be that there's just no other way to cut anything from their enormous opex (for example fire people or buy less ads). I find this hard to believe but may be true.
One very good strategic reason to do this, I think, would be to gain independence from cloud providers, who unfortunately happen to be your major competitors.
All of the questions you asked before (risks, capex, etc.) all would have been answered during an assessment period. It's almost as if you assumed that none of that was done and that their sys admin group just through together a proposal to move to a colo and their executive management made a decision to do so. That's not how this works.
The number one priority of this type of initiative was cost and reliability. Going exclusively cloud is not a silver bullet for every company - that trope needs to die.
And then the next 10 years you get pure profit? That's still an ROI and significant one.
> One big breakage could wipe off that 75M very quickly.
What specifically would cause a $75M loss? As you said, cloud is not bullet proof.
2.8% of a big number is still a bigger number than 2.8% of a small number. Not sure what point you're trying to make here...
So even if it were a wash financially, it's still a huge plus.
I work in a company that is currently trying to move over to AWS from on prem servers.
Why? Not for AWS proprietary software. That's completely an afterthought (In fact, the first round is likely going to be those expensive ass EC2 instances).
The real reason we are looking at moving to AWS is because they have data centers across the globe and we don't. So even though EC2 is expensive, it's far less expensive than trying to navigate the waters of setting up a datacenter in France, china, and India.
If you have a large organization where cost is divided in 100s of teams and products, cloud (vendor/managed) will be beneficial in removing lot of bureaucracy.
Depending on your scale might even be able to peer with them directly if you're big enough.
Or, if you are big enough to justify it you can order direct 10Gbps cross connects within a number of facilities to AWS.
So, essentially, in the same building or across the street? May be very tricky to pull off.
If you can extend your horizon of view out to buildings that are in the same metro area but less than 10, 15 or 20 km of (OTDR measured) fiber from the IX point, the performance is very nearly the same, and there's a lot more options. One example would be the datacenters in Tukwila, WA and their relationship to IX points in downtown Seattle.
At some point it might be interesting to calculate the size of your company in terms of how many racks you have and how many employees you have. These days a fully loaded rack costs a lot more than your typical Software Developer salary.
I guess part of the problem with that is the cost of maintaining different platforms, but there are ways around that.
If you don't have people who can provide cloud-like APIs to developers to self-serve, then you are trading off your developer time with money. And I'd argue that is a terrible trade off.
Pfizer, where IT is a minor backoffice operation, doesn't care that 'everything is 2x the cost' because that cost is materially small, and the nimble nature of the cloud is a much bigger advantage. And they don't have the talent to make their own cloud anyhow. So to them it's cheaper.
Also note that most cloud users are not startups or tech companies, they are 'basic corps' doing IT.
Let's just say they have 5 exabytes. A petabyte costs roughly $50,000 using this scenario, and 5,000 petabytes would then cost $250 million dollars alone.
If they had 20 exabytes...they would have a billion dollars in storage hardware alone?
This doesn't include power, networking, labor, none of that.
- Dropbox saves $50M/year in AWS costs
- Dropbox spends $200K/year (salary, benefits, equipment, SaaS, etc.) for their average infrastructure engineer
Following those assumptions, Dropbox must hire <250 additional engineers for this to break even.
Of course, these assumptions may be wrong (please correct them if so!) and this entirely ignores the unique computing needs of Dropbox's business, which may be unique vs. anything available off the shelf.
The usual rule of thumb is that you assume 2:1 for salary and support costs — that starts to drift at the higher end of the pay scale but I'd doubt that a company in San Francisco isn't paying a substantial amount for office space, health insurance, etc.
Your general point is still correct: call it a hundred engineers to break-even and it's likely still a substantial win, and there are some interesting angles for additional cost-optimization given Dropbox's mix of high network traffic and long-tail storage.
I think it's a good idea. But when deciding whether to acquire a company or not, there are several factors involved, only one of which is the technical fit.
Sure, you can buy and colocate a dual processor Xeon Platinum bought from Dell, but when you can get significantly more than twice the performance per dollar buying an Epyc system, it's stupid to do it.
Stop comparing "cloud" to bad business decisions, and start comparing it to business decisions which would be made by people who want to get things done without ego.
But why run servers when you can just put your workloads in lambdas. That's a huge money saver, unless you're hosting video games.
I'm also curious - what's the rough time/cost of moving to your own infrastructure? I'm sure it depends on lots of things, but looking for a ballpark. 1 year + 10 engineers? 5 years + 100 engineers?
Of course it’s cheaper. Compare the cost of an enterprise NAS vs external hdd from bestbuy. It’s a similar comparison here
"Cloud" providers are so much more than just the hardware. There are probably a lot of AWS customers who could absolutely save lots of money if they took all their cloud servers and magically made them physical on-prem servers. But then they might hit a situation like:
"We need to create a whole new prod-sized cluster for load testing but only for a day". Do you rack all those servers, do the test, then take them off and bin them? Or what?
I'm tempted to go on and on with similar examples but imo the biggest deal with cloud providers is that they can operate at such an insane infra scale that it lets you treat extremely large quantities of servers like an abstraction instead of a physical metal box that needs to be bottle-fed and rocked to sleep at night lest it get cranky.
I think at fairly small scales it's easy to build in-house systems that let you treat servers like abstract units as long as you're not trying to 2+x your infra dynamically. But cloud solutions let you do that because your scale <<< the cloud providers' scale even at pretty large values of scale for any one company.
How much time you have to spend is generally related to how many servers you have. In my experience, if you have automation setup correctly (1-2 weeks) you can average around 5 hours per month to manage about 30 servers.
Also, there is not only aws vs on prem.
There are solutions in the middle where you don't have all of the AWS services but price is much lower.
I've seen very average businesses spending 1mln per year in AWS for, really not much. IMHO most mid businesses would be better off renting servers and having some staff maintaining them.
Virtual private servers, bare metal hosting, cabinet, rack, or cage in a colo, and then operating your own datacenters.
The more you buy into the AWS services and not just EC2 instances, the harder it is to move out. In other parts of the thread, people are saying you need to have a good team to run your own infra, but you also need to have a good team to run on other people's infra, and debug their bugs without visibility, so that you can guide their techs to fixing your issues, so I don't think that using other people's services absolves you of having a good team.
Really the issue isn't age of company or number of engineers. It's the number of servers you need, and how stable that is. If you can't predict your server count 3 months out, you need to host with someone who has stock on hand to buffer your growth. If your server count is small, you get better geographic redundancy picking up an instance here and there from around the world from a single vendor; colo space is available everywhere, of course, but you would likely be dealing with different vendors in each locality.
If you can take advantage of growing and shrinking your deployment throughout the day in response to load, and there's a dramatic difference between peak and trough, it makes a lot of sense to be somewhere that you pay by the hour, instead of by the month or have to buy for the peak and let it idle.
[1] Or Google Cloud, or Azure, or Oracle Cloud or whoever.
And more importantly, I won't go all in on the could until the big cloud vendors start running their workloads on machines they don't physically control.
The issue is that people use the cloud as just another random VM to run their software.
Can you save a few bucks on server costs? Sure. But most of the world has moved beyond caring about servers.
also. since we already exist. we run mail, ldap n a few other bits as well. i still think its all cheaper than 3rd party hosted.
Protip: If your business is storage, that is your core competency. Don't pay someone else for it.
I'm sure Netflix uses a lot of AWS, but as a percentage of their total traffic (which is absolutely enormous), it's probably not that much.
So either it's not $75m or it was a bad idea.
I use OneDrive because it's free with Ms Office, which I need anyway, and their 'family plan' pricing is great. I decide cloud storage for like 5 accounts, backups of family photos, etc.
That is in spite of the fact that dropbox is miles better, and has extra features - they dont move the needle.