Skip to content

Instantly share code, notes, and snippets.

@owans
Last active May 12, 2020 22:48
Show Gist options
  • Save owans/3eece0b51dfef0a7bfd20ff102649bb9 to your computer and use it in GitHub Desktop.
Save owans/3eece0b51dfef0a7bfd20ff102649bb9 to your computer and use it in GitHub Desktop.
This is a gist about all I learnt from PluralSight with Andela Cloud Developer Scholarship

Cloud Computing Day 1: 20200511

What Is Cloud Computing?

NB: The cloud is not the same thing as the internet

General Benefits of Cloud Computing

  • Cost
  • Convenience
  • Speed
  • Features

Characteristics of Cloud Computing

Qualities common to all cloud services

  • Internet Connected: The internet is the underlying technology that enables all these services to be connected
  • Third party Hardware: Previously the aim of setting up data centers was for internal use by the company, but with cloud computing Companies can let other business use a portion of their resources as third party hardware for a fee. for storage, files, document, data, websites, backups, hosting, email server, database etc.
  • Self Service on Demand: Cloud comouting enables us easily get information faster, for e.g using the old way we have to;
  1. Wait for a contact number
  2. Wait for a sales rep
  3. Call the data center
  4. Wait for a quote
  5. Write a PO
  6. Wait for provisioning
  7. Setup billing terms With cloud comouting you shouldn't have to wait for all these listed items but can get what you need immediately, because all of these comoanies all have software, and your request can be provisoned within minutes and your receive a response. It remives the need for human interaction
  • Resource Pooling: Before Cloud computing, if you didn't have your own data centers but wanted to use somebody else's, there were a few ways to do it
  1. Rent a space in the data center building, an entire room or just a server rack. The company who owns the data center would take care of the building, electricity, data, air conditioning, server rackets etc. but you would have to bring along your own server that is already setup and plug into a racket. This is called Colocation or Colo.

  2. The company who owns the data center provides a bank of servers You could arrange to rent one, two or three of those servers and it would be dedicated to you, but what you will be paying for is the usage of individual piece of hardware(servers)

With Cloud Computing, we are not dealing with all these, instead we get access to a large pool of shared resources. This eans for e.g, if you sign up to a cloud platform your name is not manually put into the servers, but you are automatically connected to a system of massive storage comouting infrastructure. This means whatever you upload to the cloud is automatically allocated to a hard drive somewhere, and sometimes to multiple hard drives so there's redundancy in case of failures. One advantage of pooled resources is that it is much more tolerant to any kind of failure, if one hard drive fails it just doesn't matter because that file is stored on multiple drives, the system itself can detect a failed drive, can avoid it and allocate another drive in the pool to perform the same function, this means it doesn't require human intervention and because resources are pooled we can support more users at the same time, it's cheaper, better protected from single points of failure.

Everything As A Service

Categories Of Cloud Services

  1. Software As A Service(SaaS) No need to download the application to your system, software runs oon the cloud making it possible t=for one to access the software from the website. E.g Google Docs, Slack, OneDrive, Dropbox. With SaaS, you don't own the software it's most commonly a subscription model. The downside here is they are not your application, so for serious business needs you may not need a SaaS model.

Typical audience: Anyone

  1. infrastructure As A Service(IaaS) This involves a cloud service provider granting one deeper access to the resources of a cloud computing data center, this includes servers, storage, networking to build applications on. E.g AWS, GCP, Alibaba. Here you are not going to get dedicated access to one machine of these cloud service providers in their data centers what they offer to you for use is a machine in form of a virtual machine. This is known as Virtualizaton because the VMs can be moved, copied. This brings about the term Multitenancy - refers to multiple user renting and spending time on the same shared computing resources, this means it supports multiple tenanaple tenants on the same server. In a managed cloud environment, all these tenants have no idea that the other tenants exists even though it's right beside them because they are isolated from each other, this means one VM cannot access the code, storage, traffic of another unless they're explicity allowed to.

A typical user of IaaS: IT professionals, Sysadmin

  1. Platform As A Service(PaaS) This is the automating of repeated task packaged to provide a development environment in the cloud, for e.g the cloud service provider could setup the database environment such as Heroku to enable you use the development platform on the cloud without having to worry about configuration, patches, updates, scaling to accommodate more users etc.

Typical users of PaaS: Software Developers

Cloud Deployment Options

  1. Public Cloud: This is the mostly used option and offers all the benefits of the characteristics listed above. Computing resources are owned, managed by a third part multitenancy. This could also be made private for an org but in aa different network with an extra layer of aythentication but is more expensive.
  2. Private Cloud: Computing resources are for exclusive use of one organization
  3. Hybrid Cloud: Combining on-premises with public/private cloud infrastructure. communicating, and ochestrating, between different deployments. Here the applications talks to themselves using APIs and shared workloads.
  4. Multi Cloud: Combining services from more than one cloud service provider

Elastic and Serverless Computing

As the term implies, elasticity in cloud computing refers to the ability of servers, storage, networking, to automatically adjust to different levels of demand.

Difference between Elasticity and Scaling

Elasticity is akey benefit of cloud computing. It refers to being able to scale up and scale down automatically, this ensures that when a resources is not being used at the moment you don't have to pay for them.

Serverless Computing

This does not mean no servers, it still uses a server, but for software developers it's a way to run code without thinking of the server. It gives the ability to create applications and call it from just a few lines of code, on demand, and would would only be charged when that particular code is called.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment