Cloud Computing has transformed the IT industry by opening the possibility for infinite or at least highly elastic scalability in the delivery of enterprise applications and software as a service (SaaS). Amazon Elastic Cloud, Microsoft’s Azure, Google App Engine, and many other Cloud offerings give mature software vendors and new start-ups the option to deploy their applications to systems of infinite computational power with practically no initial capital investment and with modest operating costs proportional to the actual use. The course examines the most important APIs used in the Amazon and Microsoft Cloud, including the techniques for building, deploying, and maintaining machine images and applications. We will learn how to use Cloud as the infrastructure for existing and new services. We will use open source implementations of highly available clustering computational environments, as well as RESTFul Web services, to build very powerful and efficient applications. We also learn how to deal with non-trivial issues in the Cloud, such as load balancing, caching, distributed transactions, and identity and authorization management. In the process we will also become very familiar with the Linux operating system.
Familiarity with Java, Python or C#
General Benefits and Architecture, Business Drivers, Main players in the Field, Overview of Security Issues, XaaS Cloud Based Service Offerings
Key Amazon offerings:
EC2, SimpleDB, S3, Simple Queue, Simple Relational Database, Elastic MapReduce, Virtual Amazon Cloud. S3 Command Line tool
Bundling Amazon instances:
We will learn how to create and manipulate Amazon instances with command line tools, transfer application software to instances and bundle them into new AMI-s that could be offered to the public.
Amazon's Elastic Block Storage (EBS)
provides persistence storage in the cloud. We will learn how to move application code and data from non-EBS instance into EBS volumes, and create our own EBS based AMI-s
Amazon's AWS Identity Management and Security in the Cloud
Amazon's Virtual Private Cloud (VPC) and Directory Service
Java AWS SDK, S3 API, Relational Database Service, SimpleDB Service , NoSQL Databases
Amazon's Messaging in the Cloud
AWS Simple Notification and Simple Queuing Service
Amazon's RESTFul WebServices
AWS APIs are sufficiently rich to allow you easy interaction with AWS service. However, in order to establish connectivity between your own modules in the Cloud you should use RESTFul Web Services
Elastic Load Balancing and Auto Scaling
It allow automation of resource manipulation
Introduction to Microsoft
Cloud Microsoft offers a set of resources and features that are of great utility to those who are restricted to programming in .Net Environment
MapReduce performs large distributed computation as a set of distributed operations on data sets composed of key-value pairs producing a reduced set of key-value pairs. We will learn the basics of Hadoop, an open source implementation of MapReduce, and its Java API. Hadoop Distributed File System (HDFS) features.
It is a convenient SQL-like language that allows us to write scripts that run atop of HDFS.
OPSWorks is an application management service that provides an integrated experience for overseeing the complete application lifecycle. With AWS OpsWorks, we can provision AWS resources, supervise their configuration, deploy applications to those resources, and monitor their health .