In the last few years, cloud computing has become the new norm for most industries around the world.
Being a developing topic, there’s a lot of terms surrounding cloud computing you may have never heard before.
Whether you’re a manager of a cloud development team or an aspiring cloud architect, we’ll walk you through all the terms and background you’ll need to understand the new and exciting cloud.
Let’s start at the beginning.
Before cloud computing, companies had to buy their own servers to install and manage inside their buildings. This set-up is known as on-premises storage.
On-premises storage has many downsides such as high up-front cost, information being only accessible from a select area, and high risk of loss should the server lose power.
Between companies too, on-premises storage hurt business by making it difficult for companies to share information.
These problems seemed unavoidable, that is until the advent of cloud computing.
Cloud computing is a system which allows access to services like storage or development platforms on-demand via internet connected off-site data centers.
These data centers are managed by third-party companies, referred to as cloud providers.
This system not only addresses all the problems which plagued the on-premises systems, but they’re also usually cheaper, more scalable, and more convenient.
Amazon AWS was the first major cloud computing service provider, being released in 2006. AWS currently has about half the cloud services market share but has now gained notable opposition in Microsoft with Azure and Google with the Google Cloud.
Where is cloud storage?
Cloud storage sounds like it’s just floating somewhere, when really its very similar to traditional hardware storage.
Saving something to the cloud sends it to be stored in a local data center operated by the cloud host business (Google, Amazon, etc). These data centers are in fact very similar to old-fashioned corporate server rooms, but instead of each company having to fund and operate their own server room, now they can outsource their storage to these centralized cloud data centers.
Each cloud storage provider has hundreds of these data centers all across the planet, ensuring you can access your work from anywhere, on any device.
While solving all the problems of on-premises based systems, cloud computing has its own share of disadvantages.
Lets breakdown the advantages and disadvantages of cloud computing when considering migration to the cloud.
Democratizes access to technology:
Companies both small and large can access similar high tech services. By switching from high up-front hardware to dynamically priced and well established data centers, its easier than ever for even fresh companies to have the best tools.
Focus on product, not infrastructure
Businesses can increase efficiency and reduce costs by focusing on what they do best, making their product, and leave the computing administration to the provider.
Thanks to the centralized data centers, updates and maintenance can be distributed company-wide in just a single click.
Hosting computer resources on the cloud breaks dependency on the office, allowing developers to work from home or any location with a solid Internet connection.
Cloud providers have the scale to invest in advanced security measures and backups on-premises systems couldn’t achieve. Also, by virtue of being off-site, a company’s data is safe even in the case of a power outage or other system failure.
If all of your companies files and applications are stored on the cloud, you simply cannot work without an internet connection.
If a service outage occurs, employees can be stuck unable to work, costing thousands in production loss.
Loss of Control
Regardless of the chosen service type, all cloud systems involve giving up some control of data or storage. While this reduces the load on the client company, it can be a stressful switch to no longer have full control. This requires a trust that the cloud provider will protect your data and production with the same care that you would in house.
Less Control over Maintenance
Especially with PaaS and SaaS, clients have nearly no ability to speed along or perform maintenance on their end. This means if there is a problem with a cloud service the only thing to do is call the cloud provider’s support team.
These support teams have gracious open periods but they’re not 24-hour, meaning sometimes you may not be able to get your problem solved until the following morning. Their aid is excellent, however for some leaders that disconnect is too great to be convenient.
More Appealing Hack Targets Data centers are appealing targets for hacking attacks because of the sheer amount of data they contain. For smaller cloud clients, lumping their data together increases the number of attacks that would target their data than if it was stored in a less appealing on-premises system. It’s a constant battle for cloud cyber-security developers to hold off breach attempts, and inevitably one will eventually get through.
Services can be thought of as individual cloud capabilities provided to companies. For example, cloud storage would be a separate service as application hosting.
These services are often bundled into packages of three types depending on how the cloud is used in a given business, with IaaS clients relying on the cloud less than SaaS clients.
Lets look at what defines each and some examples you may be familiar with.
Each service builds onto each other as we go down, SaaS includes all the features of PaaS and so on.
This is the least dependent of the cloud service types, meaning many capabilities (data, applications, runtime, O/S) are still handled internally.
In this category, the company rents VMs, storage, network, and operating systems from the cloud provider on a pay-as-you-go basis.
This saves the business from having invest in expensive on-premises hardware and leaves room for the company to grow via the flexible payment style.
Platform as a Service (PaaS)
This is the mid-point between control and ease which provides all middleware and environments to use when developing and running applications.
These standardized environments help developers craft their applications to work seamlessly with web servers, database management systems and software development kits for top programming languages.
This service type leans most heavily towards ease of all three, with most computerized functions being handled off-site.
PaaS allows businesses to host and run their applications on cloud data centers rather than private servers. In doing so, users can access applications through the internet in real-time without needing to download and install the app locally. It also includes security, dev support, and maintenance handled by the cloud provider as part of the cost.
This service allows developers to create responsive applications for use on-demand on any device.
Up until now, we’ve only discussed public cloud in which data centers can contain data for hundreds of different users or clients. These clients only need to pay for the storage they use, rather than paying for the ability to use the data center.
The majority of cloud use is done on public cloud services.
Companies can also pay to reserve a data center so that it is used only by that company, called a Private Cloud. This is often used by companies which store sensitive data such as banks or hospitals as they’re more secure.
Go beyond terms, learn the foundational coding skills and services necessary to become a cloud developer, all with interactive exercises.
While Amazon is the most well known, the cloud computing market is still developing. Many tech companies have created their own cloud software with different strengths and specialties.
Lets look at which software is good for each job.
The Big Three of Public Cloud:
Multi-Cloud Hybrid Deployments:
Cloud migration is the process of moving a company’s data, applications, and business infrastructure into a cloud environment. This migration is notoriously tricky, and many companies don’t migrate simply because of the work. But the overall benefits far outweighs the challenges.
There are many kinds of cloud migration that a company can consider based on their factors, such as cost, security, and performance. The most common is to transfer on-premises data centers to a public cloud.
Another avenue is moving data to a new vendor or private cloud, called cloud-to-cloud migration.
Cloud migration requires you to evaluate your requirements, select a vendor, calculate all costs, and reorganize the company.
Migrating to the cloud requires strategy because of the scale of the change.
There are some common things considered when crafting a cloud migration strategy:
Now that we’ve learned some basic terms and concepts, lets take a look at a few of the more intermediate words that are a staple of many in-office discussions.
A workload is a business process, like accounting, paying the company’s bills, or marketing releasing a branding update. Workloads are how developers think about business requirements, a phrase you might hear is migrating workloads to the cloud.
Migrating workloads to the cloud means moving all the required pieces of a business process to cloud computing services.
Cloud-native means using cloud tools to develop software from the beginning of the development cycle. Cloud-native development is grounded in containers, microservices, and dynamic orchestration. These applications are a collection of independent, loosely coupled services, and they are optimized for continuous integration and continuous deployment (CI/CD).
Cloud-native is very powerful because they are much easier to make and far more integrated than the traditional development model. Cloud-native development gives access to many developer tools. For example, some tools make it easier to use open-source software packages or deploy a web application.
A container is a standardized unit of software. Containers package code and dependencies into a lightweight, standalone executable that contains everything required to run the application, regardless of the infrastructure. These allow developers to deploy applications in multiple clouds without worrying about the cloud service provider.
You’ve just completed your first step into the ever-changing world of cloud computing. You’ve built a strong foundation which will allow you to not only speak confidently about the cloud but also to jump hands-on into cloud programming.
For aspiring cloud developers, your next step is to move to learning intermediate cloud architecture like:
To help you take that step, Educative has teamed up with veteran fullstack developer Shivang Sarawagi to create an interactive, comprehensive course, Cloud Computing 101: Master the Fundamentals, sure to accelerate your cloud learning.
With these resources in hand, you’re well on your way to that dream cloud development position.
Good luck and happy learning!
Join a community of 500,000 monthly readers. A free, bi-monthly email with a roundup of Educative's top articles and coding tips.