General approach to cloud computing
Tags: computerscience, cloud
Published: 2020-03-31 22:10:47

Lately, the term cloud computing has become popular in the computing community, especially when it comes to distributed systems. It can generally be defined as a paradigm that provides the ability to offer computational services (usually on demand) over a network. Providers and analysts have defined cloud computing as an enhanced/updated version of virtual servers available over the Internet.

Some of the most popular cloud service providers are Microsoft Azure, Google Cloud Services, Amazon Web Services (AWS), Salesforce CRM system, and so on. All are examples of "public cloud" and offer the ability to run functionality remotely, i.e. all processing will be done in the infrastructure of commercial vendors.
There are two models by which services, service model, and deployment model are offered. The following is detailed;

***Cloud service model***

**Software as a Service**

In this service model, providers offer a single application hosted in the provider's infrastructure to thousands of users, who can access through a web browser regardless of the operating system. The user usually has no control over the software, but in some cases there is the possibility to configure certain features. In most SaaS software is licensed per subscription. 

In addition, the vendor manages the infrastructure where the system is hosted, provides maintenance, security, and also handles hardware and software support costs. The most popular SaaS apps can be found in Google Apps (Gmail, Google Drive), Microsoft Office 365 for Office Tools, and Salesforce Sales Cloud for customer relationship management.

**Infrastructure as a Service**

Also known as Hardware as a Service (HaaS), it involves delivering virtualized architecture and infrastructure services over the network.  In this model, the customer can install and configure their software without worrying about infrastructure maintenance. It is the most basic form of cloud service.

Providers offer pay-as-you-go processing and storage services, so in a work environment where high performance is required on a large system, it's very useful. HaaS providers include Amazon Web Services: EC2 (Elastic Cloud Computing), Cisco Metapod, Microsoft Azure, Google Compute Engine, Heroku, DigitalOcean, and Rackspace.

**Plataform as a Service**

This model provides the user with a development platform with tools with which they can deploy and control their own applications, but the infrastructure cannot be controlled. It is specifically targeted for developers, as these platforms allow you to control shared processes and APIs to accelerate development and testing. In addition, they can be specialized in any particular area, such as content management.

PaaS services allow great flexibility, but can be restricted or limited by the capabilities available through the provider. Microsoft Azure, Microsoft's platform, allows the user to develop applications in various programming languages; Heroku and Salesforce Force.com are popular offerings for CRM integration; Google App Engine, to develop software from Google's own infrastructure.

***Cloud deployment model***

**Public cloud**

In this type of cloud, data and processes are managed by third-party vendors in a publicly accessible cloud. Everything stored by different clients is running on the same server, storage systems or infrastructure; but it's transparent to all users who contain apps in the same cloud.

One of the main advantages of public clouds is the cost that you can have using one, because they are mostly free to some extent, and are subsequently paid depending on the use you have of it, so they are scalable.

Its main disadvantage is that the data is not entirely secure as it could be in a private cloud, however, the implementation has been improved so it can become as secure as a private cloud

**Private Nuble**

As its name says a private cloud offers it services over a private network, where access can be limited. If high data protection is required it is an excellent option, because they offer a higher level of security and privacy, thanks to the accommodation being done locally, the data and processes are inaccessible to other providers.

Its main advantage is that it provides the possibility to maintain the privacy of the information and can unify access to the applications. On the other hand, one of its main disadvantages is the cost of cloud management.

**Hybrid cloud**

You can combine public and private cloud models to create a hybrid cloud to take advantage of both models. A user can own some parts and others share them in a controlled way, allowing IT services to be scaled through external providers, on demand.

This model is more flexible because of its public cloud scalability feature and offers greater control over critical private cloud workloads, saving costs because you pay only for what you use. In addition, hybrid cloud management relies heavily on the services the provider offers, such as public cloud provider security and infrastructure support (if not supported, it can incur extra costs). 

**Final reflection**

Today, cloud computing is a trend in the tech world, due to the impact it has to generate profits for users and businesses. We can also say that cloud computing will be the future of our society. This concept will allow to generate new applications in the field of Artificial Intelligence, Business Intelligence for decision-making within a company, for industrial processes, in the educational field, among others.