Course Code: ccemse
Duration: 21 hours
Prerequisites:

There are no specific requirements needed to attend this course.

Overview:

Audience

Software Engineer/Computer Scientists with adequate concepts of algorithms and
familiarity with at least one programming/scripting language but without any experience of Cloud
Computing

Duration

3 days (7 hours / day)

Course Outline:

1. Virtualization Details

a. Operating System Concepts Overview
i. CPU, Memory, Network, Storage
b. Hypervisor
i. Supervisor of Supervisors
ii. “Host” machine and “guest” OS
iii. Type-1 Hypervisor & Type-2 Hypervisor
iv. Citrix XEN, VMware ESX/ESXi, MS Hyper-V, IBM LPAR.
c. Network Virtualization
i. Brief introduction to 7-Layer OSI Model
1. Focus on Network layer
ii. TCP/IP Model or Internet Protocol
1. Focus on a single vertical
a. Application Layer: SSL
b. Network Layer: TCP
c. Internet Layer: IPv4/IPv6
d. Link Layer: Ethernet
2. Packet structure
iii. Addressing: IP Address and Domain Names
iv. Firewall, Load Balancer, Router, Adapter
v. Virtualized Network
1. Higher-order abstractions: Subnets, Zones.

d. Hands-on Exercise:
i. Familiarize with ESXi cluster and vSphere client.
ii. Create/update networks in ESXi Cluster, deploys guests from VMDK
packages, enable inter-connectivity between guests in an ESXi cluster.
iii. Make modifications to a running VM instance and capture snapshot.
iv. Update firewall rules in ESXi using vSphere client.

2. Cloud Computing: A paradigm shift

a. A fast, inexpensive runway to make product/solution available to the world
b. Resource sharing
i. Virtualization of virtualized environment
c. Key benefits:
i. Resource elasticity on-demand
1. Ideate->Code- >Deploy without requiring infrastructure
2. Rapid CI/CD pipelines

ii. Environment isolation and vertical autonomy
iii. Security through layering
iv. Expense optimization
d. On-premise Cloud and Cloud Providers
e. Cloud as an effective conceptual abstraction for distributed computing

3. Introduction to Cloud Solution Layers:

a. IaaS (Infrastructure as a Service)
i. AWS, Azure, Google
ii. Choose one Provider to continue later. AWS is recommended.
1. Introduction to AWS VPC, AWS EC2 etc.

b. PaaS (Platform as a Service)
i. AWS, Azure, Google, CloudFoundry, Heroku
1. Introduction to AWS DynamoDB, AWS Kinesis etc.

c. SaaS (Software as a Service)
i. Very brief overview
ii. Microsoft Office, Confluence, SalesForce, Slack
d. SaaS builds on PaaS that builds on IaaS that builds on Virtualization

4. IaaS Cloud Hands-on Project

a. The project uses AWS as the IaaS Cloud Provider
b. Use CentOS/RHEL the operating system for the rest of the exercise
i. Alternatively, Ubuntu will also do, but RHEL/CentOS are prefered
c. Obtain individual AWS IAM accounts from your cloud admin
d. Each student must do these steps independently
i. The ability to carve your own entire infrastructure on-demand is the best demonstration of the power of cloud computing
ii. Use AWS Wizards -- AWS online consoles -- to accomplish these tasks unless otherwise mentioned
e. Create a public VPC in us-east- 1 Region
i. 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.
ii. Create three separate Security Groups
1. SG-Internet
a. Allows incoming traffic from Internet on https 443 and http 80
b. No other incoming connections allowed
2. SG-Service
a. Allows incoming traffic only from security group SG-Internet on https 443 and http 80
b. Allows ICMP only from SG-Internet
c. No other incoming connections allowed
3. SG-SSH:

a. Allows SSH:22 incoming connection only from a single IP that matches with the public IP of the student’s lab machine. In case the lab machine is behind a proxy then the public IP of the proxy.

f. Deploy an instance of an AMI pertaining to your chosen OS -- preferably latest RHEL/CentOS versions available in AMIs -- and host the instance on Subnet-1. Attach the instance to SG-Service and SG-SSH groups.
g. Access the instance using SSH from your lab machine.

i. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

h. Install NGINX server on this instance
i. https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
i. Put static contents of your choice -- html pages, images -- to be served by
NGINX (on port 80 0ver HTTP) and define URLs for them.
i. See https://www.nginx.com/resources/admin-guide/serving-static-content/
j. Test the URL from that machine itself.
k. Create an AMI image from this running instance.
i. See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html .

l. Deploy that new AMI and host the instance on Subnet-2. Attach the instance to SG-Service and SG-SSH groups.
m. Run the NGINX server and validate that the access URL for the static content as created in step (i) works.
n. Create a new “classic” Elastic Load Balancer and attach it to SG-Internet.
i. See https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-getting-started.html
ii. Note the difference from Application Load Balancer and Network Load Balancer.

o. Create routing rule forwarding all http 80 and https 443 traffic to an instance group comprising the two instances create above.
p. Using any certificate management tool -- java keytool etc. -- create a key-pair and self-signed certificate and import the certificate to AWS Certificate Manager (ACM)
i. See https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html
ii. Alternatively, ACM itself can be used as a certificate management and signing authority and a new certificate can be requested to ACM. But in that case a valid domain name must be used, corresponding domain admins must be available to validate the request, and an AWS Route53 entry then subsequently needs to be created to map onto ELB IP. These are more advanced steps and hence p.(i) is better recommended.
q. Use this certificate for the ELB’s TLS/SSL connection to support https

