How to escape lock-in with a multi-cloud stack
cloudplatform.googleblog.com
cloudplatform.googleblog.com
This article is more probably to convince ppl to use Google Cloud rather than how to run multicloud strategy.
If their "cloud" offerings were all just hosted instances of open source, there would be no lock-in, but they would have no 'competitive edge'.
I think this is more about letting Google fanboy dev's sell higher-ups on GCP because "hey look they're not trying to lock us in like AWS is!"
E.g. in the past we had OpenGL, PC which spur a lot of innovation and created whole industries. Common subset that allows seamless migrations.
E.g. I wish we have standard for big table like databases:
1. Google Cloud BigTable.
2. DynamoDB.
3. HBase/Cassandra.
Common API even in non-perfect way is so much better than everybody reinventing the wheel from scratch, because some tiny use case doesn't fit in the previous API.
BTW when people say cloud here I assume they mean PaaS and not IaaS because IaaS has many standards (openstack).
Honestly this just sounda like Google m/o (aka embrace/extend/extinguish 2.0) at everything.
Gmail sort of supports imap and smtp but in several ways it's broken, but users don't care that it's google's fault, they just want their free email.
Big table is not hbase it's just sort of compatible, but developers dont care they just want to drink the cool aid.
If Google really wanted to commit to anti-lock-in they would focus on runningc open source software that they use their infinite budget to tune to absolute best performance, combined with contributions back to those projects, to improve them where tuning alone isn't enough.
Well... to be fair here, Google did invent BigTable, then the HBase clone was created based on the public information about it.
I'm talking about Google's "support" for the HBase API in their BigTable service for GCP.
Yes. For public cloud, it's AWS v. everyone else right now. This is why Docker is popular among IT mega-vendors because container portability gives IBM/Microsoft Azure/GCP/Red Hat a fighting chance to stop AWS from gobbling up the entire cloud infrastructure.
Container portability => less AWS lock-in => They'll come to my platform, perchance.
Some relevant articles: http://redmonk.com/jgovernor/2016/07/15/what-kubernetes-and-... and http://redmonk.com/jgovernor/2016/03/08/rise-of-the-docker-p...
Also sadly (and maybe I'm taking this wrong) but calling the holy land 'Google Infrastructure For Everyone Else' seems condescending ...
While Firebase is proprietary, you can export your database as JSON and import into RethinkDB.
I don't see how one product being closed has any impact on the openness or portability of the products mentioned in this article. It seems unreasonable, to me, to criticize them for omitting an exhaustive list of closed products in a blog post about portable platforms.
Though honestly you should never write your app directly against a database schema. ORM or FRM (functional relationship mapping) is how it should be done.
Standard SQL databases you can use pretty much the same tooling as if you were running it yourself. Cloud storage, you can download/upload to a new thing, but it may take some time and cost some bandwidth. BigQuery/Redshift you should be storing your data as .json.gz on S3/GCS as a backup anyway, so an export shouldn't be needed -- you'd just import the cloud storage data into another system.
I did a smallish BigTable dump a couple months ago -- kinda a PITA to do -- I don't recommend it; maybe I was doing it wrong, I'm not that familiar with hbase and it was a one-off thing.
I also did a rather small scale data migration out of app engine (~100GB) awhile back -- total PITA -- datastore dumps are protobuf, so you need to build special tooling to import the data into another database.
And generally, I don't use the other services to avoid lock-in. DNS round-robin+nginx for load balancing and ssl termination, Saltstack/Ansible deploying to Ubuntu VMs for config management and deployment. I run the databases myself so I can run it on any cloud I want -- or localhost; having a full dev environment you can create and destroy on your own machine using the same tools that you deploy to is really nice. This also enables doing things like running dev workloads on cheaper clouds (Linode) while running production in a VPC on AWS.
BigTable is compatible with Apache HBase API, so it's trivial to swap out. https://cloud.google.com/bigtable/docs/bigtable-and-hbase
Even BigQuery now has a standard SQL interface, although it's still Beta: https://cloud.google.com/bigquery/sql-reference/
Working at Google Cloud myself, I find the company philosophy to be to provide standard interfaces to superior implementations. This keeps us honest, because if the door to leave is open, then you have to actually want to stay. (Standard disclaimer: my opinion, not the company's.)
I guess they see it as a competitor to Kubernetes. Or, plausibly, Google is very large and the engineers who are working on Cloud Foundry integration with GCP are not known to Miles Ward, Head of Global Solutions.
I work for Pivotal, we donate the majority of engineering to Cloud Foundry. We make our money selling a distribution, Pivotal CF.
Cloud Foundry's ability to switch cloud providers, or to take a cloud inhouse, and in future to do so seamlessly, is very attractive to our customers. IaaS providers remind them the bad old days of RDBMS and middleware lockin and they do not want to go back.
As for the services, it's good that Google are pointing to open alternatives.
Other examples are GFS, Colossus, Spanner and F1. The OSS analogue of GFS is HDFS (AFAIK), but I know of nothing equivalent to the others. (CockroachDB is a bit like Spanner, but is much more pragmatic about its clocks.)
False. Lock-in is a business risk, and anyone who thinks it isn't is kidding themselves.
If you are dependent on a single vendor for a non-standardised service, you are also at risk if the vendor goes out of business, if the vendor decides to raise prices significantly, if the vendor decides to discontinue that service, or even if the vendor decides to change the mode of operation for that service.
You are also beholden to that vendor's internal procedures, and tech decisions, which aren't always in your best interests. You may remember last September when there was a fucking massive AWS outage, where customers couldn't access the console, EC2 instances wouldn't spin up, etc. The fault for all of that, was a network disruption which caused DynamoDB to flip it's shit and make "the worlds biggest cloud provider" into the worlds biggest brick shitting machine.
They've probably made changes so that type of error is less likely in future, but that doesn't matter because you don't get to make that decision if you're a single vendor customer on AWS. Whatever choices they make, they make for you.
> hiding costs in IT salaries for operations
Here's a pro-tip for you: use of AWS/Azure/Google Cloud/etc doesn't absolve you of the need for operations staff. If you think your single nodejs developer is equally skilled and has enough time to setup and maintain your infrastructure just because it's dynamic and has a browser interface, I have a great investment offer for you, in magic beans futures.
There are still organizations messing around with overly complex internal server systems because they have bad admins or are heavy in technical debt, but these are no longer the rule.
For most clients I work with (who often have this "oh but shouldn't we use AWS, they're the best right?" attitude) even a few rented VPS (i.e. on shared hardware) is sufficient.
I'm a big fan of the way some providers like Rimu allow more control, which helps with scaling up - by default most customers just use one or more Xen VM's on shared physical hosts, but you have the option to rent dedicated hardware (either existing stock, or custom orders), and then you can run one or more VMs - without noisy neighbour concerns.
The "single vm on a host" seems weird to most people at first, until you realise that it allows you to migrate the VM between physical hosts.
Sure, the new hotness is servers-as-cattle and we should just provision a new instance, but that doesn't always work for smaller outfits.
I could use AWS or Google, but if I'm just keeping a toy cloud service going. I'm not particularly worried about reliability, and I don't want to spend $30+/month.
When a VPS has problems don't waste time to open a ticket to their support. They were never able to fix anything on my VPSes the 2 or 3 times I had problems since I started using them in December 2010.
Try to reboot the VPS from the web manager. If that doesn't fix the problem create another VPS immediately and let the original one expire at the end of the period you paid for. I suggest to pay per month and to have an automated installation script. Make backups for the data and make sure they can be transferred to the new VPS.
OVH has other offerings such has cloud and private cloud services. I never used them so the support there could be better.
The good news is that at scale, the days of compute, storage, and data management becoming easy to use utilities to plug into are here, or near. The bad news is it still feels a bit too 'big' to plug small lamps into the main AWS or Cloud Platform grids, but I suspect those days are numbered as well.
[1]: https://calculator.s3.amazonaws.com/index.html [2]: https://cloud.google.com/products/calculator/
(Disclaimer: I’m a Google employee, dealing with Cloud, loving all options, but especially being able to have options.)
- €5.99/Month (4 x86 64bit Cores; 4GB Memory; 100GB SSD Disk ;1 Flexible public IPv4 )
For Google Cloud, a compute engine f1-micro instance is only $4.09/month. Standing it up for only 24 hours is $0.19.
As well, both Amazon and Google have budgets you can set on your account that can notify you if you go over some thresholds you setup. This can help prevent you from spending too much money.
Their actions speak louder than their PR blogs.
Edit: spelling
http://google-opensource.blogspot.com.au/2015/03/farewell-to...
I'm not really sure why you think that's relevant to this. Google Code simply failed to compete with the alternatives and was obsoleted. It has nothing to do with lock-in.