Cloud Computing Core Concepts

Photo by Farzad on Unsplash

Cloud Computing Core Concepts

·

5 min read

Cloud computing

Cloud computing as it is commonly known is the leveraging of pools of computing resources to minimize and maximize computing efficiency. In the past, hosting applications and data meant renting or building data center spaces to house the millions worth of hardware and software assets you needed to buy. Cloud platforms provide the ability to leverage remote systems on demand over the open internet.

Why Cloud Computing,

  1. Saves money and time
  2. Scalability is independent - an organization/individual can scale down or up whenever they need to without the need of the cloud platform providers
  3. Resource pooling - able to access resources, leverage them for a period of time, and return them to the resource pool for others to utilize
  4. Rapid elasticity - the ability to pay for only the resources that you use, the ability to scale up and scale back as needed saves one and offers the much-needed convenience.

Cloud computing is not necessarily new, but it is an evolution of two technologies; time-sharing, and distributed technologies.

Time-sharing; allows users to share resources of a large system.

Distributed computing; decentralizes computing resources and shares the workload among many computers.

There are various models in which one can deploy or utilize the cloud. The two major ones are;

1. Private Cloud - The hardware which the cloud uses is only for your organization's use. Private cloud deployment provides the best security and optimum performance over the public cloud.

2. Public cloud - In the public cloud, the resources used by an organization's cloud are shared by other organizations.

There are also other two models Community and Hybrid which are derivations of the two above.

Understanding cloud types

Cloud computing allows one to pay for resources that you only need. Computing resources are usually organized into clusters where a group of servers and other resources are usually pooled together. A company may spin up computer and storage resources within a cluster or multiple clusters to add capacity at a critical time of day for your business, but then release them when you have no need for them as such the resources go back into the resource pool and another organization may use them. This prevents one from acquiring Hardware and Software well ahead of demand and time. This can be done via different cloud types/delivery models.

  1. Software as a service (Saas) - an application that you rent over the internet
  2. Platform as a service (Paas) - an on-demand application testing and deployment
  3. Infrastructure as a service (Iaas) - this is basically storage, compute, and other infrastructure services that one leverages from the cloud

Software as a Service

This means that a third-party provider hosts application software on behalf of the end user. Saas is more of applications that are delivered through the web browser. Saas provides;

  • replacement of traditional enterprise applications
  • unlimited scalability updates are continuous and automatic

Examples of Saas platforms are; google apps(spreadsheets, docs, presentations .. etc), Microsoft 365(Microsoft office- word, excel, ...)

Business case for Saas;

  • With Saas, one can avoid buying hardware and software in support of an on-premise business application
  • Saas shifts the risk to the Saas cloud provider
  • Subscription-based thus allowing you to align your usage directly with spending.
  • Supports pervasive application delivery

Infrastructure as a Service

Iaas can be used to leverage resources traditionally found in an organization's data center such as storage and computing. In Iaas, third-party providers host hardware, software, servers, storage, and other infrastructure components on behalf of the end user. Iaas can also provide application and data hosting for existing enterprise workloads such as applications ad databases. These infrastructure services can be used for any purpose such as hosting an application or data. Iaas clouds are the fastest growing type of cloud with AWS, and GCP being major players. Iaas cloud can be deployed as a private, public, or hybrid cloud.

Business case for Iaas;

  • The main value of Iaas is avoiding the expense of buying hardware or software. This means shifting spending from Capital expenditure to Operational expenditure. When leveraging an Iaas you only pay for the services that you use. Iaas providers may choose to bill by time or by volume used.
  • Iaas clouds provide elastic scaling; which is scaling up or down.
  • And also shifting risk to the cloud provider means that we're letting the cloud provider take care of hardware and software.

Platform as a Service

This means that a third-party provider provides application development, testing, deployment, and hosting services as a service. This provides efficient application development platforms that can be leveraged by enterprises to make application development cost-effective.

Business case;

  • Paas provides complete development, testing, and deployment platforms that most enterprises will find more turnkey than traditional development workflow.
  • It also reduces the complexity of application development by keeping the developers inside of a well-defined environment that limits the ability of the developers to make mistakes.
  • Paas supports most Infrastructure as a service(Iaas) cloud providers.

Migrating to the Cloud

To successfully migrate large application portfolios to the cloud requires that we think and plan strategically. Thus we strive to understand what we need ahead of time. To accomplish this we have to;

  1. rapidly iterate through feedback loops from all the application users.
  2. automate, measure, and continuously improve the application migration process
  3. make sure that you scale in an accelerating space, meaning that you can migrate more applications in a period of time as time progresses.

When migrating an application there could be some changes, i.e for an application whose database is tightly coupled to the application itself, it might have to be decoupled while moving to the cloud. Thus the need to plan strategically.

Migration steps;

  • Breadth analysis; seeking to understand the basics of each application and determine what needs to be done to move it to the cloud.

  • Focus on modernization; meaning that you'll be looking for opportunities to improve the applications before they migrate and also continuously.

All the developments in cloud computing are leading us to the establishment of cloud computing as a common practice in technology. They are also leading us to the emergence of new cloud capabilities such as machine learning and big data analytics and also to the mass migration of applications to cloud-based platforms.