5 ms·
This sounds like an excellent guide to a perfect vendor lock-in. It's just missing the final principle: #4 Operate as if you may be bought or cloned by Amazon
by ComodoHacker 6y ago
This sounds like an excellent guide to a perfect vendor lock-in. It's just missing the final principle:
#4 Operate as if you may be bought or cloned by Amazon at any time.
- sl1ck731 6y agoUnless your entirely Kubernetes (and even then there are some sticky points), using a cloud of any kind already has you "locked in" with some of the most basic things like IAM. If you are going into a cloud you may as well reap the benefits of the premium you're paying.
- mrkurt 6y agoThat's true to varying degrees. Sure you're locked in when you use ALB, but it's not too hard to replace that with HAProxy. Same with RDS to Postgres or Fargate to just running an app on your own server. In general, if you build apps with open source runtimes, use open source dbs, and avoid the proprietary data services cloud providers really stick you to, you can move around pretty easily. And you still reap most of the benefits. The real problem with the special AWS services is you end up having to hire AWS ops people or expensive consultants to architect around them and run them for you. So it's proprietary AND eating up salaries.
- scarface74 6y agoWhat benefit do you get out of going to a cloud provider instead of a cheap VPS solution or a colo if you’re not using any of their managed services?
- mrkurt 6y agoThey have managed services that are relatively easy to replace and managed services that are entirely proprietary. Many of them map to reasonable OSS tools. ALB/RDS/Fargate and even just ec2 + vpcs are super powerful, and replacing them is a known quantity. But stuff like SQS and (to a lesser extent) Lambda is really hard to replace because it's thoroughly baked into an application architecture. As an example, we (fly.io) have a tool that'll hoist a Fargate app into our infrastructure and let you run it all over the world. We even have people tunneling back into their VPCs to access other AWS services. But that only works because we're both somewhat standard, Fargate takes a Docker image and runs it, Fly takes a Docker image and runs it, the app inside doesn't care about either of us.
- scarface74 6y agoSo now what happens when you need to migrate a massive amount of data while keeping everything online? Let’s say you want to trigger some code to run when a file gets dropped on S3. Are you going to spend Developer time trying to come up with a bespoke solution or are you just going to trigger a lambda on S3? Are you going to host your own highly available queueing and messaging system and have to run them on EC2? Sure it’s “easy” to replace your entire networking infrastructure and run it on another provider, but how many man hours is that going to take? Have you actually costed out how much a large migration would take? As far as using Lambda for an API, you can literally add three or four lines of code and use “proxy integration” to deploy your entire Node/Express, Python/Flask/Django, C#/WebAPI app on lambda and without changing any code, deploy it anywhere else as you would any other API. Here is a Node Express example. https://github.com/awslabs/aws-serverless-express https://github.com/awslabs/aws-serverless-express
- mrkurt 6y agoYeah I'm going to do all that because it's helpful to avoid AWS lock in, especially for a SaaS that wants to make any kind of margins. Companies do this all the time, and I don't think (for the most part) the proprietary AWS services add much value.
- scarface74 6y agoHow many man hours are spent trying to avoid lock in and how much would the cost delta have to be between your current cloud provider and a new provider to make a migration make sense? How many fewer employees could you have if you depended on managed services? How much time could your employees spend on creating features that could help you acquire customers or get your current customers to give you more money?
- mrkurt 6y agoI feel like you have this a little backwards. Surely AWS has done the work to show the savings from their services vs rolling your own. It's a little silly to just assume proprietary AWS services are an overall cost savings and ask for proof that it's not true. And, most of what you're talking about doesn't really affect margins for a SaaS. Every AWS service hits margins, one time migration costs and even R&D time to build products does not. The marginal cost of using AWS underneath interesting features is very high.
- acdha 6y agoIt's not skipping managed services but using the managed services which are relatively interchangeable: e.g. if you use AWS RDS Postgres or MySQL, ALBs, ECS containers, etc. you get the security and ops benefits, along with being able to use tools like Terraform to manage it, but if you ever had to switch you haven't built semantics into your application which aren't provably available elsewhere. If you build the app around e.g. Lambda and DynamoDB, in contrast, you're going to have a harder time both because you need to restructure the code but also verify that what you switched to doesn't have key differences in how things operate.
- staticassertion 6y agoLambdas are pretty easy to move away from in my experience. It's "just a function", and functions can be really easily moved into a shim for another FaaS or even dedicated instance. Dynamo is tough. At the same time, it's really really good.
- acdha 6y agoThe main thing I think you hit with Lambda is if you’re heavily calling other services. The API contract is definitely defined in a manageable fashion.
- user5994461 6y agoYou can't not use any of the AWS services. The basics of AWS are VPC, EBS, S3. Unlimited instantly-available managed storage and networking. A cheap VPS provider or a colo do not give you storage and networking. There is no cheap and no open source solutions to do any of that.
- dragonwriter 6y ago> What benefit do you get out of going to a cloud provider instead of a cheap VPS solution or a colo if you’re not using any of their managed services? It's impossible to use a cloud provider without using any of their managed services; if you are using EC2 or a similar IaaS as if it were just a basic VPS, you'd probably be better off (cost for the use) with a basic VPS, but you'd also probably be better off with Amazon LightSail, which more closely approximates a basic VPS service.
- inshadows 6y ago> if you are using EC2 or a similar IaaS as if it were just a basic VPS What more is EC2 than a virtual machine? Sure you have it tied into IAM that's tied into firewalls and whatnot, but that's doesn't make it radically different from a VPS.
- scarface74 6y agoI wonder has anyone who actually goes through all of the lengths trying to “avoid vendor lock-in” actually sat down and done a realistic project plan of how much it would cost as far as man hours and the amount of regression tests that would be required. Once you have any type of meaningful infrastructure you’re already not going to migrate without major pain between data migrations, networking, security and compliance audits, retraining, etc. And if you are only using one of the major cloud providers as a glorified colo, you have the worse of both worlds - you’re paying more for infrastructure and your TCO is no lower because you’re still babysitting infrastructure.
- lostcolony 6y agoI want to know who has actually accepted a cloud vendor's lockin...and then regretted it, had to change, and wished they'd done it up front. I have yet to meet them.
- scarface74 6y agoEven companies that have decided to start on a cloud vendor and then found product market fit, grew their in house competencies, and then decided to build out their own data centers didn’t express “regret” for starting on the cloud provider. At that point they were well capitalized enough to move off. Even almighty Amazon took a decade to move off of Oracle. Concentrating on avoiding being tied to Oracle early on instead of building a business would have been silly. Trying to avoid “vendor lock in” when you’re still trying to grow your business, when your focus should be trying to acquire customers, and raise revenue and profit is the ultimate premature optimization.
- lostcolony 6y agoThat's what I mean. I recognize it can be an issue later on, and then you deal with it...I've yet to see the case where it was worth worrying about up front, even in hindsight. I also haven't seen the reverse, the multi-cloud people who later on drop a cloud provider because of some reason, going "omg, thank goodness we didn't let ourselves be locked in to one, this saved so much time/money/effort".
- twakefield 6y agoDisclaimer: I work at Gravitational. We build an open source solution[1] to deploy autonomous Kubernetes clusters into on-prem or air-gapped environments but it's also useful for limiting cloud lock-in (even has its own "IAM" built in). Of course, you have to also limit your use of proprietary services (which definitely has its trade-offs) but might be worth poking around if you believe reducing lock-in is worth it. [1] https://github.com/gravitational/gravity https://github.com/gravitational/gravity
- underbluewaters 6y agoAvoiding lock-in leads to a least-common-denominator approach to using the cloud where you will miss out on the advantages of managed services. There can be good reasons to buy into a particular cloud vendor and there are ways to be modular at the software level without wasting cycles making it compatible with multiple clouds.
- social_quotient 6y agoWhat’s the average case that this happens? 1 in 10? 1 in 1000? 1 in 100k etc.. (Not baiting just curious) Aws passed 1mm customers (businesses in 2015-2016) If this is the case do we not likely run more risk having our landlord, best friend, VC partner, banker, vendor, first X hire... also steal our business/model and it be more likely than AWS?
- abiogenesis 6y agoI agree. Also I don't see the point for AWS to steal/clone a project unless it's some kind of AWS orchestration tool or similar.
- bg24 6y agoThat is fine as long as you can make money fast. Same applies to if you decide to go with azure, gcp, ibm cloud etc. when you grow from 1000 to 1m subscribers, what matters is if you can scale in hours or months.