An Introduction to Cloud Computing

An overview of cloud computing's advantages and benefits.

8 min read ⋅ 79 views

What is Cloud Computing

Business applications have always been very complicated for developing and expensive too. The hardware and software on which they run are also very expensive too. You need a whole expert team to install, configure, test, run, secure, and update them.

So here comes the cloud computing. Cloud computing is a kind of outsourcing of computer programs, where you eliminate all those headaches that come with managing the hardware and software and storing the data. Also, it is the delivery of computing service from hardware (servers and storage), different kinds of databases, analytics, networking, software, through to language processing and artificial intelligence as well as standard applications. Almost any service that doesn't require for the user to be physically close to the hardware that has been used can now be delivered via the cloud.

You are probably using cloud computing right now, even if you don’t have an idea what cloud computing is. If you are using an online email service, service for editing documents or photos, watch or stream movies or TV, listen to music, play games or store pictures and other files, it is very much likely that cloud computing is enabling it all behind the scenes.

Netflix relies on cloud computing services to run its own video streaming service and its other business systems too.

Cloud computing relies on sharing the resources to achieve coherence and economies of scale (cost advantages). You only pay for what you will use, upgrades and scaling are done automatically. Cloud providers typically use a "pay-as-you-go" model.

Organizations try to avoid expending resources on computer infrastructure and maintenance and focus on their business by using third-party clouds services.

Cloud computing enables the users or the companies to get their applications up and running in very little time, with improved manageability and less maintenance, and that it enables IT teams, to be able to adjust the needed resources fast, to meet the ever-changing needs.

Businesses are using all kinds of apps through the cloud, like customer relationship management (CRM), customer support, HR, accounting, and much more.

How cloud computing works

Cloud computing services, depending on the provider, all work a bit differently. These providers deliver browser-based dashboard that makes it easier for the IT teams and developers to ask for the required resources and manage their accounts. Some of them are giving developers developing options by offering REST APIs and a command-line interface (CLI).

Cloud computing, often referred to as simply “the cloud,” is the delivery of on-demand computing resources — everything from applications to data centers — over the internet on a pay-for-use basis.

  • Flexible resources — Scale up or down quickly to meet demand
  • Service is measured so the user only pay for what it’s using
  • Self-service - All the IT resources are reachable with self-service access

Three types of cloud services

PaaS - platform as a service, SaaS - software as a service and IaaS - infrastructure as a service are three main cloud computing categories. They are built on top of each one so sometimes they are called cloud computing stack.

Infrastructure-as-a-service (IaaS)

Infrastructure-as-a-Service (IaaS) is the fundamental cloud computing services. With IaaS, you rent the fundamental building blocks of computing - servers, virtual machines (VMs), networking, storage, operating systems - from a cloud provider on a pay-per-use basis.

The benefits of IaaS

  • No need for the users to invest in their own hardware
  • Infrastructure scales on demand to support the dynamic needs
  • Flexible and innovative services on demand

Iaas is attractive to companies that want to build applications from the very beginning and want to control almost all the elements by themselves, but it does require the users to have extensive technical skills to be able to organize services at that level. Many pieces of research have found that most IaaS users are saying that using online infrastructure makes it easier to innovate. The time to develop and deploy new applications is shortened and services had significantly cut the maintenance costs.

However, IaaS isn't secure enough for most critical data.

IaaS providers offers to its users a virtual storage and server instance and also APIs that enable them to migrate workloads to a VM. Users have an allotted storage capacity and can access and configure the VM and storage as needed.

Platform as a service (PaaS)

Platform-as-a-service (PaaS) is referring to cloud computing services that create a cloud-based environment for developing, testing, delivering and managing different kinds of applications. PaaS is designed to make it easier for developers to create web or mobile applications more quickly, without worrying about the cost of setting up or maintaining the underlying infrastructure of hardware (servers and storage), network and databases needed for development.

The benefits of PaaS

  • Develop applications and get to market faster
  • Deploy new web applications to the cloud in minutes
  • Reduce complexity with middleware as a service

PaaS cloud providers are giving development tools on their infrastructures. Users can access platform service tools by using their APIs, software or by web portals. PaaS is used for general software development, and usually, the PaaS providers host the software after it's deployed.

PaaS can be also categorized as an open or closed source, then whether it is mobile compatible (mPaaS), and to which business types it brings the best use.

When choosing a PaaS cloud computing service, the most important considerations are how it is hosted and how well it integrates with existing information systems, which programming languages it supports, what application-developing tools it provides, how customizable or configurable it is, and how it agrees with the provider.

