Course Outline


Objectives

By the end of the training, participants will not only have a conceptual understanding of cloud computing, but also be in a position to assess their application objectives and decide how to deploy their application in the cloud with ease. Participants will get a good understanding of the important aspects of cloud computing, the tooling used, and how to engineer their applications to work in the cloud. The training will also give a hands-on introduction to Amazon Web Services and PAAS solutions like Google AppEngine.

Pre-requisites

  • Participants are expected to be familiar with basic Linux commands and terminologies

Lab Setup

Hardware Configuration

Participants must have access to a system with the following hardware configuration:

  • 4GB of free RAM, 20GB of free disk space and full network connectivity
  • Access to the BIOS
  • Virtualization support in the CPU

Software configuration

  • Native installation of Ubuntu 16.04 Desktop Edition (sudo/root access required)
  • QEMU and KVM (instructions to install this will be covered during the training)
  • Python
  • Chrome browser

Duration

  • 2-5 days (covering a subset of the topics - contact us for more information/customization)

Course Outline for Cloud Computing

Introduction to Cloud Computing
  • A short history
  • Client Server Computing Concepts
  • Challenges with Distributed Computing
  • Introduction to Cloud Computing
  • Why Cloud Computing?
  • Benefits of Cloud Computing
Networking Basics
  • Understanding Networking Concepts
  • TCP/IP
  • Application Protocols
  • Understanding Linux Files and Network Tooling
  • ifconfig
  • dig
  • ping
  • traceroute
  • netstat
  • tcpdump
  • resolv.conf
  • ssh
  • scp/rsh
Characteristics of Cloud Computing
  • API based access
  • Cost
  • Device independence
  • Virtualization
  • Multitenancy
Types of Cloud Computing
  • Software as a Service
  • Platform as a Service
  • Infrastructure as a Service
  • Other XaaS's
Cloud Deployment Models
  • Public Cloud
  • Private Cloud
  • Hybrid Cloud
  • When to choose what?
Cloud Computing Issues
  • Privacy
  • Compliance
  • Legality
  • Security
Virtualization
  • Introduction to Virtualization
  • Role of Virtualization in Cloud Computing
  • Types of Virtualization
  • Examples of Virtualization
  • Benefits of Virtualization
  • Virtualization terminologies
  • Emulator
  • Hypervisor
  • Backup and Snapshotting
  • Failover
  • Examples of Virtualization
  • VMware
  • Virtualbox
  • Qemu/KVM
Virtualization Hands-on Session 1
  • Installing Virtual Machine Manager
  • Configuration of the host machine
  • Network configuration
  • Creating Virtual Machines
  • Allocating Resources
  • Installing guest machines
  • Running guest machines
Virtualization Hands-on Session 2
  • Creating disk images
  • Cloning disk images
  • Learning to setup mini cloud environments
  • Inter-machine communication
  • Setting up 2-way communication between a guest and a host
  • Setting up 2-way communication between 2 guests
  • Passwordless SSH setup
  • Setting up a simple 3 layered web application in the virtualized environment
Cloud Computing - Analyzing the Space
  • Major cloud providers
  • Important cloud related software
Cloud Architectures
  • Understanding the idea of total replication
  • Stateless architectures
  • REST and HATEOAS
  • Building for the cloud - Thinking in terms of cloud architectures
  • Handling failures in the cloud
Web Application Engineering in the Cloud
  • DNS
  • Load Balancer
  • Web Servers
  • Application Servers
  • Scaling web and application servers
  • Data stores/Cloud Storage
  • Relational Databases
  • NoSQL databases
  • Scaling datastores
  • Storing and analyzing unstructured data in the cloud
  • Data Analysis and the Hadoop Ecosystem
  • Eliminating SPOFs
SAAS - Deep Dive
  • Understanding SAAS
  • SAAS Examples
  • Google Apps for the Enterprise
  • Force.com (from Salesforce)
SAAS Case Study - Google Apps for the Enterprise
  • Google Apps Setup
  • Google Mail
  • Google Drive
  • Google Apps Marketplace
PAAS - Deep Dive
  • Benefits of PAAS
  • Issues with PAAS
  • PAAS Examples
  • Google AppEngine
  • Heroku
  • Windows Azure
Google AppEngine
  • Creating a project
  • Building a simple Hello World App
  • Deploying the application
  • Testing the application
  • Managing the application via the Dashboard
IAAS - Deep Dive
  • Understanding cloud terminologies
  • Compute
  • Storage
  • Networking
  • Other services on the periphery
  • IAAS Providers
  • Amazon AWS
  • Google Compute Engine
Amazon Web Services (AWS)
  • Introduction to the AWS products
  • Amazon Elastic Compute Cloud (EC2)
  • Amazon Simple Storage Service (S3)
  • Elastic Block Storage (EBS)
  • Elastic Load Balancing (ELB)
  • Amazon Relational Database Service (RDS)
  • Amazon DynamoDB
  • Auto Scaling
  • Amazon ElastiCache
Amazon Web Services - Hands-on
  • Introduction to the AWS Management Console
  • Regions and Availability Zones - How to choose the right one
  • Amazon Machine Images (AMI)
  • Setting up security
  • Finding the right AMI
  • Launching an instance - How to choose the right instance type
  • Security via Key Pairs
  • Working with the Security Group
  • Assigning Elastic IPs
  • Creating your own AMI
  • Logging into the instance
Case Studies - Amazon Web Services
  • Building a simple web application in the cloud
  • Building a community based photo/video sharing site
  • Building an ad-serving site in the cloud
Introduction to Big Data
  • Data analysis in the cloud - an overview
  • Introduction to Hadoop and the Hadoop ecosystem
  • Hadoop Architecture
  • Using HDFS for distributed data storage
  • Amazon Elastic Map Reduce
  • Analyzing Common Crawl Data - a case study

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.