Cloud computing


Objectif

L’objectif de ce cours est de présenter les connaissance de base sur le cloud et les nouvelles technologies de virtualisation pour le calcul distribue et le développement d’application.

Une bonne maitrise d’un langage de programmation (Python, C++, Java) n’est pas un prérequis mais vous permettra de mieux comprendre le contenu de ce cours.

Les techniques présentées vous permettrons également de concevoir, développer et déployer une API ou une application de data science haute performance.

 

Evaluation

Le cours sera évalué sous la forme d’un projet informatique lie au sujets présentes.

L’accent sera mis sur la qualité du code, la fiabilité et le passage à l’échelle de la solution implémentée.

Plan

  1. Les technologies cloud pour la science des données
    1. Introduction au cloud
    2. Bases de données relationnelles et non relationnelles
    3. Agent de message pour le calcul de données en temps réel avec Kafka
    4. Calcul distribue sur des données massives avec Spark
  2. Le développement d’application intelligente sous Python

    1. Versionner son code avec Git
    2. Les bases de Python : variables, fonctions, classes
    3. Tests unitaires
    4. Documentation avec Sphinx
    5. Le Framework Flask pour concevoir une API de Machine Learning
  3. Les bases de DevOps

    1. Intégration et déploiement continue
    2. La containerisation avec Docker
    3. L’orchestration des containers avec Kubernetes
    4. Notions de sécurité

Références

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