Cloud Computing Concepts

Introduction

NIST Definition of Cloud Computing: “Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”[1]

Five characteristics of cloud computing [1]:
1. On-demand self-service
2. Ubiquitous network access
3. Resource pooling
4. Rapid elasticity
5. Measured service

Service models of cloud computing[1]:
1. Software as a service (SaaS)
2. Platform as a service (PaaS)
3. Infrastructure as a service (IaaS)

Deployment Models[1]:
1. Public cloud
2. Private cloud
3. Community Cloud
4. Hybrid Cloud

Important Concepts

1. Hypervisor
2. Hardware-assisted Virtualization
3. OS-level virtualization
4. Hardware Virtualization / Platform Virtualization

5. Application virtualization
6. Commodity hardware vs. server-class hardware

Container Lifecycle

Container Architecture and Components – Image Courtesy
Image Courtesy – Wikipedia
  • Ansible is an open-source IT automation engine
  • Puppet is the industry standard for IT automation.
  • Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
  • Kubeflow – The Machine Learning Toolkit for Kubernetes.
  • seldon.io – Machine learning deployment for enterprise
  • MLRun – The Open-Source MLOps Orchestration Framework