Get in Touch
 Duration 21 hours

Course Outline

Virtualization Fundamentals

  1. Overview of Operating System Concepts: CPU, Memory, Network, Storage
  2. Hypervisors
    1. The concept of a supervisor managing supervisors
    2. The distinction between "host" machines and "guest" operating systems
    3. Differences between Type-1 and Type-2 Hypervisors
    4. Examples: Citrix XEN, VMware ESX/ESXi, MS Hyper-V, IBM LPAR.
  3. Network Virtualization
    1. Overview of the 7-Layer OSI Model
    2. Specific focus on the Network layer
    3. The TCP/IP Model or Internet Protocol
  4. Deep dive into specific vertical layers
    1. Application Layer: SSL
    2. Network Layer: TCP
    3. Internet Layer: IPv4/IPv6
    4. Link Layer: Ethernet
  5. Packet Structure
    1. Addressing: IP Addresses and Domain Names
    2. Components: Firewalls, Load Balancers, Routers, Adapters
    3. Virtualized Networks
    4. Advanced abstractions: Subnets, Zones.
  6. Practical Exercise:
    1. Getting acquainted with ESXi clusters and the vSphere client.
    2. Creating/updating networks within an ESXi Cluster, deploying guests from VMDK packages, and enabling connectivity between guests in the cluster.
    3. Modifying a running VM instance and capturing a snapshot.
    4. Updating firewall rules in ESXi via the vSphere client.

2. Cloud Computing: A Paradigm Shift

  1. A rapid and cost-effective pathway to make products or solutions globally accessible
  2. Resource sharing
    1. Virtualization of the virtualized environment
  3. Primary advantages:
    1. On-demand resource elasticity
      1. Ideate, Code, and Deploy without the need for dedicated infrastructure
      2. Accelerated CI/CD pipelines
    2. Environment isolation and vertical autonomy
    3. Enhanced security through layering
    4. Cost optimization
  4. On-premise Cloud versus Cloud Providers
  5. Cloud as a powerful conceptual abstraction for distributed computing

3. Introduction to Cloud Service Layers

  1. IaaS (Infrastructure as a Service)
    1. Providers: AWS, Azure, Google
    2. Select one provider for subsequent exercises. AWS is recommended.
      1. Overview of AWS VPC, AWS EC2, and similar services.
  2. PaaS (Platform as a Service)
    1. Providers: AWS, Azure, Google, CloudFoundry, Heroku
    2. Overview of AWS DynamoDB, AWS Kinesis, and similar services.
  3. SaaS (Software as a Service)
    1. Brief overview
    2. Examples: Microsoft Office, Confluence, SalesForce, Slack
  4. The hierarchical relationship: SaaS built on PaaS, which is built on IaaS, which relies on Virtualization

4. IaaS Cloud Practical Project

  1. This project utilizes AWS as the IaaS Cloud Provider
  2. CentOS/RHEL is the preferred operating system for this exercise
    1. Ubuntu is also acceptable, but RHEL/CentOS is preferred
  3. Obtain individual AWS IAM accounts from your cloud administrator
  4. Each student must complete these steps independently
    1. Provisioning entire infrastructure on-demand independently is the best demonstration of cloud computing's power
    2. Utilize AWS Wizards or the online console to perform these tasks unless specified otherwise
  5. Create a public VPC in the us-east-1 Region
    1. Two Subnets (Subnet-1 and Subnet-2) across two different Availability Zones
      1. Refer to https://docs.aws.amazon.com/vpc/latest/userguide/ for guidance.
    2. Create three distinct Security Groups
      1. SG-Internet
        1. Permits incoming traffic from the Internet on https 443 and http 80
        2. Disables all other incoming connections
      2. SG-Service
        1. Permits incoming traffic only from the SG-Internet security group on https 443 and http 80
        2. Permits ICMP only from SG-Internet
        3. Disables all other incoming connections
      3. SG-SSH:
        1. Permits SSH:22 incoming connections only from a specific IP matching the student's lab machine's public IP. If the lab machine is behind a proxy, use the proxy's public IP.
  6. Deploy an AMI instance for your selected OS -- ideally the latest available RHEL/CentOS version -- and place it in Subnet-1. Assign the instance to the SG-Service and SG-SSH groups.
  7. Connect to the instance via SSH from your lab machine.
  8. Install the NGINX server on this instance
  9. Configure static content (e.g., HTML pages, images) to be served by NGINX on port 80 over HTTP and define the corresponding URLs.
  10. Verify the URL functionality from the local machine.
  11. Generate an AMI image from this running instance.
  12. Launch the new AMI and place the instance in Subnet-2. Assign the instance to the SG-Service and SG-SSH groups.
  13. Start the NGINX server and verify that the static content URL created in the previous step is accessible.
  14. Create a new "classic" Elastic Load Balancer and associate it with SG-Internet.
    1. Note the distinctions between Application Load Balancer and Network Load Balancer.
  15. Establish routing rules to forward all http 80 and https 443 traffic to the target group containing the two instances created earlier.
  16. Use a certificate management tool (such as java keytool) to generate a key pair and self-signed certificate, then import the certificate into AWS Certificate Manager (ACM).

5. Cloud Monitoring: Introduction and Practical Project

  1. AWS CloudWatch metrics
  2. Navigate to the AWS CloudWatch dashboard for the instances
    1. Collect relevant metrics and analyze their temporal variability
      1. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html
  3. Navigate to the AWS CloudWatch dashboard for the ELB
    1. Monitor ELB metrics and explain their fluctuations over time
    2. https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-cloudwatch-metrics.html

6. Advanced Concepts for Continued Learning

  1. Hybrid Cloud -- combining on-premise and public cloud environments
  2. Migration strategies: From on-premise to public cloud
    1. Application code migration
    2. Database migration
  3. DevOps practices
    1. Infrastructure as Code
    2. AWS CloudFormation Templates
  4. Auto-scaling mechanisms
    1. Using AWS CloudWatch metrics to determine system health

Requirements

There are no specific prerequisites required to participate in this course.

Target Audience

Software engineers and computer scientists who possess a solid grasp of algorithms and proficiency in at least one programming or scripting language, but who have not yet acquired experience in Cloud Computing.

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories