Get in Touch

Course Outline

Virtualization Details

  1. Overview of Operating System Concepts: CPU, Memory, Network, and Storage
  2. Hypervisor
    1. Concept of the "Supervisor of Supervisors"
    2. Understanding the "Host" machine and "guest" OS
    3. Difference between Type-1 and Type-2 Hypervisors
    4. Examples: Citrix XEN, VMware ESX/ESXi, MS Hyper-V, IBM LPAR
  3. Network Virtualization
    1. Brief introduction to the 7-Layer OSI Model
    2. Focus on the Network layer
    3. TCP/IP Model or Internet Protocol
  4. Focus on a Single Vertical
    1. Application Layer: SSL
    2. Network Layer: TCP
    3. Internet Layer: IPv4/IPv6
    4. Link Layer: Ethernet
  5. Packet Structure
    1. Addressing: IP Address and Domain Names
    2. Firewall, Load Balancer, Router, and Adapter
    3. Virtualized Network
    4. Higher-order abstractions: Subnets and Zones
  6. Hands-on Exercise:
    1. Familiarize yourself with the ESXi cluster and vSphere client.
    2. Create and update networks in the ESXi Cluster, deploy guests from VMDK packages, and enable inter-connectivity between guests within an ESXi cluster.
    3. Make modifications to a running VM instance and capture a snapshot.
    4. Update firewall rules in ESXi using the vSphere client.

2. Cloud Computing: A Paradigm Shift

  1. A fast and cost-effective route to making products/solutions available to the world
  2. Resource Sharing
    1. Virtualization of a virtualized environment
  3. Key Benefits:
    1. On-demand Resource Elasticity
      1. Ideate - Code - Deploy without needing dedicated infrastructure
      2. Rapid CI/CD pipelines
    2. Environment Isolation and Vertical Autonomy
    3. Security Through Layering
    4. Expense Optimization
  4. On-premise Cloud and Cloud Providers
  5. Cloud as an Effective Conceptual Abstraction for Distributed Computing

3. Introduction to Cloud Solution Layers:

  1. IaaS (Infrastructure as a Service)
    1. AWS, Azure, Google
    2. Choose one Provider to continue with later. AWS is recommended.
      1. Introduction to AWS VPC, AWS EC2, etc.
  2. PaaS (Platform as a Service)
    1. AWS, Azure, Google, CloudFoundry, Heroku
    2. Introduction to AWS DynamoDB, AWS Kinesis, etc.
  3. SaaS (Software as a Service)
    1. Very brief overview
    2. Microsoft Office, Confluence, Salesforce, Slack
  4. SaaS builds on PaaS, which builds on IaaS, which builds on Virtualization

4. IaaS Cloud Hands-on Project

  1. The project uses AWS as the IaaS Cloud Provider
  2. Use CentOS/RHEL as the operating system for the rest of the exercise
    1. Alternatively, Ubuntu can be used, but RHEL/CentOS are preferred
  3. Obtain individual AWS IAM accounts from your cloud admin
  4. Each student must perform these steps independently
    1. The ability to carve out your own entire infrastructure on-demand is the best demonstration of the power of cloud computing
    2. Use AWS Wizards and the AWS online consoles to accomplish these tasks unless otherwise mentioned
  5. Create a public VPC in the us-east-1 Region
    1. Create Two Subnets (Subnet-1 and Subnet-2) in two different Availability Zones
      1. See https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenarios.html for reference.
    2. Create three separate Security Groups
      1. SG-Internet
        1. Allows incoming traffic from the Internet on https port 443 and http port 80
        2. No other incoming connections allowed
      2. SG-Service
        1. Allows incoming traffic only from security group SG-Internet on https port 443 and http port 80
        2. Allows ICMP only from SG-Internet
        3. No other incoming connections allowed
      3. SG-SSH:
        1. Allows SSH port 22 incoming connections only from a single IP that matches the public IP of the student’s lab machine. If the lab machine is behind a proxy, use the public IP of the proxy.
  6. Deploy an instance of an AMI pertaining to your chosen OS -- preferably the latest RHEL/CentOS versions available in AMIs -- and host the instance on Subnet-1. Attach the instance to SG-Service and SG-SSH groups.
  7. Access the instance using SSH from your lab machine.
  8. Install the NGINX server on this instance.
  9. Place static contents of your choice -- such as HTML pages and images -- to be served by NGINX (on port 80 over HTTP) and define URLs for them.
  10. Test the URL from that machine itself.
  11. Create an AMI image from this running instance.
  12. Deploy that new AMI and host the instance on Subnet-2. Attach the instance to SG-Service and SG-SSH groups.
  13. Run the NGINX server and validate that the access URL for the static content created in step (i) works.
  14. Create a new "classic" Elastic Load Balancer and attach it to SG-Internet.
    1. Note the difference from Application Load Balancer and Network Load Balancer.
  15. Create a routing rule forwarding all http port 80 and https port 443 traffic to an instance group comprising the two instances created above.
  16. Using any certificate management tool (e.g., Java keytool), create a key-pair and self-signed certificate, and import the certificate to AWS Certificate Manager (ACM).

5. Cloud Monitoring: Introduction and Hands-on Project

  1. AWS CloudWatch metrics
  2. Go to the AWS CloudWatch dashboard for the instances
    1. Retrieve the relevant metrics and explain the variability with time
      1. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html
  3. Go to the AWS CloudWatch dashboard for the ELB
    1. Observe the ELB metrics and explain their variability with time
    2. https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-cloudwatch-metrics.html

6. Advanced Concepts for Further Learning

  1. Hybrid Cloud -- on-premise and public cloud
  2. Migration: On-premise to public cloud
    1. Application code migration
    2. Database migration
  3. DevOps
    1. Infrastructure as Code
    2. AWS CloudFormation Template
  4. Auto-scaling
    1. Using AWS CloudWatch metrics to determine health

Requirements

There are no specific prerequisites required to attend this course.

Audience

Software Engineers and Computer Scientists who possess a solid understanding of algorithms and are familiar with at least one programming or scripting language, but have no prior experience with Cloud Computing.

 21 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories