Cloud computing


Objective

Objectif

 

The objective of this course is to present the basic knowledge of the cloud infrastructure and what are good development practices.

During the practice session, the students will practice with the following technologies : Kafka, Spark, Docker, Kubernetes.

The knowledge of a programming language (Python, C++, Java) is not a prerequisite but greatly help to better understand the content of the lessons.

 

Evaluation

 

The course will be evaluated with a final project developed in groups.

The code quality, the innovation and the scalability of the solution will represent a key component of the final mark.

 

Planning

 

  1. Cloud technology and data
    1. Introduction to cloud
    2. Relationnal and non-relationnal databases
    3. Real time stream processing
    4. Distributed calculus on a cluster

 

  1. Best development practices of a smart applications with Python
    1. Code versioning with Git
    2. Basics : variables, fonctions, classes
    3. Unit testing
    4. Documentation
    5. Flask framework for Machine Learning

 

  1. Introduction to DevOps
    1. Continuous Integration and Deployment (CI/CD)
    2. Containerisation with Docker
    3. Container orchestration with Kubernetes
    4. Notion of security

Références

  •  Designing Data-Intensive Application, Martin Kleppmann
  •  Functional Programming in Scala, Paul Chiusano and Runar Bjarnason