i. See https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/ssl-server-cert.html

r. From your browser go to http:://<elb-public-access-name>/<static-content-url>
s. You should see the static content on your browser.
t. Stop each of the instances one at a time and submit the URLs.
u. Stop both instances and submit the URLs.

5. Cloud Monitoring: Introduction &amp; Hands-on Project

a. AWS CloudWatch metrics
b. Go to AWS CloudWatch dashboard for the instances
i. Retrieve the relevant metrics and explain the variability with time
1.https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html
c. Go to AWS CloudWatch dashboard for the ELB
i. Observe the ELB metrics and explain their variability with time
1.https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-cloudwatch-metrics.html
6. Advanced Concepts for Further Learning:
a. Hybrid Cloud -- on-premise and public cloud
b. Migration: On-premise to public cloud
i. Application code migration
ii. Database migration
c. DevOps
i. Infrastructure as a code
ii. AWS Cloud Formation Template
d. Auto-scaling
i. AWS CloudWatch metrics to determine health

Sites Published:

United Arab Emirates - Cloud computing essentials for managers / software engineers

Qatar - Cloud computing essentials for managers / software engineers

Egypt - Cloud computing essentials for managers / software engineers

Saudi Arabia - Cloud computing essentials for managers / software engineers

South Africa - Cloud computing essentials for managers / software engineers

Brasil - Cloud computing essentials for managers / software engineers

Canada - Cloud computing essentials for managers / software engineers

中国 - Cloud computing essentials for managers / software engineers

香港 - Cloud computing essentials for managers / software engineers

澳門 - Cloud computing essentials for managers / software engineers

台灣 - Cloud computing essentials for managers / software engineers

USA - Cloud computing essentials for managers / software engineers

Österreich - Cloud computing essentials for managers / software engineers

Schweiz - Cloud computing essentials for managers / software engineers

Deutschland - Cloud computing essentials for managers / software engineers

Czech Republic - Cloud computing essentials for managers / software engineers

Denmark - Cloud computing essentials for managers / software engineers

Estonia - Cloud computing essentials for managers / software engineers

Finland - Cloud computing essentials for managers / software engineers

Greece - Cloud computing essentials for managers / software engineers

Magyarország - Cloud computing essentials for managers / software engineers

Ireland - Cloud computing essentials for managers / software engineers

Luxembourg - Cloud computing essentials for managers / software engineers

Latvia - Cloud computing essentials for managers / software engineers

España - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Italia - Cloud computing essentials for managers / software engineers

Lithuania - Cloud computing essentials for managers / software engineers

Nederland - Cloud computing essentials for managers / software engineers

Norway - Cloud computing essentials for managers / software engineers

Portugal - Cloud computing essentials for managers / software engineers

România - Cloud computing essentials for managers / software engineers

Sverige - Cloud computing essentials for managers / software engineers

Türkiye - Cloud computing essentials for managers / software engineers

Malta - Cloud computing essentials for managers / software engineers

Belgique - Cloud computing essentials for managers / software engineers

France - Cloud computing essentials for managers / software engineers

日本 - Cloud computing essentials for managers / software engineers

Australia - Cloud computing essentials for managers / software engineers

Malaysia - Cloud computing essentials for managers / software engineers

New Zealand - Cloud computing essentials for managers / software engineers

Philippines - Cloud computing essentials for managers / software engineers

Singapore - Cloud computing essentials for managers / software engineers

Thailand - Cloud computing essentials for managers / software engineers

Vietnam - Cloud computing essentials for managers / software engineers

India - Cloud computing essentials for managers / software engineers

Argentina - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Chile - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Costa Rica - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Ecuador - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Guatemala - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Colombia - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

México - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Panama - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Peru - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Uruguay - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Venezuela - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Polska - Cloud computing essentials for managers / software engineers

United Kingdom - Cloud computing essentials for managers / software engineers

South Korea - Cloud computing essentials for managers / software engineers

Pakistan - Cloud computing essentials for managers / software engineers

Sri Lanka - Cloud computing essentials for managers / software engineers

Bulgaria - Cloud computing essentials for managers / software engineers

Bolivia - Lo Esencial de la Computación en la Nube para Gerentes / Ingenieros de Software

Indonesia - Cloud computing essentials for managers / software engineers

Kazakhstan - Cloud computing essentials for managers / software engineers

Moldova - Cloud computing essentials for managers / software engineers

Morocco - Cloud computing essentials for managers / software engineers

Tunisia - Cloud computing essentials for managers / software engineers

Kuwait - Cloud computing essentials for managers / software engineers

Oman - Cloud computing essentials for managers / software engineers

Slovakia - Cloud computing essentials for managers / software engineers

Kenya - Cloud computing essentials for managers / software engineers

Nigeria - Cloud computing essentials for managers / software engineers

Botswana - Cloud computing essentials for managers / software engineers

Slovenia - Cloud computing essentials for managers / software engineers

Croatia - Cloud computing essentials for managers / software engineers

Serbia - Cloud computing essentials for managers / software engineers

Bhutan - Cloud computing essentials for managers / software engineers

Nepal - Cloud computing essentials for managers / software engineers

Uzbekistan - Cloud computing essentials for managers / software engineers