1. Cloud Computing Concepts

Developer requires computing capacity, databases, storage, and other IT resources(networking) for business application development. Organizations must procure the required hardware and configure it before starting the software development process – which needs upfront investment, and the entire process takes time – which delays the go-to-market time. Also, it may happen, the entire resource capacity might not be utilized initially which is bought. So, in summary, the business is experiencing – upfront investment, unutilized capacity of resources, delay in getting production-ready etc. Can be there any solution to avoid these bottlenecks? Yes. That is what Cloud computing provides. Cloud computing is a service which enables on-demand resource delivery for – compute, database, storage, networking etc., provides rapid access to low-cost IT resources and brings pay-as-you-go pricing for the resources – pay only what you use.


1.1 Virtualization

Virtualization


1.2 Virtual Machine

Virtual Machine


1.3 Container

Container


1.4 Docker

Docker


2. Cloud Computing Benefits

2.1 Agility

Agile means to move quickly or think and understand quickly. Cloud Computing aids rapid resource provisioning so developer can commence the coding process quickly. It means getting a compute or storage resources in few minutes instead of traditional IT resources provisioning in weeks or months in old days. This is IT agility. How does this IT agility it helps businesses? Shortening the IT resources provisioning lifecycle also shortens the application development lifecycle leading businesses to launch the product in market quickly, respond to new opportunities or fulfil changes for customer demand quickly. So, it brings the business agility as well for the organizations. Organization can go to production in a week, do rapid prototyping in few days.


Cloud Agility

2.2 Elasticity

Elasticity means ability to change or adapt. In cloud computer, the cloud providers offer provisioning more resources – compute, database, storage etc. spontaneously while businesses demand more capacity; deprovisioning the additional resources automatically while the resource demand goes down by reducing the resource capacity – thus minimize the organization’s infrastructure cost. As an example, for certain e-commerce organizations, the user’s sales go very high during festive seasons – so it needs more resources capacity say few more servers and once the festive seasons are over, these additional servers are no longer required, so it will be deprovisioned. Here organization requires to pay cost only for the festive season for the additional servers based on its usage. Thus, system is capable to grow and shrink dynamically based on the variability of resource demand. But in traditional way (non-cloud computing environments) before cloud computing, organization need to buy 5 more servers and utilized only during festive seasons and under-utilized for the rest of the year augmenting the cost burden of managing and maintaining the servers – with OS upgrades, patches, failures etc.


2.3 Economy of Scale

Cloud service providers do aggregation on the usage of the resources consumed by millions customer in the cloud – which leads to better economies of scale; so, can offer lower pay-as-you-go prices.


2.4 Global Reach

Cloud infrastructure resources span across the globe within multiple geographic regions. It helps organizations to deploy their applications in different regions which are close to their customers meeting the best throughput and low latency for the business.


2.5 High Availability

High Availability means business applications and services are accessible to users and remain operational or running in the event of failure. Cloud computing supports the design of creating multiple resources - like applications are deployed into multiple servers, so if one server fails, user requests are switched to alternate or backup servers. This way, customers can access the application all the time even if certain failure occurs – thus keep the customer delighted and maintain trust high all time.


2.6 Pay-as-you-go Pricing

Pay-As-You-Go (PAYG) pricing model is very simple and flexible lets users to pay based on the usage. This is a consumption-based model. Cloud Service providers charges organizations based on the compute, storage, database, network etc. resources usage. For example, business owners pays only for the unit of time CPU is running or volume of data (in GB) transferred or volume of data (in GB) stored etc. Thus, it ensures cost-efficiency as well as guarantees that no resource waste is made if design is made correctly.


2.7 Reliability

Reliability of cloud computing determines the ability of applications and services to run or perform consistently and correctly with desired functionality and intended behaviour even during the event of significant disruptions. Resiliency design in cloud computing will ensure that system will detect failure and recover or heal itself automatically making the system reliable. Resiliency means the system can absorb certain failures and remain functional recovering from the certain unexpected disruptions or failures. Thus, we can say reliability is the result and resiliency are the way the result is achieved.


2.8 Security

Security protects organization’s asset – applications, services, data, servers from illegitimate access by intruders. Every cloud provider builds security design at the core of their infrastructure to fulfil organization’s unique goal of security requirements.


2.9 Scalability

Scalability means the ability to change the size or scale. In cloud computing, scalability is the ability to sustain the system’s performance with increasing workload with the same hardware resources. Scalable design offers the system to be robust, capable of handling gradual incremental cloud workload bringing long-term business growth over the time whereas elastic design caters the system to respond immediately against the variable shift in cloud resource demand for the change in workload.

Cloud service provider assists Vertical scaling – either ‘scale up’ by adding more capabilities to an existing cloud resource – for example a cloud server – upgrading it with more CPU, RAM, storage etc. or ‘scale down’ by decreasing capabilities downgrading the existing server lowering CPU, RAM, and storage etc.

On the other hand, Cloud computing supports horizontal scaling (scale-in or scale-out) by distributing workload across multiple servers or nodes adding more resources to increase the performance and storage ability.


2.10 Value Addition to Business

Organization simply can focus on the actual business functionality implementation rather than spending time and effort in managing and maintaining the infrastructure – its OS upgrade, security patches, error recovery etc. – the heavy lifting task is taken care of automatically by the provider itself. Business team can thus add more value to business with effortless management of IT systems provided by cloud computing.


Next