Virtually every organisation that begins with data science, sets up a data warehouse, or modernises existing infrastructure, automatically opts for the cloud. And then you usually end up with the Big Three: Microsoft Azure, Amazon AWS, and Google Cloud Platform. Which is the better choice? And if you later want to switch, is that even possible? Given the increasingly strict privacy and data protection requirements from the EU, the ability to switch is more urgent than ever. Time for more background on the cloud. By Harmen, CTO & senior data scientist at Datalab
What is the cloud (briefly…)?
The cloud is a collective term for a large number of highly integrated computer services that you rent. Previously, you had servers in a room at the office; today those servers are in large data centres where management is outsourced. Efficient, because your own servers often stand idle for long periods (for example at night, when you are not working). In the cloud this plays less of a role, because the servers are then used by clients on the other side of the world (where it is daytime). Moreover, you can easily scale capacity up or down and need fewer internal IT staff to keep things running.
In the cloud, services run such as virtual machines (running Windows, for example), databases (where your application data is stored), and all manner of glue to link systems together. For data science, we often work with data warehouses (a variant of databases), data lakes (immense storage capacity for raw files), and software to unlock data from sources.
Which cloud should you choose for data science?
When facing the choice of a cloud environment, ask yourself the following questions:
- Does the cloud provider offer what you truly need, now and later?
- Does the cloud provider comply with legal requirements and your organisation's policies (privacy, information security, etc.)?
- Which cloud is most cost-effective?
- And what about switching cloud providers?
Question 1: Does the cloud provider offer what you need?
For data science environments, you often do not need much. A place to store data (a data warehouse and a data lake), a way to unlock source data into the data warehouse, and a way to access the data. The three major providers all offer their own tooling to make this possible. Azure works with Azure Data Lake, SQL Server, and Data Factory. Google Cloud offers Cloud Storage, BigQuery, and Cloud Dataflow. AWS offers Redshift, S3, and Glue. In this regard, it does not matter much.
However, there are two big 'buts'… Firstly: if you choose the standard solutions from these providers, you are more or less tied to them forever. Migrating between clouds is possible but difficult, expensive, and moreover requires retraining your staff. The second big 'but' is that in most cases you struggle to keep control of costs. For example: for analytical purposes you often need high performance, and you pay heavily for that with Azure SQL Server. At the other end of the spectrum is BigQuery: considerably cheaper but you pay every time you retrieve and analyse data. That quickly adds up…
Besides the aforementioned Big Three, there are many other often specialised players. For example, Snowflake Cloud, focused on data science. Or Intermax, a Dutch provider specialising in critical infrastructure and matters where (data) security plays a major role. These providers also have disadvantages such as high costs (Snowflake) and lack of ready-made data science solutions (Intermax).
Question 2: The Cloud and GDPR: do they go together?
Of the major cloud providers, Microsoft has the best credentials regarding GDPR. Microsoft guarantees that data remains within the EU - a guarantee that Google Cloud (generally) will not give and that at Amazon appears to be a vague promise. Is Microsoft Azure therefore automatically the better choice? Not necessarily - it is an American company and therefore also falls under American legislation. No problem if no (highly sensitive) personal data is processed, or espionage-sensitive technical knowledge.
A data protection officer or information manager will quickly be inclined to not use a cloud environment at all and cast everything in an on-premises solution. That can be sensible but has considerable disadvantages, where a lack of scalability and self-management (with all associated risks) are the most significant.
Question 3: What about costs?
The cloud came as a gift from heaven for many companies - until the first invoices arrived. Cloud providers have a reputation for being expensive, and this can indeed be the case. When you purchase services with short-term contracts and in 'old-fashioned ways', this is quickly apparent.
For all cloud providers: the longer you commit and the more you make scalable use of the services, the cheaper it becomes. Nevertheless, the price tag often remains substantial. However, it is important to realise that you also avoid many costs: you need no or fewer IT administrators, you do not pay separately for electricity (also think of server cooling), and you do not sacrifice valuable office floor space. Not to mention the availability of third parties for security or incident support.
Comparing cloud providers, Microsoft Azure appears to sit at the expensive end of the spectrum, followed by Amazon AWS. Google Cloud is relatively cheap, partly because it is the smallest of the three majors (in Europe and certainly in the Netherlands).
If you want to negotiate on costs, you can hardly avoid working through a Service Provider: an intermediary that purchases on your behalf and, if desired, handles management. Direct negotiation only really makes sense if you generate very high revenue for the cloud provider: several tens of thousands of euros per month. Keep the following in mind:
- Committing for one or two years can deliver extreme discounts, up to 70% on the regular monthly price. Do you really need the ultimate flexibility of rapid downscaling?
- If you work through a Service Provider, negotiate carefully with that provider. The prices you see on the cloud provider's invoice, even if purchased through the Service Provider, do not tell the whole story. Service Providers can receive up to 20% kick-back on everything you purchase from the cloud. Use that knowledge when negotiating with them.
A good example of how difficult providers of cloud software can be is a supplier of one of the world's best database systems. This organisation's sales team knows very well how to sell its product: initially with low licence costs and plenty of support. But once you have been a customer for a while and are locked into the product - after all, moving to another system is expensive - you will see licence costs suddenly rise sharply. That is one way to retain customers, but not one we at Datalab like.
Question 4: How do you retain flexibility?
Choosing a cloud provider brings a risk: if you are dissatisfied, your wishes or requirements change, or the legal framework changes, switching to another provider is difficult. How do you avoid getting stuck? Three tips:
- Use open standards wherever possible. A product such as Azure Data Factory is attractive, but cannot be transferred to another cloud provider. Prefer an open standard such as Apache Airflow. More broadly, we strongly recommend purchasing mainly basic infrastructure (storage, compute capacity) and setting it up using, for example, Docker containers.
- Consider a hybrid strategy. For storing large volumes of data, the cloud is a safe and cost-effective solution. Why not place those elements in the cloud while keeping compute capacity local?
- Consider a multi-cloud strategy. It is perfectly possible to use Azure and Google Cloud or Amazon, or all three.
For points two and three, cloud providers are very aware of this and 'encourage' you, to put it positively, to purchase as much as possible within one cloud provider. They do this, for example, through high egress costs. These are the costs you incur to move data from a cloud provider to your local environment or another cloud provider. Putting data into the cloud, meanwhile, is often free. A clear strategic choice on the provider's side.
In summary: choose open standards and use things that every cloud provider offers, such as virtual machines, open source data warehouses and standardised data extraction.
That sounds gloomy. Is the cloud actually a bad solution?
No, certainly not. But it does require you to think carefully beforehand about where you are stepping in. Choosing Microsoft Azure 'because we already buy everything from Microsoft' is not necessarily wrong, but it does have consequences.
Use the cloud for what it is good at: outsourcing the difficult process of setting up basic infrastructure. Microsoft, Amazon and Google always have more and better IT engineers than you can hire yourself. Use that, and avoid the trap. Make sure that being in the cloud once does not mean locking yourself in.
