Cloud computing: history, opportunities, benefits
Cloud computing is increasing in popularity as technology continues to evolve. This article explores the basic concepts of clouds, their evolution, existing delivery models, and the benefits and drawbacks of using cloud services.
The author of this article is EPAM Senior Systems Engineer Konstantin Kostin.
In this article
Almost every commercial and non-commercial organization has its own public website, web-service, intranet, or internal IT infrastructure. It is impossible to imagine a company without any IT resources because these resources enable faster information exchange and more cost-effective and reliable information storage than ever before. It has never been easier to buy IT infrastructure than it is today. Cloud computing provides an opportunity to use virtual machines online for less than $10 per month, and even access free services and resources.
What is cloud computing?
Cloud computing is a relatively new concept in the tech industry that offers virtual hardware, platforms, services, and software to customers over the internet. The word “cloud” is used because we don’t know the exact physical location of the infrastructure that supports these virtual services.
At the core of cloud computing are data centers with hundreds or even thousands of servers. These servers are equipped with software that enables users to access computing power.
So, how can you start using that power? Every cloud provider offers a web interface where you can sign up and then create, edit, delete, and manage your virtual resources without thinking about physical hardware issues such as cooling, electricity outages, fire protection, redundancy of internet channels, etc. You don’t need to hire people who know what part of a server you should troubleshoot if it beeps twice short and once long and doesn’t show anything on the screen. With a cloud provider, using just a few clicks you can create virtual machines, Kubernetes clusters, and load balancers.
Acquire more knowledge on the strategies for building a successful career in cloud computing.
Today, cloud computing has become standard for all types of companies, from huge corporations to garage startups. The popularity of the Agile methodology has pushed businesses to adopt cloud computing because it allows you to check any idea very quickly using free or almost free virtual resources. Then, you can quickly scale your test environment to a production-ready environment or remove all resources.
The history of cloud computing
Cloud computing has become an integral part of today's technology landscape, allowing organizations to remotely store, access, and manage data without maintaining their own hardware and infrastructure. The evolution of cloud computing has been shaped by several significant milestones.
1960s: The beginnings
- The idea of cloud computing can be traced back to the 1960s, when computer scientist J. C. R. Licklider proposed the concept called the "Intergalactic Computer Network." This idea laid the foundation for what would later become the internet. Many authors mention the time-sharing approach to computer usage in the 1960s and 1970s as early cloud computing, but the early approach is not the same as modern cloud computing. Cloud computing became possible and popular when the internet became fast and reliable.
1970s: Virtualization and the birth of the internet
- In the 1970s, IBM introduced the concept of virtualization as a way of logically dividing mainframe computer resources. This became a crucial pillar for the future development of cloud-based services.
- In 1974, Vint Cerf and Bob Kahn created the Transmission Control Protocol (TCP). It was later combined with the Internet Protocol (IP) to form the network known as the internet today.
1990s: The emergence of the modern cloud
- It’s not clear who introduced the term "cloud computing." Different sources attribute the first use of the term to different people and companies in internal documents, presentations, or books.
- In 1999, Salesforce was launched as one of the first Software as a Service (SaaS) providers. This marked a pivotal moment since it was among the first companies to offer applications over the internet.
2000s: Major strides in cloud computing
- In 2002, Amazon launched Amazon Web Services (AWS) as a platform offering various cloud-based services. In 2006, AWS introduced the Elastic Compute Cloud (EC2), which allowed users to rent virtual machines. This marked the beginning of modern cloud computing infrastructure.
- In 2008, Google launched the Google App Engine, which provided a platform for developers to build, host, and scale applications in the cloud.
- In 2010, Microsoft launched Azure, its cloud platform offering a range of services, including databases, storage, and computer resources.
2010s: The cloud computing boom
- The 2010s were a time of massive increase in the adoption of cloud computing, driven by the growing number of SaaS, Infrastructure as a Service (IaaS), and Platform as a Service (PaaS) providers.
- In 2013, IBM acquired SoftLayer, a leading cloud infrastructure provider, to bolster its cloud offerings and better compete with industry leaders such as AWS and Azure.
- In 2016, Google rebranded all of its cloud services as the Google Cloud Platform (GCP), further strengthening its presence in the market.
As you can see, modern cloud computing started in the early 2000s with the founding of Amazon Web Services. Then, Google and Microsoft created their cloud services. Over time, clouds have grown from a few services to large marketplaces with hundreds of different service options. With the increasing interest in AI and the internet of things (IoT), cloud providers have started offering special services optimized for these new technologies.
Cloud computing service delivery models
There are three cloud delivery models. Each incorporates a certain abstraction level of virtual infrastructure, offering different delivery models to meet various customer demands.
Infrastructure as a Service (IaaS)
This delivery model provides access to services that are very similar to real hardware. Virtual machines are the most common example of resources offered by the IaaS model. This model can be used for moving legacy applications without modernization from on-premises infrastructure to the cloud (lift-and-shift or rehosting migration), when you have very specific requirements for your application, or when you require a high level of control over the virtual hardware.
Platform as a Service (PaaS)
The PaaS delivery model significantly simplifies the implementation of application infrastructure. After creating PaaS cloud service, you have a ready-to-use platform that includes components such as SQL server, web server, DNS zone, and more. These resources are still infrastructure, but you don’t need additional configuration to make it work. You can think of PaaS as a preconfigured infrastructure on which you can deploy your application.
Software as a Service (SaaS)
Cloud providers can provide access not only to infrastructure but also to software. The various implementations of office applications available online are examples of SaaS. Any website can be perceived as SaaS because each serves as software that is accessible to every user. The SaaS model can be considered as one of the ancestors of modern cloud services.
Advantages and disadvantages of cloud computing
Let’s consider the pros and cons of cloud computing compared to on-premises solutions.
- Cost-effectiveness. Cloud computing is much cheaper for the Proof of Concept (PoC) and Minimum Viable Product (MVP) phases of a project, especially if we do not go to production. We can optimize costs at any phase of the project in the cloud, unlike on-premises solutions.
- Rapid infrastructure deployment. With cloud computing, all you need to create your own IT infrastructure is internet access. There’s no need to go to a store, order hardware, or wait for weeks for delivery.
- Agility and ability to quickly fix architectural mistakes. It is possible to remove and recreate cloud resources without incurring costs, while selling excess physical hardware is much more difficult.
- High level of automation. The Infrastructure as Code approach allows you to manage virtual hardware on the same level of automation as any other software. You store the description of virtual hardware in the form of deployment templates in a Git repository. These templates can be documentation, and Git makes it possible to store the history of changes.
- Some security risks. Since you don't have direct control over the physical infrastructure, there are some security concerns. Restriction of physical access to infrastructure is one of the most important security measures for on-premises environments. That’s why telecom operators, banks, and government organizations should think twice before adopting cloud computing.
- Potential cost increase. While the ease of creating new resources is a benefit, it can also lead to increased costs as projects and infrastructure grow.
Fast and cheap internet, and advancements in computer hardware, led the tech industry to the development of cloud computing. The concept of virtual hardware accessible through the internet was an inevitable outcome. In the future, cloud computing providers will likely offer more different types of services aimed at simplifying the development of neural networks, big data solutions, and artificial intelligence applications.