News for hackers. Stuff that matters.
Re:Fighting vendor lock-in and designing testable serverless... by stickfigure on Tuesday April 23, 2019 @09:25AM (#19728321)
This is what I call fake work.

This company builds a team vacation tracker. As long as it's reliable, their customers could not give a rat's ass whether it runs in AWS, Google, or Joebob's House Of Ill Compute. Every engineer hour spent creating abstraction layers and docker containers and whiz-bang multiplatform plumbing is an hour that could have been spent working on something your users actually care about.

Switching clouds is a cost optimization. You have to be an enormous company (or in a resource-intensive domain) before this is more productive than building features. It means you've moved out of the growth phase and into the "how do I milk what I've got" phase.

Vendor lock-in is something that engineers care about because they like playing with tech. It's cool switching platforms or databases or whatnot because it really feels like hard, sophisticated work! But it doesn't move the needle.

Re:Fighting vendor lock-in and designing testable serverless... by theknarf on Tuesday April 23, 2019 @09:36AM (#19728403)
> Due to a change in how they report data usage, our monthly costs for Firebase, a SaaS provided by Google, has increased from $25 a month to what is now moving towards the $2,000 mark — with no changes to our actual data use. This change was made without warning.

ref https://news.ycombinator.com/item?id=14356409

Vendor lock-in can make or break startups if you're not careful enough.

Re:Fighting vendor lock-in and designing testable serverless... by gambler on Tuesday April 23, 2019 @10:56AM (#19729225)
>Vendor lock-in can make or break startups if you're not careful enough.

And it's often worse for bigger companies. Startups can often just rewrite their crap. You can't do that overnight with several years worth of legacy systems if they rely on vendor-specific features.

Re:Fighting vendor lock-in and designing testable serverless... by dev_dull on Tuesday April 23, 2019 @11:22AM (#19729505)
I imagine the ratio to be something like 1,000,000,000:1 for death from premature optimization vs vendor lock-in related changes.
Re:Fighting vendor lock-in and designing testable serverless... by hinkley on Tuesday April 23, 2019 @06:12PM (#19733490)
It's the Precautionary Principle.

The odds may be low, but there are vendor lockin scenarios that sink a company fast. Having experienced that once you don't want that sense of powerlessness again.

The part where I agree with the sentiment in this chain is where people try to avoid this by putting in big abstraction layers of custom crap.

It's possible to use Law of Demeter principles to keep the vendor details of a lot of subsystems from leaking across your entire app. But that requires architectural skills that are de-emphasized in the Ship Every Week world we live in.

(I'm not implying causality there, or maybe the causality is in the other direction. These things are hard to learn and harder to teach and if you can't get one thing you try something else.)

Re:Fighting vendor lock-in and designing testable serverless... by stickfigure on Tuesday April 23, 2019 @11:51AM (#19729772)
Perhaps this is the "exception that proves the rule"? That situation was unusual enough that one of the Firebase founders reached out and gave them a bunch of credits and helped them work through the issue.

There's certainly a continuum here. The most minimal risk mitigation strategy is simply to use your own domain (as opposed to the vendor's domain), and that requires nearly zero effort. Unfortunately the team in that article made that mistake, and they're pretty honest about admitting it.

Assuming you don't make rookie mistakes at the beginning, you always can move to another platform - it's just a question of how much work it will take. Is it better to put that work in up front for the 0.01% chance you'll need it? I think not.

Re:Fighting vendor lock-in and designing testable serverless... by fauigerzigerk on Tuesday April 23, 2019 @02:51PM (#19731609)
>Perhaps this is the "exception that proves the rule"?

The recent 12 x Google Maps API price hike is another such "exception that proves the rule" apparently.

Re:Fighting vendor lock-in and designing testable serverless... by dragonwriter on Tuesday April 23, 2019 @01:38PM (#19730934)
> Is it better to put that work in up front for the 0.01% chance you'll need it? I think not.

Over a sufficiently long time horizon, the chance is much greater than 0.01% and the longer you go without doing the work, the more it costs to do the work.

Sure, it's more a problem that bites you when you've become a big enterprise, but it bites hard, and some of us work in big enterprises on systems that could reasonably be operational for generations going forward (and perhaps have been going backwards.)

Re:Fighting vendor lock-in and designing testable serverless... by stickfigure on Tuesday April 23, 2019 @04:09PM (#19732344)
I would happily accept that problem if skipping the extra work enhances my chance of becoming a big enterprise in the first place.
Re:Fighting vendor lock-in and designing testable serverless... by dragonwriter on Tuesday April 23, 2019 @04:26PM (#19732484)
> I would happily accept that problem if skipping the extra work enhances my chance of becoming a big enterprise in the first place.

And that's the right choice in some cases. But the added up-front effort can be a lot less than the added reengineering effort, and growing into a big enterprise doesn't mean you are immune to disruption by more agile startups.

And, of course, those who are already in big enterprises have different concerns (while premature adoption of the mitigations at issue can be engineering resume padding in startups, deferring it with the hope that it won't be a crisis until it's someone else's problem in exchange for short-term metrics can just as easily be management resume padding in enterprises.)

Re:Fighting vendor lock-in and designing testable serverless... by JamesBarney on Tuesday April 23, 2019 @05:40PM (#19733194)
But how much less work is it do it up front, and continue to maintain and test a multi-provider platform?

I don't think it's 100x or even 20x less work.

Re:Fighting vendor lock-in and designing testable serverless... by musingsole on Tuesday April 23, 2019 @11:06AM (#19729334)
Vendor lock-in at the level of Google, Microsoft or Amazon is not the same as becoming overly reliant on a single small factory down the road providing a critical sensor.
Re:Fighting vendor lock-in and designing testable serverless... by regularfry on Tuesday April 23, 2019 @03:19PM (#19731921)
No, it's worse. You're more likely to find investment to buy the small factory if you have to than to buy Google.
Re:Fighting vendor lock-in and designing testable serverless... by organsnyder on Tuesday April 23, 2019 @03:22PM (#19731948)
That's a cost increase of $23,700 per year. Certainly not trivial (especially for a startup), but that's 1/5 of the cost of a junior engineer in a low cost-of-living market.
Re:Fighting vendor lock-in and designing testable serverless... by rblatz on Tuesday April 23, 2019 @03:38PM (#19732097)
In low cost of living markets jr engineers are making much less than $118,500 in fact they make about half that in median markets.
Re:Fighting vendor lock-in and designing testable serverless... by JamesBarney on Tuesday April 23, 2019 @04:05PM (#19732309)
But the all-in cost in terms of administrators, managers, healthcare, mentoring and employment taxes raises that quite a bit, probably closer to the 120k number than the 60k number.
Re:Fighting vendor lock-in and designing testable serverless... by scarface74 on Tuesday April 23, 2019 @11:57AM (#19729836)
Honestly, any business that bases its infrastructure on Google deserves what it gets. When have you ever read ridiculous price hikes by AWS or Azure?
Re:Fighting vendor lock-in and designing testable serverless... by rorykoehler on Tuesday April 23, 2019 @12:05PM (#19729922)
Has more to do with Google than vendor lock-in. They're always up to this kind of backdoor shadiness.
Re:Fighting vendor lock-in and designing testable serverless... by JOnAgain on Tuesday April 23, 2019 @09:42AM (#19728455)
If $25/month breaks your startup ....
Re:Fighting vendor lock-in and designing testable serverless... by robrtsql on Tuesday April 23, 2019 @10:16AM (#19728787)
I think it's the other $1975 that is breaking their startup.

Depending on your perspective, that might also be a small amount, but let's not misrepresent the situation.

Re:Fighting vendor lock-in and designing testable serverless... by maxxxxx on Tuesday April 23, 2019 @10:22AM (#19728868)
The question is how much you can shave off the 1975 by going to another vendor.
Re:Fighting vendor lock-in and designing testable serverless... by acct1771 on Tuesday April 23, 2019 @10:56AM (#19729233)
The question should be how much you can save by not tying an anchor you don't control the weight of around your neck in the first place.

The anchor in the metaphor is using large tech conglomerate without being able to quickly pivot away from them at a moment's notice.

Re:Fighting vendor lock-in and designing testable serverless... by spookthesunset on Tuesday April 23, 2019 @04:29PM (#19732507)
> The question should be how much you can save by not tying an anchor you don't control the weight of around your neck in the first place.

How much did it cost to engineer your product to not "tie an anchor"?

My guess is, you didn't "save" anything trying to build out several layers of abstraction to deal with a hypothetical risk of getting screwed by "large tech conglomerates".

Re:Fighting vendor lock-in and designing testable serverless... by acct1771 on Wednesday April 24, 2019 @03:43PM (#19741973)
Send me an email, subject "Does your product have technical debt?" in 5 years.

Spoiler: Answer will be "no".

Re:Fighting vendor lock-in and designing testable serverless... by pault on Tuesday April 23, 2019 @10:40AM (#19729060)
Did you even read the comment? A change in firebase pricing increased the cost by almost an order of magnitude. I don't know how it affected the upper tiers but if you imagine a larger startup with much higher traffic, an unexpected price increase like that could break the company.
Re:Fighting vendor lock-in and designing testable serverless... by spookthesunset on Tuesday April 23, 2019 @04:25PM (#19732473)
The funny thing about "vendor lock in" that some engineers never consider is by avoiding "vendor lock in", you run a very real risk of getting locked into your own pile of crap instead. I've seen so many examples of homebrew database abstraction layers, homebrew javascript frameworks, homebrew reporting systems, homebrew cloud stacks (if you are luckly... there is also the rack-and-stack crowd), homebrew build systems, etc. All of them have just as high, or higher, switching costs than any paid vendor. All of them are unsupported, largely crappy rip-offs of what you could buy.

I've seen companies get far more burned by these homebrew monsters than I've ever seen them get burned by "vendor lock in".

Re:Fighting vendor lock-in and designing testable serverless... by debt on Tuesday April 23, 2019 @07:04PM (#19733889)
Furthermore, in my experience the usually poorly documented homebrew stuff is almost always worse than whatever crappy legacy but well-documented vendor their locked into.

If I see some custom framework it’s usually an instant facepalm.

Re:Fighting vendor lock-in and designing testable serverless... by dexen on Tuesday April 23, 2019 @09:34AM (#19728384)
To push back a bit, without going into the abstract of portability:

- performance is a feature

- reliability is a feature

- security is a feature

- and lastly, cost-effectiveness is a feature

If the app is to be used through wide range of regions, you want geographically close datacenters for low latencies. If the app is to be used for mission-critical purposes, and contain sensitive data, you want high assurance and privacy[0]. And lastly, the cheaper the app is to run and maintain - and that includes not just the infrastructure bill, but also availability of engineers who know the platform well[1] - the better you can develop the same app within the given budget & time.

[0] there are some legal compliance requirements for handling medical data

[1] one of the reason Windows apps are rather cheap and plentiful - there's wide availability of engineers who know the platform well. Likewise for certain popular web stacks.

Re:Fighting vendor lock-in and designing testable serverless... by jimmychangas on Tuesday April 23, 2019 @09:53AM (#19728549)
Better yet, the things you listed are qualities. They encompass every feature in the product. I think parent is generalizing too much on his assumption that only mature companies should spend time in optimization. Early stage startups can sometimes make mistakes, and optimizing early on can help them save the precious resources needed for them to survive another six months.
Re:Fighting vendor lock-in and designing testable serverless... by dexen on Tuesday April 23, 2019 @10:02AM (#19728651)
>They encompass every feature in the product

That's not a given. It's plenty common to have the most often used features (say, sub-pages, or key processes) optimized the best, with the rarely used ones lingering at low optimization. User behavior is non-linear; small changes around pivotal values can yield great results. Over-optimizing on the other hand yields diminishing returns. Making even just your home page snappy can greatly improve conversions (or whatever is your success metric).

Other than that you are right that a bit of optimization here or there can save a lot of costs. I distinctly remember certain popular phpBB forum that, while quickly growing the userbase, somehow managed to still improve performance on rather measly hardware - and without much horizontal scaling! - getting in return genuine praise from the users, and also keeping the cost & complexity in check.

Re:Fighting vendor lock-in and designing testable serverless... by jimmychangas on Tuesday April 23, 2019 @10:23AM (#19728874)
You are right, thank you for your reply. The "user behavior is non-linear" and "optimization yealds diminishing returns" are powerful insights.
Re:Fighting vendor lock-in and designing testable serverless... by JamesBarney on Tuesday April 23, 2019 @04:07PM (#19732329)
But I feel like it's way easier to hire for Azure,AWS, or Google than all three, or the in-house cross provider solution.
Re:Fighting vendor lock-in and designing testable serverless... by gambler on Tuesday April 23, 2019 @10:55AM (#19729210)
>Vendor lock-in is something that engineers care about because they like playing with tech.

Bad engineers care about vendor lock-in, because they want to pad their resumes with abstraction tools.

Good engineers care about vendor lock-in, because all cloud providers have limits you do not control. Your architecture can become insanely expensive or simply stop working if something you do grows beyond one of those limits. In those cases you can either re-architect the whole thing or simply switch vendors.

This is one of the hidden costs of "cloud" platforms everyone suffers from but no one talks about.

Re:Fighting vendor lock-in and designing testable serverless... by scarface74 on Tuesday April 23, 2019 @12:02PM (#19729887)
If we grow so large that we hit the limits of whst AWS can handle, I think we will have enough investor money flowing in to be able to afford rearchitecting.
Re:Fighting vendor lock-in and designing testable serverless... by kensey on Tuesday April 23, 2019 @01:39PM (#19730956)
You can easily grow so large that you hit a limit of what a given cloud provider will allow (e.g. API calls or IOPS) at a price that fits into your budget for a task, even if you're not actually especially large. (AWS will give you all the IOPS you can ever use... as long as you have the money to pay.) In that case, being able to pivot to another cloud provider quickly can save your burn rate.

(Flashback to my ITIL instructor in 2008 talking about Service Catalogs and how they are meant to include even discontinued products. "Will Microsoft support Windows 3.1 for you today? YES! Bring money.")

Re:Fighting vendor lock-in and designing testable serverless... by scarface74 on Tuesday April 23, 2019 @01:59PM (#19731130)
And you think you can host on prem and support your use cases without any budgetary constraints?
Re:Fighting vendor lock-in and designing testable serverless... by regularfry on Tuesday April 23, 2019 @03:18PM (#19731910)
Is "on prem" the same as "another cloud provider"? Or is it irrelevant to the discussion?
Re:Fighting vendor lock-in and designing testable serverless... by scarface74 on Tuesday April 23, 2019 @03:25PM (#19731978)
If you need resources, either you’re going to have to pay a cloud provider or run them in your own data center or at a colo.
Re:Fighting vendor lock-in and designing testable serverless... by regularfry on Tuesday April 23, 2019 @12:11PM (#19729986)
You might not be able to afford the time.
Re:Fighting vendor lock-in and designing testable serverless... by scarface74 on Tuesday April 23, 2019 @12:15PM (#19730011)
So what are the chances that your business is going to grow large enough that AWS or Azure can handle the requirements? Is your business likely to grow large enough to need more from AWS than Netflix or even Apple?
Re:Fighting vendor lock-in and designing testable serverless... by regularfry on Tuesday April 23, 2019 @03:11PM (#19731831)
My business? Close to zero. But:

> If we grow so large that we hit the limits of whst AWS can handle, I think we will have enough investor money flowing in to be able to afford rearchitecting.

Apparently you think you're in danger of that happening, so what makes you think you can buy time with money?

Re:Fighting vendor lock-in and designing testable serverless... by scarface74 on Tuesday April 23, 2019 @03:28PM (#19731996)
I don’t think I will. I’m not the one posting about the hypothetical boogeymen that a business I work for is going to grow so large that a cloud provider can’t handle it. As if some how that same business could build out a data center that could scale better than AWS or Azure.
Re:Fighting vendor lock-in and designing testable serverless... by regularfry on Wednesday April 24, 2019 @03:12AM (#19736233)
> I’m not the one posting about the hypothetical boogeymen that a business I work for is going to grow so large that a cloud provider can’t handle it

That's literally what you said in the post I quoted.

> As if some how that same business could build out a data center that could scale better than AWS or Azure.

You're the only one straw-manning this with on-prem. The whole context of the discussion is around being able to move between cloud providers. Why are you bringing a point into the discussion nobody else thinks relevant?

Re:Fighting vendor lock-in and designing testable serverless... by scarface74 on Wednesday April 24, 2019 @09:59AM (#19738388)
This is the original post I was responding to:

You can easily grow so large that you hit a limit of what a given cloud provider will allow (e.g. API calls or IOPS) at a price that fits into your budget for a task, even if you're not actually especially large.

My response was that what are the chances that a company will grow large enough that it will outgrow the resources of a cloud provider?

And there are really only three cloud providers worth discussing - AWS, Azure and Google. Besides Google (and if you based your business around then you get what you deserve) what cloud provider has raised prices on a whim? Which provider’s cost are so out of line with the other that it is worth the switching costs? Besides, if you’re that large, you’re paying negotiated prices not published prices.

In fact one post was specifically about building out specialized infrastructure at a colo.

https://news.ycombinator.com/item?id=19731913

If you’re so large and you are going through the costs and risks to move off of a cloud provider, why put yourself in the same position again by migrating to another provider?

Re:Fighting vendor lock-in and designing testable serverless... by gambler on Tuesday April 23, 2019 @01:27PM (#19730834)
>So what are the chances that your business is going to grow large enough that AWS or Azure can handle the requirements?

You naively assume that hosting something at AWS or Azure means all of their resources are at your disposal and subject to reasonable pricing. That is not the case. Cloud services are not designed for you. They are designed to make money for whomever actually owns them. They have their own architecture, assumptions and target use cases.

In reality, the chances that a large company will eventually hit some limitation of AWS or Azure are nearly 100%. The only question is whether it will be something that can be worked around.

One problem with "the cloud" is that a lot of the limits are no-obvious, and if your use case significantly deviates from whatever the provider had in mind, there might not be an incremental solution.

Another problem is that linear resource pricing is not always sustainable if you're experiencing exponential growth.

Re:Fighting vendor lock-in and designing testable serverless... by scarface74 on Tuesday April 23, 2019 @01:57PM (#19731115)
You naively assume that hosting something at AWS or Azure means all of their resources are at your disposal and subject to reasonable pricing

So if I’m “naively” assuming that you should be able to cite a real world case where a company needed more resources than AWS or Azure is willing to provide.

“Reasonable pricing” for any supplier that a company uses is a price where the company can pay their suppliers, do something to add value, and make a profit.

Cloud services are not designed for you. They are designed to make money for whomever actually owns them. They have their own architecture, assumptions and use cases.

Guess what? All of the suppliers you use for your business are in business to make money. And if your use case doesn’t fit within their managed services offerings, your escape hatch is to bring up a VM and install whatever you need on it.

In reality, the chances that a large company will eventually hit some limitation of AWS or Azure are nearly 100%

Where are the case studies?

The problem with "the cloud" is that a lot of the limits are no-obvious, and if your use case significantly deviates from whatever the provider had in mind, there might not be an incremental solution.

Every time I log on to AWS, and go to the support page, I see our account based limits. The non account specific limits are publicized. Which specific limits are you referring to?

As far as working around unknown limits of off the shelf managed services - that’s why companies hire programmers.

Another problem is that linear resource pricing is not always sustainable if you're experiencing exponential growth.

And if your marginal revenue is not exceeding your marginal costs, that says more about your business model than anything else.

Re:Fighting vendor lock-in and designing testable serverless... by gambler on Tuesday April 23, 2019 @03:19PM (#19731913)
>So if I’m “naively” assuming that you should be able to cite a real world case where a company needed more resources than AWS or Azure is willing to provide.

https://firstround.com/review/the-three-infrastructure-mista...

Re:Fighting vendor lock-in and designing testable serverless... by scarface74 on Tuesday April 23, 2019 @03:37PM (#19732093)
Well. I can tell you that the article is demonstrably wrong.

It makes it easy to do things like user identity. Authentication. Queueing. Email. Notifications. Seamless databases. These are all lightweight services that can save you a lot of time, but only if you’re using AWS. The magic (for Amazon) is that they deter people from migrating despite mounting costs for storage and bandwidth.

All of those lightweight services have publicly accessible endpoints that can be used in conjunction with self managed infrastructure either over the public internet, a VPN or a direct connect.

But, your contention that you quoted was that AWS/Azure “wasn’t willing to provide it”. Yet you posted an article where the cost of providing it wasn’t conducive to their business model.

Then I could always post about a little streaming service you might have heard of called Netflix that has all of its infrastructure besides its caching servers (that are colocated at ISPs) on AWS and the reason they decided to move to AWS.

https://www.se-radio.net/2014/12/episode-216-adrian-cockcrof...

But really what does it say about a company that is growing fast unprofitably? Were they profitable when they were spending $20K a month?

Re:Fighting vendor lock-in and designing testable serverless... by schnable on Tuesday April 23, 2019 @09:46AM (#19728487)
I agree somewhat, but vendor lock-in is also something often pushed by engineering and business leadership due to previous experiences of being badly burned by lock-in in the past.

For FaaS in particular, if designed and factored correctly, I think the cost to move clouds can be minimized without building multi cloud capability upfront.

Re:Fighting vendor lock-in and designing testable serverless... by JMTQp8lwXL on Tuesday April 23, 2019 @02:24PM (#19731372)
It can become a real problem if you pick a niche PaaS that say, gets bought out and closes up shop real quick. Probably wouldn't happen if you picked AWS, but I wouldn't consider this "fake work" in all contexts.

You have evaluate the probability of a risk occurring, and its impact to your business. Small-time service providers get bought out and close shop left and right.

Re:Fighting vendor lock-in and designing testable serverless... by rorykoehler on Tuesday April 23, 2019 @12:04PM (#19729907)
Drove me crazy in the past when I got pressured by CFO to look into cutting infra costs which weren't even that high and the company was facing much great technical challenges (which were pre-requisites to even thinking about optimising infra costs). Always wanting me to kick the tyres with this provider or that provider. Unbelievable waste of time and resources to try save a few grand here and there.
Re:Fighting vendor lock-in and designing testable serverless... by closeparen on Tuesday April 23, 2019 @10:15AM (#19728782)
Vendor lock-in is something the business starts to care about very deeply once the vendor is in a position to exploit it with pricing.

Think of it like a backup, only instead of a hard disk failure you are insuring against a vendor’s market power.

Re:Fighting vendor lock-in and designing testable serverless... by cryptonector on Tuesday April 23, 2019 @08:16PM (#19734359)
Managing cost is work, real work.
Re:Fighting vendor lock-in and designing testable serverless... by slothario on Tuesday April 23, 2019 @09:37AM (#19728412)
It's fake work until your web application reaches a point where server loads take your web API down, and endpoints frequently take well over 10 seconds to respond.

Yes, I worked at a place where both of those things were true.

Switching some services out to a service (in this case, Azure functions) saved my company like $10k/mo, too.

Re:Fighting vendor lock-in and designing testable serverless... by dexen on Tuesday April 23, 2019 @09:46AM (#19728489)
This is a fine point. And yet both FB and Twitter managed to go through long period of servers being overloaded and fail-prone, to the point of frequent outages - cue the Fail Whale[1] - relatively unscathed, and emerge victorious.

In the end it's about taking calculated risks, and concentrating on where your effort and capital are most effective.

Virtually nobody thinks of the Fail Whale as a real risk now a day.

[1] https://pbs.twimg.com/media/DorDnbAU4AARTc3.jpg

Re:Fighting vendor lock-in and designing testable serverless... by lugg on Tuesday April 23, 2019 @11:18AM (#19729459)
Survivorship bias.

I'd also posit that there isn't much competition at the top.