Course Aim and Objectives:
The main goals and objectives of this course are:
- To provide students with the fundamentals and essentials of Cloud Computing.
- To provide students with the main supporting technologies (virtualization, networking, datacenter integration, cloud operating systems and platforms etc.) for building cloud environments.
- To provide students with the necessary knowledge and experience of the main programming libraries and tools (web applications and services development tools, parallel/distributed processing tools and platforms etc.) for developing and deploying efficient and reliable applications over the cloud.
- To provide students with a sound foundation of the Cloud Computing so that they are able to start using and adopting cloud computing services and tools in their real life scenarios.
- To enable students exploring some important cloud computing driven commercial systems such as Google Cloud, Microsoft Azure and Amazon Web Services and other businesses cloud applications.
- Introduction to Cloud Computing:Definitions, basic components, supporting technologies, the cloud from the user’s perspective, the cloud from the provider’s perspective, Cloud deployment models (private, public, community and hybrid clouds), Cloud Service Models (IaaS, PaaS, SaaS), Cloud Service Attributes.
- Virtualization and Datacenters: Definitions, operating systems background, CPU virtualization, memory virtualization, I/O virtualization, network virtualization, Virtual Machine Managers (VMM), Type-1 and Type-2 Hypervisors, Datacenters Integration (VM templates/images, clusters support and integration, rapid deployment, server consolidation, live migration, high availability etc.). Available tools and implementations (VΜware, Xen, KVM, Docker etc.).
- Cloud Software Environments- Cloud Operating Systems: Definitions, main characteristics, architecture and basic components, cloud development/build and deployment software, cloud platforms, cloud management and monitoring software, cloud storage management and support tools. Commercial platforms (e.g. Amazon) and free/open source platforms (Nimbus, Eucalyptus, OpenNebula, CloudStack, OpenStack, etc.).
- Programming Tools and Technologies.Available technologies for application development and scientific computations over the cloud (web applications and services – high throughput and high performance computing). Languages, libraries, tools and architectures (Java, Python, scripting environments, parallel/distributed processing frameworks, SOAP/REST architectures etc). Practice and exercises over Google APIs, Hadoop/MapReduce, Spark, etc.
- Cloud Applications and Services for the end-user: (a) Hosting services. (b) Office automation and collaboration tools and services. (c) Web and mobile applications development services. (d) Other business-oriented applications (CRM, ERP, E-Commerce, Data Center services etc). (e) Exploring the main cloud providers/vendors (Google, Microsoft, Amazon) and their services. (f) Special reference on modern trends and services: dynamic on-demand provisioning, auto scaling, load balancing etc.
- Other Issues: Cloud Security, Disaster Recovery, Capacity Planning, Resource Provisioning, The Economics of Cloud Computing (cloudonomics) etc.
- Thomas Erl, Ricardo Puttini, Zaigham Mahmood, Cloud Computing: Concepts, Technology & Architecture, Prentice Hall, Μετάφραση: Σαμαράς Ιωάννης, Εκδ. Γκιούρδας, 2013.
- Kris Jamsa, Cloud Computing, Jones & Bartlett Learning, 2012.
- Barrie Sosinsky, Cloud Computing Bible, Wiley, 2011.
- Kai Hwang, Jack Dongarra, and Geoffrey Fox, Distributed and Cloud Computing, Morgan Kaufmann, 2011.
- Robert Elsenpeter, Anthony Velte and Toby Velte, Cloud Computing: A Practical Appoach, McGraw-Hill , 2010.
- Borko Furht and Armando Escalante, Handbook of Cloud Computing, Springer, 2010.
- David Sarna, Implementing and Developing Cloud Computing Applications, Auerbach Publications, 2010.
- Tom White, Hadoop the definitive guide, O’Reilly Media, 2009.
- Jure Leskovec, Anand Rajaraman and Jeff Ullman, Mining of Massive Datasets, Cambridge University Press, 2012.
- Jimmy Lin, Chris Dyer and Graeme Hirst, Data-Intensive Text Processing with MapReduce, Morgan and Claypool Publishers, 2010.
- Dan Sanderson, Programming Google App Engine, O’Reilly Media, 2009.
- Denise Gosnell, Professional Development with Web APIs: Google, eBay, Amazon.com, MapPoint & FedEx, John Wiley & Sons, 2005.