What is the cloud? Where is the cloud?
The cloud, simply refers to software and services that that you access and use over the Internet instead of from your local network or computer.
However the term has heavily been used to market all types of services in recent times but my view on it is basically
- Its someone elses Computers
- Which includes Hardware,
- Software licenses,
- Buildings & Security,
- Electricity bill
- and most importantly - trained staff
Why cloud? One explanation is that the old network diagrams drew network schematics that surrounded the icons for servers with a circle, and a cluster of servers in a network diagram had several overlapping circles, which resembled a cloud
An example of some Cloud services are OneDrive, Apple iCloud, Dropbox, Amazon Cloud Drive, Google Drive, Microsoft Office 365, Gmail, Yahoo Mail, Codepen, jsbin and jsfiddle all of which you use from your browser. Or maybe full Cloud provides like Microsoft Azure, Amazon Web Services (AWS) and Google Cloud.
Where is the Cloud, well its in huge and multiple data centers run by companies such as Microsoft, Google, Amazon and many more.
However the Cloud has also come to mean Hardware and Software as a service, which can be rapidly provisioned and released with minimal management effort that you can configure and use from your browser. Like AWS, Azure and Google Cloud these services allow you to setup and run Servers, Web Servers and Database Servers without you having to buy the hardware and software then setup the OS and the application software. Instead in a few moments you can be working on deploying your software and allowing your business to grow using the Cloud to your advantage with the technology you need to be more agile, responsive and competitive. Whilst only paying for what you use.
Cloud computing allows companies to avoid upfront infrastructure costs, and focus on projects that differentiate their businesses instead of on infrastructure.
Cloud computing is the result of the evolution and adoption of existing technologies and paradigms. The goal of cloud computing is to allow users to take beneﬁt from all of these technologies, without the need for deep knowledge about or expertise with each one of them. The cloud aims to cut costs, and helps the users focus on their core business instead of being impeded by IT obstacles.
Users routinely face difficult business problems. Cloud computing adopts concepts from Service-oriented Architecture (SOA) that can help the user break these problems into services that can be integrated to provide a solution. Cloud computing provides all of its resources as services, and makes use of the well-established standards and best practices gained in the domain of SOA to allow global and easy access to cloud services in a standardized way.
It allows you to more rapidly adjust resources to meet fluctuating and unpredictable business demands. Cloud providers typically use a "pay as you go" model.
Scale to the cloud cost effectively
Seamlessly extend your datacenter to the cloud for bottomless capacity, continuous availability, and lower storage costs—all without investing in or maintaining additional infrastructure.
The main enabling technology for cloud computing is virtualization. Virtualization software separates a physical computing device into one or more "virtual" devices, each of which can be easily used and managed to perform computing tasks. With operating system–level virtualization essentially creating a scalable system of multiple independent computing devices, idle computing resources can be allocated and used more efficiently. Virtualization provides the agility required to speed up IT operations, and reduces cost by increasing infrastructure utilization. Autonomic computing automates the process through which the user can provision resources on-demand. By minimizing user involvement, automation speeds up the process, reduces labor costs and reduces the possibility of human errors.
Software as a Service (SaaS)
Software as a Service provides applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
In the software as a service (SaaS) model, users gain access to application software and databases. Cloud providers manage the infrastructure and platforms that run the applications. SaaS is sometimes referred to as "on-demand software" and is usually priced on a pay-per-use basis or using a subscription fee.
In the SaaS model, cloud providers install and operate application software in the cloud and cloud users access the software from cloud clients. Cloud users do not manage the cloud infrastructure and platform where the application runs. This eliminates the need to install and run the application on the cloud user's own computers, which simplifies maintenance and support. Cloud applications differ from other applications in their scalability—which can be achieved by cloning tasks onto multiple virtual machines at run-time to meet changing work demands. Load balancers distribute the work over the set of virtual machines. This process is transparent to the cloud user, who sees only a single access-point. To accommodate a large number of cloud users, cloud applications can be multitenant, meaning that any machine may serve more than one cloud-user organization.
The pricing model for SaaS applications typically can be per minute, hourly, monthly or yearly flat fee per user, so prices become scalable and adjustable if users are added or removed at any point.
SaaS gives a business the potential to reduce IT operational costs by outsourcing hardware and software maintenance and support to the cloud provider. This enables the business to reallocate IT operations costs away from hardware/software spending and from personnel expenses, towards meeting other goals. In addition, with applications hosted centrally, updates can be released without the need for users to install new software. One drawback for SaaS could be with storing the users' data on the cloud provider's server.
Platform as a Service (PaaS)
Platform as a Service provides an option to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. You do not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but have control over the deployed applications and possibly configuration settings for the application-hosting environment.
PaaS vendors offer a development environment to application developers. The provider typically develops toolkit and standards for development and channels for distribution and payment. In the PaaS models, cloud providers deliver a computing platform, typically including operating system, programming-language execution environment, database, and web server. Application developers can develop and run their software solutions on a cloud platform without the cost and complexity of buying and managing the underlying hardware and software layers. With some PaaS offers like Microsoft Azure and Google App Engine, the underlying computer and storage resources scale automatically to match application demand so that the cloud user does not have to allocate resources manually. The latter has also been proposed by an architecture aiming to facilitate real-time in cloud environments.
Platform as a Service (PaaS) consumers do not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but have control over the deployed applications and possibly configuration settings for the application-hosting environment.
Infrastructure as a Service (IaaS)
Infrastructure as a Service provides the option to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. You do not manage or control the underlying cloud infrastructure but have control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).
Mobile backend as a service (MBaaS) or (BaaS)
With mobile backend as a service (MBaaS) model, also known as "backend as a service" (BaaS), web app and mobile app developers are provided with a way to link their applications to cloud storage and cloud computing services with application programming interfaces (APIs) exposed to their applications and custom software development kits (SDKs). Services include user management, push notifications, integration with social networking services and more. This is a relatively recent model in cloud computing, with most BaaS startups dating from 2011 or later but trends indicate that these services are gaining significant mainstream traction with enterprise consumers.
Serverless computing is a cloud computing code execution model in which the cloud provider fully manages starting and stopping virtual machines as necessary to serve requests, and requests are billed by an abstract measure of the resources required to satisfy the request, rather than per virtual machine, per hour.
Despite the name, it does not actually involve running code without servers. Serverless computing is so named because the business or person that owns the system does not have to purchase, rent or provision servers or virtual machines for the back-end code to run on.
An example of these service are AWS Lamdba or Azure Functions.
Public Private Hybrid Cloud
A cloud is called a "public cloud" when the services are rendered over a network that is open for public users.
Private cloud is cloud infrastructure operated solely for a single organization, whether managed internally or by a third-party, and hosted either internally or externally.
Hybrid cloud is a composition of two clouds, where you might join your private cloud to a public cloud.