Understanding Cloud Computing Architecture - Part I


“I don’t need a hard disk in my computer if I can get to the server faster… carrying around these non-connected computers is byzantine by comparison.” ~ Steve Jobs, Co-founder, CEO, and Chairman of Apple Inc.


Cloud computing is a natural extension of many of the design principles, protocols, plumbing and systems that have been developed over the past 20 years. Utility-oriented data centers are the first outcome of Cloud-computing and they serve as the infrastructure through which the services are implemented and delivered.

Cloud computing requires some standard protocols with which different layers of hardware, software and clients can communicate with one another. The cloud-computing paradigm emerged as a result of the convergence of various existing models, technologies, and concepts, which changed the way we deliver and use IT services. A broad definition of the phenomenon could then be as follows:


Cloud computing is a utility-oriented and Internet-centric way of delivering IT services on demand. These services cover the entire computing stack: from the hardware infrastructure packaged as a set of virtual machines to software services such as development platforms and distributed applications.



This definition captures the most important and fundamental aspects of Cloud computing. The most commonly used set of protocols uses XML as the messaging format, the Simple Object Access Protocol(SOAP) protocol as the object model and a set of discovery and description protocols based on the Web Services Description Language(WSDL) to manage transactions.


Cloud Reference Model


Architecture

Microsoft Hyper-V Architecture

Cloud resources are harnessed to offer "computing/horsepower" required for providing services. Often, this layer is implemented by using a datacenter in which hundreds and thousands of nodes are stacked together. Cloud infrastructure can be in heterogeneous nature as a variety of resources such as clusters and even networked PCs can be used to build it. Moreover, database systems and storage services can also be part of the infrastructure.

Cloud services from different providers can be composed together to provide a completely integrated solution covering all the computing stack of a system. Infrastructure-as-a-Service (IaaS) providers can offer the bare metal in terms of virtual machines where Platform-as-a-Service (PaaS) solutions are deployed. When there is no need for a PaaS-layer, it is possible to directly customize the virtual Web farms: a distributed system composed by Web Servers, database servers, and load.


Infrastructure/Hardware as a Service


Infrastructure and Hardware as Service solutions are the most popular and developed market segment of Cloud computing. They deliver customizable infrastructure on demand. The available options within the IaaS-offering umbrella range from single servers to entire infrastructures including network devices, load balancers, database, and Web servers.


Infrastructure as a Service refernce Implementation

IaaS/HaaS solutions bring all the benefits of hardware virtualization: workload partitioning, application isolation, sandboxing and hardware tuning. From the perspective of the service provider, it allows better exploitation of the IT infrastructure and provides a more secure environment for executing third-party applications. from the perspective of the customer, it reduces the administration and maintenance cost as well as the capital costs allowed to purchase hardware. At the same time, users can take advantage of the full customization offered by virtualization to deploy their infrastructure in the Cloud.


Platform as a Service (PaaS)


Platform as a service (PaaS) is a cloud computing model in which a third-party provider delivers hardware and software tools -- usually those needed for application development -- to users over the internet. A PaaS provider hosts the hardware and software on its own infrastructure. As a result, PaaS frees developers from having to install in-house hardware and software to develop or run a new application.


Platform as a Service (PaaS)

PaaS does not typically replace a business's entire IT infrastructure. Instead, it tends to incorporate various underlying cloud infrastructure components, such as operating systems, servers, databases, middleware, networking equipment and storage services. Each of these functions is owned, operated, configured and maintained by the service provider. PaaS also provides additional resources, including database management systems, programming languages, libraries and various development tools.

A PaaS provider builds and supplies a resilient and optimized environment on which users can install applications and data sets. Users can focus on creating and running applications rather than constructing and maintaining the underlying infrastructure and services.


PaaS Examples:

1) OpenShift

OpenShift is an on-premises containerization PaaS software.


2) Google App Engine

Google App Engine allows developers to build and host web applications in cloud-based data centers that Google manages.


Software as a Service (SaaS)


Software-as-a-Service (SaaS) is a software delivery model providing access to applications through the Internet as a Web-based service. It provides a means to free users from complex hardware and software management by offloading such tasks to third parties, who build applications accessible to multiple users through a Web browser.

In the software as a service model, the application, or service, is deployed from a centralized data center across a network- Internet, Intranet, LAN, or VPN - providing access and use on a recurring fee basis.

