The history of the cloud dates back to the nineties. In 2006, the first – and most popular today – public cloud was created, namely Amazon Web Services. It was followed by Google (2008) and Microsoft (2010). Cloud services are having their moment, as they’ve entered the mainstream. You encounter them every day in social media and banking apps, streaming services (e.g. Netflix, Amazon Prime), email, or cloud storage such as Dropbox, Google Drive, or iCloud.
However, I don’t want you to get the impression that the cloud is an entertainment or B2C solution only. Cloud computing, cloud engineering, cloud storage – the solutions from the cloud family are used by a variety of companies that offer B2B services or from the most advanced fields, such as manufacturing. It is also indispensable when augmented reality (AR) or artificial intelligence (AI) solutions are considered.
What is the cloud? The definition
We used to think about the cloud in terms of servers accessed over the internet, rented from external providers, and thus being an alternative to physical devices. Companies configure it like any other VPS (Virtual Private Server) – store files, host static websites, and install web applications/databases there. The main benefit of such a solution is that organizations don’t have to manage physical servers, which is costly and can be a real pain in the neck.
The above remains true and a lot of companies still use the cloud this way (only – and unfortunately). However, the essence of the cloud nowadays is managed services offered by the cloud providers and installed on their cloud. They can cover an extensive library of configurations, automations, and runbooks (such as database and docker service, email brokers) that can be used freely to build your own apps.
How to make the most of the cloud?
There are two approaches to the cloud – clever and let’s call it less clever. As you might have guessed, paying for the cloud as an empty external server only isn’t the smartest way to use it. Why is that? In this model, companies not only have to configure their
system, which is time-consuming, but also pay for every minute they use it, which isn’t cost-effective. The cloud becomes more expensive than dedicated VPS servers, because it is opportunities we pay for – whether we take advantage of them or not. And above all, companies using the cloud as a server are left with duties and responsibility.
The winning way to enjoy the benefits of the cloud is using managed services as blocks and building the whole infrastructure with them (just have a look at the plenitude of products offered by AWS). This way companies don’t have to worry about low-level maintenance and pay for the real cloud consumption. This approach is way more affordable thanks to separate service pricing, e.g. they pay not for the time a server is hosting their email broker but the number of emails sent. It is worth mentioning that most of the cloud providers offer a free tier – services free of charge up to defined limits. These limits can be really high and often enough, especially for early-stage startups and smaller companies.
Advantages of cloud solutions
A lot of companies consider migration to the cloud. Have you ever wondered why? Here are the main benefits of the cloud, some of them we’ve mentioned already:
Scalability & elasticity
The major advantage of the cloud is that it assures scalability. Purchase of own servers, often more powerful “in advance” than the current equipment, means additional maintenance costs regardless of the real demand. Using the cloud, companies can scale anytime, which is an unrivalled opportunity. This applies to the ideal situation when a business and its needs grow, but also to necessary downgrades and cost-cutting.
The infrastructure can adapt to the increasing traffic, scaling horizontally (multiplying resources) and vertically (increasing the power of existing servers). With traffic and consumption monitoring, you can automatically scale your application up and down to match resources and costs correctly. The elasticity of this kind wouldn’t be possible with physical, on-premises servers.
Public cloud services are handy. There’s no need to keep your servers, which would involve its cooling, maintenance, component replacement, not to mention heavy energy consumption. With the cloud, it is the provider that is responsible for the physical servers and if something is not working, there’s support at their side to react swiftly, 24/7.
Availability & durability
Touching upon breakdowns, there is always redundancy of resources in the cloud. Data is usually stored on several mirroring servers located in different datacenters, so that in the event of a failure in one of them, data is served immediately from the other. There is minimal chance that the service will become completely unavailable for an extended time. For example, the availability of the most popular object storage Amazon S3 is 99.99% and its durability (resistance to data loss) is 99.999999999%.
With the cloud, organizations pay for its actual usage. Resources are “active” as long as you need them, when you don’t – you stop paying for them. Cloud elasticity prevents you from buying more capacity than is needed, whereas buying not enough would lead to server outages and in consequence to loss of revenue. Also, there is no need to invest in servers and their maintenance. As we’ve mentioned before, public cloud providers allow you to build applications and systems from the pre-configured blocks – cloud products – with separate, often favourable pricing.
The main concern about cloud use is the loss of control over sensitive company data. However, usually, the public cloud provides greater security than having your own servers (which give an illusory sense of security only). Public clouds are heavily secured, for example against DDoS attacks, and provide several methods to secure your content such as encrypted communication between endpoints, restricted access (token authentication, signed URLs), web application firewalls, and API gateways. Thanks to asymmetric encryption, even the cloud provider can’t read your data because you’re the sole owner of the second cryptographic key.
One of the biggest advantages of the public cloud is a shared responsibility model between cloud service providers (CSP) and their customers. It specifies the responsibility the provider takes on, such as physical infrastructure security (data centers, networks, and hosts), applications offered, network controls, or operating systems. In consequence, clients take on highly limited responsibility, usually restricted to the areas they specialize in.
For example, building a technological startup, you can focus on app development and management. You don’t have to bother yourself with low-level infrastructure, equipment, or networking. The exact degree of both parties’ responsibility depends on the particular provider and the category of services (SaaS, PaaS, IaaS).
The most popular public cloud service providers
There are three major public cloud providers in terms of their popularity. They all offer much the same services, have data centers located all over the world, and belong to the renowned multinational technological companies:
- Amazon Web services (AWS)
- Microsoft Azure
- Google Cloud
Since they offer similar services and quality, you might be wondering which one to choose for your company or application. What should you take into consideration then?
Preferences and competencies
As you value one sneaker brand over another, the same might apply to cloud providers. These personal preferences, trust towards one particular brand, can be a decisive factor and there’s nothing bad about it. The same might be true for your employees. DevOps and developers usually specialize in particular clouds and their competencies can be the main determinant of choosing your provider. Training and training materials availability might also play a role here.
Data centers proximity
By choosing a provider with data centers close to your end-users, your clients benefit from faster and more reliable services. The proximity of edge locations allows you to synchronize content more effectively. Although AWS has the highest number of data centers globally, Google Cloud or Microsoft Azure could have them closer to your destination. You can check (for security reasons, more or less) the exact location of data centers on the providers’ sites.
Depending on the app you’re creating or the clients you’re serving, there might be some prerequisites concerning the cloud. It applies particularly to governmental and administration systems but not only. The applicable country law can require data to be processed e.g. in the very country or the EU. Then it might be crucial that your provider operates in the exact location, such as Google being the only one from the top 3 providers having data centers in Poland or the Netherlands.
Depending on your needs and the products offered, the price of the public cloud can differ depending on the provider. A lot of them offer various accelerating programs with free credits that can pay off some of the services. Thus, if the cost is a determining factor, it’s worth asking major providers for a quote.
If not the public cloud then what?
Taking advantage of the public cloud, we have to be aware that hardware is shared between a lot of parties and providers move traffic between servers depending on their usage. The very fact might be problematic for some companies. If that’s the case, you can opt for one of the following solutions:
Dedicated host/Sole tenancy
You can use a partial solution such as buying dedicated resources, a physical computer, in the public cloud. It will be used solely by you. By doing so, you still have access to the cloud products and services, and you can manage the resources you use quite flexibly. What’s more, you get the advantage of a shared responsibility model. Obviously, such a solution will be more costly than the public cloud.
You can also buy servers and build your own cloud infrastructure, which large companies of course do. It won’t be financially beneficial but gives organizations a sense of control and responsibility for their own data, since you don’t share servers with others. Then you can install some of the AWS/Google Cloud/Microsoft Azure services on your servers, creating a small private cloud.
However, building a private cloud, you become responsible for all the tedious tasks connected, such as power supply and cooling. At the same time, you sacrifice most of the cloud benefits such as shared responsibility or being able to build systems from preconfigured blocks. Also, a private cloud is definitely more expensive and time-consuming to manage than the public one. We face the fact, implementing logical separation in our learning management system Samelane.
If you want to delve into the topic of cloud, I can recommend you our page devoted to AWS and Microsoft Azure in Artificial Intelligence solutions: https://neurosys.com/aws-ai-azure-ai/