Cloud Computing

Subject description

Developing applications for the server-side

Definition of cloud computing: what is cloud computing, purpose, role and importance, objectives
Challenges: Infrastructure Management, Application Architecture for cloud, data storage, security, other aspects
Features: on demand self-provisioning, elasticity and scalability, access in the form of services, monitoring, sharing of resources (pooling), etc..
Service models: IaaS (Infrastructure-as-a-Service), PaaS (Platform-as-a-Service), SaaS (Software-as-a-Service), XaaS
Detailed overview of IaaS:

• Overview of concepts, architectural perspective

• Private cloud, public cloud, hybrid cloud, virtual cloud

• Getting to know and compare the most important IaaS technologies

Detailed overview of PaaS:

• Overview of concepts, architectural perspective

• Changes in development models: data persistence: distributed file systems, unstructured storage, NoSQL database, SQL database in the cloud; Business tier: Web services, REST services, other technology runtime environment

• Understanding and comparison of major PaaS technologies: Java EE, Azure, Google App Engine, etc.

Detailed overview of SaaS:

• Overview of concepts, architectural perspective

• Access Models, Development Concepts

• Business models, Cloud Services (location, data delivery, data enrichment, integration services, business intelligence, etc.).

Deployment models

• Private, public, hybrid, shared cloud

• On premises, remote, hybrid model, overview of providers

Migration to the cloud
Control, management, SLA and QoS

Practical part:

• Deploying, setting up and configuring your own Cloud

• Developing applications for the cloud

o Technological aspects

o Content and business aspects

• Development of innovative applications that run in the cloud

• Configuring a hybrid cloud

• Getting to know the most important public clouds: Amazon, Google App Engine, Azure, OpenStack, etc.

• Portability study between cloud solution providers

• Development of cloud-specific extensions

The subject is taught in programs

Objectives and competences

The course objective is to provide an in-depth knowledge and understanding of the scope of cloud computing and all levels of service orientation (XaaS), provide knowledge of infrastructure, platforms, and applications in the form of services, get familiar with design patterns, architectural models and best practices and understand the importance of innovative applications in the cloud.

Competences:

Students will be able to deploy the infrastructure for the operation of private, hybrid and private clouds, to design and implement PaaS platform architecture, design and implement applications that are implemented on PaaS, understand the specifics of cloud architectures and infrastructures. Students will be trained to develop SaaS applications on most important PaaS / IaaS platforms and understand the importance of innovation in the cloud.

Teaching and learning methods

Lectures, computer-based workshops, project work, seminars.

Expected study results

After successful completion of the course a student will be able to:

– Develop cloud-based software solutions

– Understand the characteristic public and private clouds

– Understand the infrastructures and architecture of computer clouds

– Understand the cloud-native architecture and use it in the development

– master the development of microservices

– understand and use patterns for the development of microservices

– use containers and orchestration of containers

– capable of developing SaaS applications

Basic sources and literature

1.      Barrie Sosinsky, Cloud Computing Bible, Wiley; 2011.

2.      George Reese, Cloud Application Architectures: Building Applications and Infrastructure in the Cloud, O'Reilly Media; 2009.

3.      David S. Linthicum, Cloud Computing and SOA Convergence in Your Enterprise, Addison-Wesley Professional, 2009.

4.      John Rhoton, Risto Haukioja, Cloud Computing Architected: Solution Design Handbook, Recursive Press, 2011.

5.    Matjaz B. Juric et al., Do more with SOA Integration, Packt Publishing, 2011.

Stay up to date

University of Ljubljana, Faculty of Electrical Engineering Tržaška cesta 25, 1000 Ljubljana

E:  dekanat@fe.uni-lj.si T:  01 4768 411