Software-as-a-Service applications can serve different needs. CRM, ERP, and social networking applications are the most popular ones. SalesForce.com is probably the most successful and popular example of CRM service.


Amazon Relational Database Service (RDS)


Amazon Relational Database Service (Amazon RDS) makes it easy to set up, operate, and scale a relational database in the cloud. It provides cost-efficient and resizable capacity while automating time-consuming administration tasks such as hardware provisioning, database setup, patching and backups. It frees you to focus on your applications so you can give them the fast performance, high availability, security and compatibility they need.


Amazon RDS

Amazon RDS is available on several database instance types - optimized for memory, performance or I/O - and provides you with six familiar database engines to choose from, including Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database, and SQL Server. You can use the AWS Database Migration Service to easily migrate or replicate your existing databases to Amazon RDS.


Features:

1) Lower Administration Burden

Easy to use, automatic software patching, best practice recommendations.

You can use the AWS Management Console, or simple API calls to access the capabilities of a production-ready relational database in minutes.

Amazon RDS database instances are pre-configured with parameters and settings appropriate for the engine and class you have selected.

Amazon RDS will make sure that the relational database software powering your deployment stays up-to-date with the latest patches. You can exert optional control over when and if your database instance is patched.


2) Performance

General Purpose (SSD) Storage, Provisional IOPS (SSD) Storage.


3) Scalability

Push-button compute scaling, easy storage scaling, Read Replicas.

You can scale the compute and memory resources powering your deployment up or down, up to a maximum of 32 vCPUs and 244 GiB of RAM. Compute scaling operations typically complete in a few minutes.

As your storage requirements grow, you can also provision additional storage. The Amazon Aurora engine will automatically grow the size of your database volume as your database storage needs grow, up to a maximum of 64 TB or a maximum you define. The MySQL, MariaDB, Oracle, and PostgreSQL engines allow you to scale up to 64 TB of storage and SQL Server supports up to 16 TB.


4) Availability and Durability

Automated backups, Database snapshots, Multi- AZ deployments, Automatic host replacement.

The automated backup feature of Amazon RDS enables point-in-time recovery for your database instance. Amazon RDS will backup your database and transaction logs and store both for a user-specified retention period. This allows you to restore your database instance to any second during your retention period, up to the last five minutes.

Database snapshots are user-initiated backups of your instance stored in Amazon S3 that are kept until you explicitly delete them. You can create a new instance from a database snapshots whenever you desire.


5) Security

Encryption at rest and in transit, Network isolation, Resource-level permissions.

Amazon RDS allows you to encrypt your databases using keys you manage through AWS Key Management Service (KMS). On a database instance running with Amazon RDS encryption, data stored at rest in the underlying storage is encrypted, as are its automated backups, read replicas, and snapshots.

AWS recommends that you run your database instances in Amazon VPC, which allows you isolate your database in your own virtual network and connect to your on-premises IT infrastructure using industry-standard encrypted IPsec VPNs. You can configure firewall settings and control network access to your database instances.


6) Manageability

Monitoring and metrics, Event notifications, configuration governance.


7) Cost-effectiveness

Pay only for what you use, reserved instances, stop and start.


Virtual Appliances


Applications such as Web server or database server that can run on a virtual machine image are referred to as virtual appliances. The name virtual appliance is a little misleading because it conjures up the image of a machine that serves a narrow purpose.

A virtual appliance is a common deployment object in the cloud, and it is one area where there are considerable activity and innovation. Virtual appliances are far easier to install and run than an application that you must set up yourself. however, virtual appliances are also much larger than the application themselves would be because they are usually bundled with the operating system on which they are meant to run.

Among the other places you can find virtual appliances are at the Web sites of the various operating system vendors, such as Ubuntu, Xen, and others, including these

[CloudHSM]


“Line-of-business leaders everywhere are bypassing IT departments to get applications from the cloud (also known as software as a service, or SaaS) and paying for them like they would a magazine subscription. And when the service is no longer required, they can cancel that subscription with no equipment left unused in the corner.” ~ Daryl Plummer, Managing Vice President, and Distinguished Analyst at Gartner


This was the Part-I of an article on Cloud Architecture. For further information and articles stay tuned to here.


To contact the author, mail here subhayu.roy2001@gmail.com

Subscribe to HacLabs newsletter

Get priority notification on the release of the latest articles.

  • YouTube
  • Twitter
  • Instagram
  • Linkedin

© 2020 by HacLabs.