Spotify moves its back end to Google Cloud
news.spotify.com
news.spotify.com
My business is a heavy GC user (AppEngine, Datastore, CloudStorage, BQ, ComputeEngine, ManagedVM) and I couldn't imagine achieving what we have achieved in such a short amount of time on any other platform.
We (myself and another guy) started at zero and shipped our product in 3 months on what is effectively an infinitely auto-scalable platform where we don't have to do any devops or carry a pager. I'd much rather work on features than chores. =) 4 months later and we've had profitable growth and zero downtime (knock on wood) and we're hiring.
Thanks Google!
I would love to be proven wrong really, because I often look at their GC offering, and I /really/ want to dive in, yet I feel that I would risk having to migrate quickly in 2 weeks at some point because they are changing things significantly (either shutting down or other major change).
So to my question: for how long have these services been around in a fashion that is stable (feature-wise, quality-wise etc)? Is there anyone here with a longer history of using Google Cloud offering, able to comment on this?
EDIT: thanks to everyone who replied below. I think I'll give it a try :-)
Disclaimer: I work on Compute Engine, but I'm not a lawyer ;).
"Google may make changes to this Agreement, including pricing (and any linked documents) from time to time. Unless otherwise noted by Google, material changes to the Agreement will become effective 30 days after they are posted, except if the changes apply to new functionality in which case they will be effective immediately. If Customer does not agree to the revised Agreement, please stop using the Services." https://cloud.google.com/terms/, Section 1.7b
Also, Sections 13.1-13.3 means even though Google promises nt to do something, you really don't have any recourse if they do it anyway and cause you damage.
Although in the grand scheme of things, not the worst terms of service document I have read. The mere fact the drafters addressed the issue is worth ... something.
Disclaimer: IAMALBIANYL.
I like that one. :)
I have a question though, is the prevalence of taglines in any way related to legal requirements? Do you have to stipulate that you aren't a lawyer when stating things because otherwise people to construe it as legal advice, or is it just a fun little identifier of how valid we should consider information to be (like it is in other acronyms of the same type)?
If I have the same policy (support for 1 year) and I change the contract - the change will only take actual effect after 1 year.
I mean, I'm contractually bound today to provide support for 1 year from today, no? Am I just rambling, or does it make sense?
Express has, IME, excellent support, and I haven't seen any Google product (consumer or otherwise) shutdown "all of a sudden".
The ones people point to as examples of Google products being shut down were shut down with very long notice.
I do think that there is a very loud group of people who like to raise the "Google's just gonna shut it down tomorrow" line every time a Google service is mentioned, but it doesn't seem to be based on any real history of Google being any more prone than any other provider to shut down services (consumer or otherwise) on short notice or without a migration path. Maybe that loud group represents a real and commercially-significant feeling about Google in the market and not just a small, loud group that doesn't real effect the market for Google products. But I don't know what you can really do with that, even if it does.
I mean, when people think of AWS services, do "service and stability" really come to mind? IME it's impossible to reach a person unless you're a multi-million-dollar org, and Amazon itself tells customers that AWS services can go down at any time and it's up to the customer to architect the application to deal with it.
If I had to peg a reason AWS gets treated differently in the marketplace, I think it's probably some combination of a) AWS was first to market, and b) AWS revenue seems materially important to Amazon, while Google Compute revenue is a rounding error to Alphabet. Therefore, Amazon has a lot more incentive to keep, maintain, and grow AWS.
I am sorry to hear that, but I can assure you it's not the case. I'm an engineer on a newer (and therefore smaller) AWS service, and I help investigate customer complaints, from customers of all sizes, all the time. I'll also note that not only do we handle cases that come in via our paid support, we also do deep dives for customers who post to our service's forums and indicate issues.
It makes sense that isn't true but I have to admit it is what comes to mind.
[0] http://googleappengine.blogspot.com/2012/04/masterslave-data...
Really made me regret going with app engine a few years ago.
cloud.google.com/appengine/docs/
and let me know what you think? This is an iterative effort of course, so more changes to come. Thanks again!
If anybody has a special deal, it's probably Netflix. I suspect even half a million monthly is a smaller account to Amazon.
[0]: https://aws.amazon.com/ec2/sla/historical/ specifically, not the current (better) one
If you plan to offer multi-lingual content, anticipate having viewers in that part of the world, and your content isn't something they would be interested in blocking, it's just a practicality worth factoring in.
Another reason is that I find the GC console a mess. I had to simultaneously use two versions of the console to get different tasks done; they didn't have one console that had all features of the system. Heroku was a lot cleaner and easier to navigate in this respect.
My company is running mostly on Google Cloud and I had just returned from a trip in China where I've verified it.
You can of course run in the AWS Beijing region which requires you to have a Chinese business presence with a ICP license.
It'll be interesting to see what happens now that Google is expanding its presence in China [1]. I ran into some Googlers on the Maps team while in Shanghai - not likely a coincidence.
My pet peeve with cloud services and their web-based admin GUIs is that you have to use the GUI or the APIs to do anything. You can't capture the current configuration and then replay it if anything is misconfigured. You can't save or restore the config. You can't diff the config across versions. Most SaaSes don't even have audit logs, or if they do, they're too minimalistic to provide the ability to get a lot of detail or roll back anything.
My wish list item is a kind of "Puppet for GCE". I write my manifest, push them to the cloud, and stuff happens. If something isn't mentioned in my manifest, it gets deleted. Truthfully, I don't want to use a web GUI at all.
At the very least there should be a way to do an inventory of an account. Recently I needed to take over an older AWS account, and I wanted to find out what was in it — instances, load balancers, buckets, and so on. It's virtually impossible to do this with the management console since the ontology of possibly configurable objects is so huge and complicated, and pretty much everything has a computer-generated hash instead of a human name, so I was surprised when I couldn't find anything.
https://godoc.org/google.golang.org/api/compute/v1#Instance(I work at Google but not on Deployment Manager)
I published a very critical release to my Android app few weeks back and realized that it was not getting published at all. It took me a month to get the problem resolved.
I don't want to buy a cloud service where the support might be nothing more than bunch of "Help yourself" pages.
We've been very pleasantly surprised. The cloud team has been pretty awesome to work with, including lots of engineer<->engineer contact, walk-throughs of systems and code for critical dependencies, and solid support and collaboration. Exceeded our expectations.
I'd echo the sentiment here: my experience of the paid support for GCP has been universally excellent across Compute Engine, App Engine, BigQuery and Cloud Storage. This is across 30ish tickets, some of them quite complex.
The support personnel (and engineering!) also do best effort scanning of Stack Overflow, Server Fault, and per-product mailing lists. You can get links to those here: https://cloud.google.com/support/#community.
Disclaimer: I work on Compute Engine, but not in Support (though I do jump in and support customers!)
Edit: (posted too soon) my main concerns with putting anything on GC are around support, continued support / long-term commitment to the platform, ease of switching (App Engine was a very bad on boarding experience for me when I tried it a few years ago and required lots of GCE-specific ways of doing things in the code), and pricing differences that might make it cost way more in subtle ways to run a thing on GC.
I think it'd be good for Google to start fixing their story around support and commitment to products with everything else under the Google brand before people will be wanting to risk their infrastructure with that brand.
Like I mentioned above, we do have active communities on Stack Overflow, per-product mailing lists (in this case https://groups.google.com/forum/#!forum/gce-discussion) and Server Fault.
That’s... an interesting business model.
https://aws.amazon.com/premiumsupport/compare-plans/
which has similar tiers of support.
It sounds like you're avoiding the generic Google in the same way you'd not buy something from Amazon vs. using AWS.
http://googlecloudplatform.blogspot.com/2016/01/Happy-New-Ye...
that's a massive lead (and it's sadly not commonly known). So I agree with you, we need to do better in the perception war, but Compute Engine is hands down the leader in cloud pricing.
Disclosure: I work on Compute Engine (and care a lot about our prices).
I just try to forget they are up there. I got to one person at Google, and when they realized I didn't want to advertise, it was "Go to the help boards. I don't deal with that stuff."
Do I still use their products--yes, but don't trust them like I used to. I usually avoid customer service like the flu virus, but thought Google would be different?
I guess they are big enough to not care?
There is a big difference between paying for one of the support offerings, versus being a free user. The status of free users is approximately: free access to the product but no support. If you want customer service then you need to open your wallet.
It's important to separate "I think the support was bad", which would be very interesting to a lot of people who work here, from "I didn't pay for the product so I didn't receive it". Did you pay for support?
You never know what you don't measure and test
Load balancers: Scale to millions of users seamlessly. No warming up, no tickets, ...
PubSub: You can send the whole Internet 10 times in a day through it. Google does that every day
Big Query: Its equivalent to spinning up a 100+ node cluster in a matter of seconds and it can process data at speeds of GB's of data per sec, I heard couple of use cases where the user was able to process at ~ 50 GB/s
Kubernetes: 1000's of nodes running 100's of thousands of containers.
Can't beat that!
Funny you should mention that. :) I work at Google on PerfKit Benchmarker (https://github.com/GoogleCloudPlatform/PerfKitBenchmarker). Not only can you measure and test GCP (and other clouds), but we're trying to make it very easy for you to do so!
(PKB doesn't have a benchmark for App Engine yet, though. Sorry.)
If we're down there is plenty of other alerting to notify us (mostly through Slack). That said, there isn't much we can do other than wait for Google to fix it.
It is part of the trade off that we have to consider, I'm paying Google for devops instead of paying a team to do it for me. If you've ever had to hire a 24/7 support/devops staff, it is a much easier hiring proposition to just rely on Google to do that for us.
If it's truly prohibitive for a single person to live in SF for $50K per year then we should be really concerned about the families that earn $50K from two minimum wage jobs, and need to support 1 to 2 children on top of it.
I have tried it last summer and was quite disappointed. CPU-bound programs that completed in a few seconds on my own computer took about ten times as long on AppEngine despite similar nominal specs (GHz and RAM).
Disclaimer: I work on Compute Engine.
Not without risk of giving an argument from authority, your sources are inaccurate. As late as November of last year Snapchat was on stage talking about their broad AppEngine use. (I work on Google Cloud).
https://cloud.google.com/appengine/docs/python/modules/#Pyth...
https://cloud.google.com/appengine/articles/deadlineexceeded...
(I work at Google, but not on App Engine)
https://cloud.google.com/appengine/docs/java/modules/#Java_I...
If you run multiple modules at once (some serving the frontend, some for longer tasks w/task queues), you can have the best of both worlds and use different scaling options for each.
(I also work at Google, but also not on App Engine)
Google does give an additional level of comfort - seamless scaling, No-Ops, powerful Big Data tools, flexibility.
I'm going to shamelessly promote one of my opinions on this topic when it comes to BigQuery:
https://cloud.google.com/blog/big-data/2016/02/visualizing-t...
I'm going to bookmark this comment and come back to it when Google decides its getting out of the "cloud" compute business.
Why do you think they will do so?
http://www.nytimes.com/2015/11/20/technology/google-picks-di...
and Sundar (CEO) and Ruth (CFO) mentioned Cloud a lot on Alphabet's most recent earnings call. I'm not disagreeing that AWS is massively important to Amazon, but to say that Google (and Alphabet) aren't serious about Cloud is incorrect.
Edit: It seems to be on purpose, with the use of noscript tags.
I can access most of the sites I routinely visit without JS. E.g. The New York Times works better w/o JS because it doesn't block articles or count how many I've read.
And I don't really care if you you will or will not try to hack me if I visit your site with JS on. There are countless other sites who will try exactly that, so why shouldn't my default be "NO"? And if it's not the sites themselves, it's the shitty ad networks they all use; I don't trust those at all.
IMO it's the epitome of hipster arrogance to display nothing useful to people w/o JS.
What is the word for people who use the internet in some purposely crippled fashion, just so that they can complain about things not working for them? =)
Look at the names themselves CloudStorage Vs Redshift/s3, ComputeEngine Vs EC2. Cookies vs. Oreo.
AWS service names are a brand in themselves while Google service names are too generic.
Angel might be a bit more of a description. https://angel.co/gearlaunch
Anything more, feel free to contact me privately. =)
We are not stealth, but we also aren't the type of company that goes around pushing ourselves down people's throats. The people who are primarily interested in our product know about us through other channels.
That said, we are building the website out more really more from a hiring perspective. It is hard to hire people when all they get is a logo on a homepage. For now, just know that we are a startup that is actually profitable, building a great product that people want and we're growing like mad.
:puzzled:
I just like to see what other people can achieve in 3 months of time, it's kind of a motivation for me :)
AWS' core product is AWS. They do a damn fine job of providing this.
GC's core is "who knows what" - they do a damn poor job of even making an offering if switch thousands and thousands of servers to - let alone thousands and thousands of man hours.
Ironically, Google has massive domain knowledge of how to run infra... Yet clueless how to adopt and support and foster companies other than google.
It sucks.
But I've been in the business of fork lifting many people to aws, for all the reasons you'd expect:
Find me a single ops eng on the market who has done scale in GC? Nope.
EDIT: may I please have a rebuttal?
Every user of appengine, for a start. You need to code to their datastore, but apart from that scaling is practically infinite - and completely invisible. We don't need to configure, provision or even * understand * load balancers or geographically redundant servers.
Concrete examples? The royal wedding website was served from appengine a few years back; I imagine you'd be impressed with how that scaled from nothing to phenomenal traffic loads and back again. And Khan Academy, Snapchat, and now Spotify ought to meet your definition of "done scale".
I also want to understand the cost doffs as a Well.
I was at AWS for 6 years (left 2 years ago... today!), and I've always been a proponent of being more open and communicative with developers, but it rarely happened - I guess that AWS' PR policy and such are a big showstopper for these kind of discussions. Although, some individuals did their best (e.g. Jeff Barr) to try to share as much as possible.
It seems that the Google guys know how to do it.
Keep doing it. It will help your business a lot.
Is there a particular ticket (or tickets) you ran into trouble with? I can try to follow up.
It looks like the App Engine documentation was finally fixed. It used to say "If you do not specify a class, F1 is assigned by default." as recently as a few months ago. For a long time the default was actually F1. Then one day my costs went up unexpectedly. The default instance class had changed without notice (at least none that I ever saw). I didn't know that's what had changed though and I emailed billing support just asking what happened. Canned reply email after canned reply email with requests for tons of information they already have (including information I typed into the original support request form). They also had me take screenshots of my console (can they really not look up my information?). And sending me the canned emails takes a week for some reason.
I should probably point out this was billing support. I'm not sure if that's a different department or what but I'm pretty sure they have no idea what they are doing over there (or, at best, just don't have the time or interest to help smaller paying customers).
That said, this falls into that category of things where I can tell you "I'll follow up with the teams involved" but it's unlikely I'll be able to say more than that (unless any result makes it into a public blog post or something).
I will do what I can, though.
I am free to comment on posts about GCP here on HN. If there are workarounds, I can post them. If it's a bug I can comment as such and file it internally. I can express opinions as long as they're clearly marked as my own. I didn't have to take any training or end up on a whitelist; Google expressed their faith in my good judgement when they hired me. If nothing else, it was a morale boost to feel trusted to act responsibly.
At the other end of the spectrum, GCP has started building out in terms of large-scale engagement. Cloud has been a big part of Google I/O; now there's GCP NEXT as a Cloud-specific user conference: https://cloudplatformonline.com/NEXT2016.html. Building more in this space seems easier to me than a cultural change which encourages (rather than prohibits) customer and community engagement on the individual level, but perhaps I'm being naïve.
[0]: I currently work at Google on Compute Engine; I formerly worked at Amazon, although not on AWS.
I used to work at AWS and the things we could say were very controlled. It could just be my team/managers though.
So for now I'm on AWS, using Postgres on RDS and deploying containers with ECS. ECS is a lot simpler than Kubernetes, but since my apps are pretty simple (a half dozen task definitions), it's not a big deal. I really hope Google adds Postgres to Cloud SQL at some point.
And, you can also run Kubernetes on AWS - we have a group focused on making sure it's an excellent experience.
I work for Google Cloud Platform; ping me if you'd like more help with either option.
[1] https://www.elephantsql.com/blog/2014-11-17-google-compute-e... [2] https://aiven.io/ [3] https://cloud.google.com/launcher/solution/public-edb-ppas/e...
I did check out ElephantSQL but my pricing needs are somewhere between their $100 and $20 plans and there seems to be a lack of configurability compared to RDS's parameter groups (e.g. enabling extensions).
> you can also run Kubernetes on AWS
I've had success turning up Kubernetes clusters on AWS for demo purposes, but I really don't want to manage a k8s cluster myself (anecdotes I've read about etcd failures / partitions especially scare me). Also I use Terraform for provisioning, and kube-up.sh is not something that fits into that paradigm. I've also made the mistake running kube-up.sh with the wrong arguments after a previous invocation that had created a cluster, which caused it to try and create a new cluster, which wiped the local cache of the previous cluster I had made, making kube-down.sh unable to automatically clean up the old cluster (so I had to do it manually in the AWS console).
The other thing I tried was the kube-aws CoreOS tool, which is nice, but it comes baked with a 90-day expiration due to TLS certificate expiration, so I'd have to set up some sort of PKI process to make that production-ready. All in all just too much work for a single person trying to deploy a small number of containers for small to medium sized projects; if I was a medium-sized company with hundreds of containers and some dedicated DevOps resources maybe it would be worth it, but for myself I'd prefer a turn-key solution like ECS or GKE.
Disclosure: I work on GKE and Kubernetes at Google
The current Postgres offerings are not great. ElephantSQL is extremely expensive compared to their offering: 4 cores, 15GB RAM, 1TB data for $1,000/mo. CloudSQL (2nd gen) with the exact same specs would be $370/mo. Aiven doesn't advertise exact prices until you sign up, so I can't compare, but I see that the number of instances (max 3 nodes) is very small, so not really an option.
I've resorted to running my own MySQL instance inside of Google Compute Engine and setting up replication and off-site backups myself. It's definitely not as convenient as Amazon RDS, but the rest of Google Cloud has some great features like Google Container Engine.
Would love to see an RDS-like solution from Google that runs in a project's private network and supports more than just MySQL.
http://googlecloudplatform.blogspot.co.nz/2015/12/the-next-g...
With RDS one can create a postgres/mysql instance that shares the same internal subnet thus negating need to open it up to external IPs, something I had to do after much deliberation because whitelist individual instance IP is just too much pain.
[edit: I looked at the link, and created a test instance to make sure I wasn't missing on a config setting, still unable to use private network to communicate with Cloud SQL AFAIK]
(Many of the other features of VPC, such as a worldwide network rather than a regional one, were built in from day 1.)
> The differences between AWS networking and Google Cloud networking are significant. This due to the nature of how these services were designed. Google Cloud Platform treats networking as something that spans all services, not just compute services. It is based on Google’s Andromeda software-defined networking architecture, which allows for creating networking elements at any level with software. As a result, Cloud Platform can create a network that fits Google's needs exactly—for example, create secure firewalls for virtual machines in Google Compute Engine, allow for fast connections between database nodes in Cloud Bigtable, or deliver query results quickly in BigQuery.
> To create an instance in Google Compute Engine, you need a network. In Google Cloud Platform, we create a default network for you automatically, and you can create more as needed. Unlike AWS, there is no choice of a public network like Elastic Compute Cloud-Classic. In all cases, you create a private network, much like Elastic Compute Cloud-VPC. Unlike Elastic Compute Cloud-VPC, Google Networking does not have sub-networking, but it does have firewall rules, routing, and VPN. These prerequisites are not necessarily required for all Google Cloud Platform services. Google BigQuery, for example, does not require a network because it is a managed service.
> Most of the networking entities in Google Cloud Platform, such as load balancers, firewall rules and routing tables, have global scope. More importantly, networks themselves have a global scope. This means that you can create a single private IP space that is global, without having to connect multiple private networks, with the operational overhead of having to manage those spaces separately. Due to this single, global network, all of your instances are addressable within your network by both IP address and name.
> Another major difference between Google Cloud Platform networking and Elastic Compute Cloud-VPC is the concept of Live Migration. Under normal circumstances, all hardware in any data center—including Google—will eventually need either maintenance or replacement. There are also unforeseen circumstances that can happen to hardware that can cause it to fail in any number of ways. When these events happen at Google, Cloud Platform has the ability to transparently move virtual machines from affected hardware to hardware that is working normally. This is done without any interaction from the customer.
From: https://cloud.google.com/docs/google-cloud-platform-for-aws-...
I too hope so.
In general I wouldn't want to run a relational database in Docker, especially not as some sort of generic cluster of containers; I'd want to give it its own VM with Postgres configuration settings specific to its resources (e.g. using pgtune).
Big Data is the core strength of Google Cloud. Good to see this move by Spotify!
> What really tipped the scales towards Google for us, however, has been our experience with Google’s data platform and tools. Good infrastructure isn’t just about keeping things up and running, it’s about making all of our teams more efficient and more effective, and Google’s data stack does that for us in spades.
What I really really liked about Google Cloud is the ease of use. Spin up a VM, start Cloud shell, SSH into your instance, install a bunch of software and you will know what I mean. It's "Quality" Cloud.
Additional things we liked: - gcs is way more responsive than S3. also, was fairly painless to migrate our S3 buckets to GCS via the web console. - peering with cloudflare lets us save on bandwidth costs! - network load balancer has shown itself to be very reliable and solid for holding open A LOT sustained websocket connections. - http load balancer has shown itself to be very capable of ssl termination & routing (love that we can route /api to our API servers, and the rest to our static servers). additionally, no pre-warming was required. when we did the datacenter switch, it was just 5 mins of downtime. didn't have to worry about pre-warming for our production load like we would have on ELB.
Things we didn't like: - salt-cloud's driver for GCE is still lacking. Can't specify disk size for provisioned storage. Can't specify local SSD storage either. Also parallel provisioning didn't work. Something about PyCrypto not liking the way it forked. Not GCE's fault - billing support non-existent unless you purchase a support plan. - documentation still needs some work.
Disclaimer: I work in Cloud Support.
Getting shared-storage and indepedently operated/scaled compute clusters on top of that storage isn't easily achievable with the standard Hadoop stack, and building that on top of HDFS is non-trivial.
[0]http://www.csc.kth.se/~gkreitz/spotify-p2p10/spotify-p2p10.p...
If so this is perhaps a dated phenomenon. Moore's Law is still a thing and today's generation of mobile devices are getting fatter and fatter.
[1] https://code.google.com/p/google-compute-engine/issues/detai... [2] https://code.google.com/p/google-compute-engine/issues/detai... [3] https://code.google.com/p/google-compute-engine/issues/detai... [4] https://code.google.com/p/google-compute-engine/issues/list
We use Google Cloud {Storage, BigTable, Container Engine, BigQuery, Monitoring, DNS, Compute} and may be some services I'm missing. I'd be happy to answer any questions.
https://cloudplatformonline.com/NEXT2016-schedule.html
You'll be able to livestream the sessions here:
https://cloudplatformonline.com/NEXT2016-Live.html
Disclosure: I work on Compute Engine (and I'll be at Next).
Most people don't need the future yet. Really people are just trying to get out of the business of managing and scaling their hardware with as little work as possible. Containerization is much farther down the line.
So I posit the future GCE customers are not people "moving to the cloud" like AWS, but rather people "moving to the small, contained, service" -- indeed, it's current AWS customers.
Disclaimer: I'm the lead for the App Engine product team.
I'm a Product Manager on App Engine and wanted to reach out and say that 100% we are invested in app engine and are working to make it your favorite platform. For example, we heard that GAE documentation needs enhancements and we've kicked off a large project to do just this. It's an ongoing effort as you can imagine, but please take a look at the new landing page and managed VM content as well as the left-hand nav reorg we did. Here is the link. More to come of course.
https://cloud.google.com/appengine/docs
Please give the new set of docs a try and please give us feedback when you see errors or generally when the content is not up to par with what you expect. There is a feedback tool on the top right hand side of every page.
Thank you! Amir
As of 2016, AWS is the better bet.
GCP is now offering an increasingly larger percentage of what App Engine used to offer, so really the future may look a lot more like just build your apps on GCE + PubSub + Cloud Datastore and don't even mess with App Engine at all.
Disclaimer: Google Cloud Pub/Sub engineer here.
I have to wonder if Spotify is doing this so that they can (eventually) use Google's deep learning technology in improving their recommendation engine. They purchased Echo Nest in 2014 to achieve this.
When I tried to port some of our platform to AppEngine I had some issues with various Java libraries (writing tmp files, opening sockets, etc). Once I sort of got past that and used some of Googles own APIs (which is sort of annoying that I had to couple my stuff) I had timeout issues. See we have to integrate with all these enterprise third parties (SOAP/REST) and these guys can be really slow. We also couldn't use our own pub/sub (AMQP/RabbitMQ) so that was going to have to be ported as well.
Things must have changed because its hard for me to imagine Spotify being able to get all their needs met on a rather coupling platform.
* How does one write code for Google Cloud while being agnostic of Google Cloud?
* Maybe appengine supports AMQP?
* Or maybe the container engine fixes these problems? (ie need something more custom run it in a docker image).
Our current platform runs on Rackspace and Digital Ocean. These guys are IaaS so your basically doing DevOps which is a pain... but Rackspace does have kick ass customer service.
The Google Cloud Platform services they are identified as using are: Cloud Storage, Compute Engine, Cloud Datastore, Cloud Bigtable, Direct Peering, Cloud VPN, Cloud Router, Cloud Pub/Sub, Cloud Dataflow, BigQuery, and Cloud Dataproc.
So, its not surprising that they might be doing something that Google AppEngine doesn't support particularly well.
[0] http://googlecloudplatform.blogspot.com/2016/02/Spotify-choo...
I don't really call big data processing "backend" but rather the microservices the backend. Its not clear to me if those are going to be ported over or if they are already.
Does spotify plan on porting everything over or just the heavy computing? A detailed techy case study I hope will follow soon as I am interested (the DevOps pain is very real).
I don't know why you would guess that: the Google announcement indicates that the migration has both a "services" track and a "data" track. And Spotify's announcement certainly seems to indicate that they are moving off of their own datacenters, onto Google Cloud Platform, and not in a limited way.
If you're looking for "just run my app" but with a bit more customization / flexibility than App Engine (like running your own RabbitMQ) then yes, Container Engine (https://cloud.google.com/container-engine) is our hosted Kubernetes offering. You don't need to manage with the VMs yourself, just choose a cluster size and go.
Disclaimer: I work on Compute Engine, not really App Engine or Container Engine (but I'm familiar with them all).
Makes me curious about how good Google's recommendation engine is.
Even when Spotify wasn't repeating individual songs, it repeated artists a good deal. This was over a period of six months until I got frustrated and switched to Google Play Music (what a clumsy name this is, though!).
With Google Play Music (GPM?), it throws a lot of different things at me in their generated playlists. I've had great success with the "I'm feeling lucky Radio", as well. I don't want to stop and think about what to listen to during a work day, so it's valuable to me to be able to start it in the morning and just listen in.
edit: This also seemingly posted from a shelf account. Front page on HN, account 530+ days old, 0 comments, 0 posts.
Reads like an acquisition. I am not sure what to make of this as it could be a total coincidence that after a year and a half dmichel was really interested in spotify's backend migration, but either way I wouldn't be surprised if google is going to purchase or bid for it.
Maybe spotify moved unilaterally and is trying to position itself, could be a thouyght as well.
Later: Silent, gradual move away from Google Cloud after experiencing a number of issues and bugs, constant connectivity issues with services like Cloud Storage, silent failures that do not return error messages on a random basis, detailed billing info only available through arcane APIs and not the administrative UI, broken functionality and rigid inflexibility of BigQuery, and other non-obvious negative behaviors
Luigi has had BigQuery support for some time: https://github.com/spotify/luigi/pull/1002
Spotify will be talking more about the specifics of their data pipelines at GCP Next in SF in March, - I would expect to see a lot more on the new Google Cloud Big Data blog at https://cloud.google.com/blog/big-data/ too.
[Disclosure, GCP guy, etc]
With over 20K jobs/day, Hadoop will be a part of Spotify's data processing stack for quite a while. BigQuery is just a (awesome) piece of the full puzzle.
[spotifier]
I'm a Product Manager on App Engine and I truly apologize for the trouble you went through when you tried the platform. We have kicked off a large initiative to update and enhance our docs, and we just recently launched our new App Engine docs, an ongoing project of course. You can check them out here:
https://cloud.google.com/appengine/docs
Please give the new set of docs a try and please give us feedback when you see errors or generally when the content is not up to par with what you expect. There is a tool on the top right hand side of every page that explains this.
Thank you! Amir
/rant
Does anyone have a link to that compares google cloud vs aws on a per price + per service basis ?
We also have a handy guide for AWS professionals who are looking at Google's cloud: https://cloud.google.com/docs/google-cloud-platform-for-aws-...
[Disclosure, I work for GCP, but I love all TLAs equally]
But GCP also has a pretty nice pricing calculator: https://cloud.google.com/pricing/tco/
Cheers,
Spotify is better off in most ways (their desktop app still sucks, but the web UI is better).
I'm talking about pay-as-you-go compute functions with Lambda (I'm aware that GC Functions are on the way, Lambda has been out for more than a year already), managed Postgres with RDS, and managed task queues with SQS. But GCP's console UX is killer compared to AWS, and using BigQuery feels too good to be true compared to how difficult it is to accomplish the same thing with Hadoop/Spark.
The precedent for Spotify was switching from Cloudera to Hortonworks a couple of years ago. Rumours are that they got their licenses for close to nothing from Hortonworks, they were so desparate to close them. Same rumours going around vis-a-vi GCE...
Disclaimer: Cloudera emp here.
Or how it compares to Netflix, which runs on AWS?
They've compounded mistake upon "Oooshiny lets use that"
here is a post where someone dissects spotify's infrastructure bit by bit: http://www.secretbatcave.co.uk/software/docker-and-you/
This isn't an anti google compute, its got some really great features. But, spotify's backend infrastructure ain't one
Yes, I appreciate that that post is from a while ago, and they might have completely paid back that massive technical debt/innovation token debt.
How we do things is quite different now. Check out my DockerCon 2014 presentation or our tech blog for details.
We've got our warts and a pile of tech debt, and I wouldn't want anyone to think otherwise. Containers are a part of a long-term strategy to get away from puppet and onto more idempotent units of deployment, and move a lot of what is considered to be "configuration" back into the build process where it belongs.
Spotify has much bigger risks in their licensing deals.
They've shut down more popular services that people depend on than Google Cloud. They tend to enter a market, undercut all the competitors, and then once they are dominant in the niche they terminate or change the service in a way that makes it not fulfill the original promise.
Jokes aside, probably you are thinking about free products like Google Reader, because this:
> once they are dominant in the niche they terminate or change the service
would not make any sense if the product in question makes $$$
Zuckerberg used to wax lyrically about Spotify and I always assumed Facebook would one day like to move to the subscription streaming market. A barrier to entry for Spotify to stream movies I always suspected would be cash.
Moving to google cloud won't stop a Spotify sale but it may discourage some?
This is the Spotify team, and they've clearly put their money where their mouth is by actually making the move.
https://twitter.com/plamere/status/702168809445134336
http://www.nytimes.com/2015/11/20/technology/google-picks-di...
Edit: Formatting (didn't mean to quote the url)
Google spends $2+B per quarter on capital expenditures; where do you think that money is going if not datacenters?
Using Facebook as a default login was never core to Parse (e.g. PFUser: https://parse.com/docs/osx/api/Classes/PFUser.html) nor is Parse nearly on the same scale as Google's investment in its datacenters / web software efficiency.