The Cloud Computing course focuses on concepts, techniques, methodologies and best-practices in various levels of cloud-based environments (i.e. infrastructure, platform, software layers). This course aims at understanding the theoretical underpinnings. In doing so, the course covers topics related to the theoretical background, architectures, standards, building blocks, modeling approaches and programming models of clouds. Besides the lectures, laboratory exercises allow students to gain hands-on experience with regard to installation and customization of cloud middleware as well as modeling and execution of application service components. Finally and given that cloud computing emerged in the last years, cutting edge research outcomes are reviewed, challenges are highlighted and open research topics are explored.
A series of laboratory lectures will allow students to gain hands-on experience and expertise with respect to cloud applications development and deployment, as well as installation, configuration and management of computational and storage clouds, exploiting cutting-edge technologies and frameworks such as Google AppEngine and OpenStack.
- Cloud computing: definitions, goals, challenges, application areas, service level agreements, service phases, distinct layers based on the Service-Platform-Infrastructure (SPI) model, architectural design, open grid service architecture, service oriented architecture, next generation architecture / internet of services, virtualization types (native, hardware, OS-level, application), hypervisors (Kernel-based Virtual Machine – KVM, Xen), service level agreements, performance and monitoring of physical and virtual resources.
- Platform as a Service and Software as a Service layers: service level agreements negotiation, service registry (UDDI, UBR, ebXML) and discovery, service selection, execution, monitoring, evaluation, accounting and billing, workflow management, wrappers for control, monitoring and configuration of application service components, methodology for developing, modeling and deploying applications, SLAs.
- Hands-on Laboratory 1 (Platform as a Service layer): development, configuration and execution of application in Google cloud, using Google AppEngine platform.
- Infrastructure as a service: cloud network infrastructure management, power management, performance management, connectivity, routing, traffic engineering, security policies and cloud monitoring systems, use cases, examples using Nagios, SNMP/MIBs and extensions for cloud management for extensions MIBs for management through SNMP, Oceanos, Cloud Radio Access Networks. Architectures, open interfaces and standards (DMTF/OCSI, OCCI), network as a service (NaaS), software defined networking (SDN) and Openflow technologies.
- Hands-on Laboratory 2 (Infrastructure as a Service layer): installation of cloud computing infrastructure using the mainstream middleware OpenStack.
- Hands-on Laboratory 3 (Level Infrastructure as a Service): installation of cloud computing infrastructure and configuration with respect to access patterns (certificates, end-points) and service level agreements management.
- Storage cloud technologies: Architectures addressing various issues (e.g. scalability, data integrity, namespace management, replication) in distributed object data management approaches: EMC Atmos, Rackspace Cloud Files, Windows Azure Storage, Google Storage, Amazon S3. Computational storage tackling computational and data issues, as well as execution constraints, triggering conditions and interactivity with other data or services. Content-centric access to data: Metadata annotation and content network implementation techniques (based on content linking), storage objects access mechanisms.
- Hands-on Laboratory 4 (Storage Cloud Infrastructure): installation of storage cloud infrastructure using the mainstream middleware OpenStack Swift, execution of MapReduce jobs in Apache Hadoop.
- Real-time clouds: priorities, time constraints, real-time cloud architectures, service composition models, heterogeneity, scaling, workflow mapping mechanisms, quality of service guarantees in clouds, classification of parameters and requirements, fault tolerance techniques, SNAP model, approaches VAS – GARA.
- Future internet infrastructures: Combination of cloud computing infrastructures with Internet of Things platforms, future internet applications, open research topics, industrial focus. Virtual and augmented reality applications, data-driven journalism services, smart city applications. Mainstream cloud computing platforms (architecture, services and comparison of platforms). Challenges, open research topics and industrial focus.
- David Linthicum, (2009): Cloud Computing and SOA Convergence in Your Enterprise: A Step-by-Step Guide, Addison-Wesley Professional, New York, ISBN 0136009220.
- John Rhoton, (2010): Cloud Computing Explained: Implementation Handbook for Enterprises, Recursive Press, London, ISBN 9780956355607.
- George Reese, (2009): Cloud Application Architectures: Building Applications and Infrastructure in the Cloud. O’Reily, Cambridge, UK, ISBN 0596156367.
- Tom White, (2010): Hadoop: The Definitive Guide, 2nd Edition. O’Reilly Media/Yahoo Press, ISBN 978-1-4493-8973-4.
- Eric Marks, Bob Lozano (2010): Executive’s Guide to Cloud Computing, John Wiley & Sons Inc., New York, ISBN: 0470521724.
- Barry Sosinsky, (2010): Cloud Computing Bible, Wiley, New York, ISBN: 0470903562.
- Jothy Rosenberg and Arthur Mateos (2010): The Cloud at Your Service, Manning Publications, London, ISBN-10: 1935182528.
- Chuck Lam, (2010): Hadoop in Action, Manning Publications, ISBN-10: 1935182196.