Most used PaaS providers are Amazon Web Services Elastic Beanstalk, Google App Engine, and Salesforce's Force.com.

Software as a service (SaaS)

Software-as-a-service (SaaS) is a method for delivering software applications over the Internet, on demand and typically on a subscription basis.

SaaS cloud providers handle the maintenance of software security patching and updates, and also they manage and host software and needed infrastructure.

Users can access SaaS applications using a computer, tablet or mobile device that has Internet access.

The benefits of SaaS

  • You can use innovative business apps
  • Apps and data are accessible from any device that is connected to the Internet
  • No data is lost if your something happens to the device, as data is in the cloud
  • The service is able to dynamically scale up or down depending on the usage needs
  • SaaS is probably the version of cloud computing that most people are used to.

Some of the important things like hardware or operating system are irrelevant to the user because he will use the service via the web browser or by an application.

It is often bought on a per-seat or per-user basis.

One common example of a SaaS application is Microsoft Office 365 for productivity and email services.

Types of cloud deployments: public, private, hybrid

There are three different types of cloud resources deployments: public cloud, private cloud, and hybrid cloud.

Public cloud

Public clouds are operated and owned by a third-party cloud service providers. These providers offer access to their computing resources like servers and storage over the Internet. Software, hardware and the whole infrastructure are managed by a provider when using the public cloud. Users access these services and manage their account using a web browser.

Private cloud

Private cloud is an infrastructure that is used only by a single business or organization. A private cloud can be hosted internally within the company, in the company’s on-site data center or use third-party cloud service providers to host their private cloud. A private cloud is one in which the services and infrastructure are maintained on a private network.

Hybrid cloud

Hybrid clouds are a combination of private cloud foundation and strategic integration and use of public cloud services.

Hybrid cloud allows data and applications to move between private and public clouds. This can give greater flexibility and more deployment options to the businesses.

What about cloud computing security?

Security remains a primary concern for many companies, although breaches of security are rare. How secure the cloud computing can be, will largely depend on how secure the already existing systems are. Company’s in-house systems, managed by an IT team that has lots of other things and systems to worry about, are likely to be leakier than systems monitored by a cloud provider's engineers and professionals dedicated to protecting that infrastructure.

However, concerns about security still remain, especially for big companies that are moving their data between many cloud services. This moving resulted in a growth of cloud security tools, that monitors data  between cloud platforms. These tools can easily identify fraudulent use of data in the cloud, unauthorized downloads, and malware.

Emerging cloud technologies and services

With a serverless computing the cloud provider loads and executes the code that is written by developers and response to real-world events, so the end-users don't have to worry about the server or instance aspect of the cloud deployment. Users only pay for the number of transactions that the function executes. AWS Lambda, Google Cloud Functions, and Azure Functions are examples of serverless computing services.

Public cloud computing also lends itself well to big data processing, which demands enormous compute resources for relatively short durations.

Another part of emerging cloud technologies and services refers to artificial intelligence (AI) and machine learning. These technologies help system to understand and respond to different patterns in data and give benefits to the business.

Cloud computing benefits

Cost: Cloud computing is making a significant decrease in capital expenses like buying the hardware and software, updating applications or operating systems, the round-the-clock electricity for power and cooling, decommissioning.

Self-service provisioning: The users or the companies are using compute resources for any type of workload they need at the moment, so even vast amounts of computing resources can be provisioned just in few minutes.

Reliability: Cloud computing is making data backup all the time, so it makes disaster recovery and continuing with the regular business, easier and less expensive. Data can be mirrored at multiple sites on the cloud provider’s network

Scalable: With doing almost everything on the Internet, it is extremely important that software is compatible with different software and different types of devices. Cloud applications can provide this.

Conclusion

The goal of cloud computing is to allow users to take benefit from all of the technologies that were mentioned in this post, without the need for extensive knowledge or expertise with each one of them. The cloud is meant to cut costs, and to help the users focus on their business goals, instead of being disrupted by IT obstacles.

For all start-ups who plan to run all their systems in the cloud, the getting started is pretty simple. But for already existing companies it is not so simple: with existing applications and data, they need to work out which systems are best left running as they are, and which applications to be moved to cloud infrastructure.

Regarding the types of cloud computing, it is better to know what they are and how they are different, and which one suits better for accomplishing the user’s goals. 





MORE ARTICLES

Comparison of Continuous Integration Tools

A review of the features offered by Travis CI and Circle CI

Primitive Data Types in Python 3

Introduction to Python 3 primitive data types

Continuous Integration: code quality and code review tools

Continuous integration best practices tools