\documentclass[a4paper,french,12pt]{article}

\title{Architecture Cloud}
\author{}
\date{Dernière compilation~: \today{} à \currenttime}

\usepackage{styles}

\begin{document}

\maketitle
\tableofcontents

\clearpage

\section{Introduction}

    L'objectif du Cloud est de nous faire consommer des services dont on n'a plus à se soucier du fonctionnement.

    Historiquement, quand on cherche à représenter quelque chose sur Internet qu'on ne connait pas, on utilise un nuage.
    Le Cloud désigne tout service proposé par un fournisseur et accessible depuis Internet (Cloud public), le réseau privé (Cloud privé) ou un mix des deux (Cloud hybride).

    Le NIST, puis l'ISO ont défini 5 caractéristiques pour le Cloud (norme ISO/IEC 17788) en octobre 2014~:

    \begin{enumerate}
        \item On Demand Self Service ---
            L'utilisateur peut, \emph{sans intermédiaire humain}, provisionner ou modifier de la puissance informatique (réseau, serveurs, stockage\ldots).
        \item Broad Network Access ---
            Toutes ces possibilités sont disponibles à travers un réseau par des \emph{mécanismes standards} et depuis des \emph{postes hétérogènes} (clients lourds, mobiles\ldots).
        \item Resource pooling ---
            Les ressources informatiques sont \emph{regroupées} (pooled) pour plusieurs utilisateurs de différentes sociétés assignées \emph{dynamiquement} et réassignées selon la demande.
        \item Rapid Elasticity ---
            Les capacités informatiques peuvent être provisionnées ou dé-provisionnées automatiquement.
        \item Measured Services ---
            Les ressources sont contrôlées et optimisées automatiquement.
    \end{enumerate}

    Ainsi que 3 modèles de services~:

    \begin{enumerate}
        \item SaaS
        \item IaaS
        \item PaaS
    \end{enumerate}

    \paragraph{SaaS --- Software as a Service}

        Logiciel hébergé chez un fournisseur (Application Service Provider, ASP), qui gère tout~: mises à jour etc.
        Les applications web avaient plusieurs défauts, mais un retour à été permis par HTML5 et JavaScript.

        SaaS vs. Software~:

        \begin{tabularx}{\linewidth}{YYY}
            & \textbf{Software} & \textbf{SaaS} \\
            \textbf{Licence} & & \\
        \end{tabularx}

        On peut dénombrer plusieurs niveaux de maturité~:

        \begin{enumerate}
            \item Ad-hoc ou Custom ---
                On installe une instance spécifique complète par tenant.
                Pas d'industrialisation, pas d'automatisation.
            \item Configurable ---
                On génère des instances identiques pour plusieurs clients, mais avec un fichier de configuration par instance.
                Ce fichier fait la différence entre les instance.
                On a donc découplé les deux.
            \item Configurable et multi-tenant efficient ---
                Même idée, mais une instance peut tenir plusieurs instance.
            \item Scalable, configurable, multi-tenant efficient ---
                Même chose avec un load-balancer, on n'a pas forcément à ajouter beaucoup d'instance pour absorber la charge de l'arrivée de multiples tenants.
        \end{enumerate}

        Seul le 4\up{e} niveau peut réellement être qualifié de Cloud.

    \paragraph{IaaS --- Infrastructure as a Service}

        L'Infrastructure, c'est des serveurs, des ressources (CPU, mémoire), du réseau, du stockage\ldots
        Tous les niveaux de virtualisation sont utilisés.

        Quand on virtualise des serveurs, on gère des fichiers.
        Cela facilite la PRA (Plan de Relance d'Activité) et augmente la disponibilité.
        La virtualisation de stockage facilite également les PRA\@.

        Docker et les containers ont beaucoup changé les choses.
        Le principe est une plateforme pour construire, délivrer et exécuter des applications distribuées.
        C'est léger, portable et autosuffisant.

        Dans les dernières évolutions, on virtualise et on installe des Dockers au sein des machines virtuelles.
        L'étape suivante, c'est le CaaS (Container as a Service).

    \paragraph{PaaS --- Platform as a Service}

        Fournir une plateforme complète de développement et de déploiement pour les applications en mode SaaS et services Web.
        C'est un socle normalisé pour toutes les étapes de développement d'une application (conception, intégration, développement, test, travail collaboratif, bug tracking, versioning\ldots)
        Cela inclut la gestion des instances, le monitoring, le reporting, et que ce soit scalable sur demande.

        Le PaaS peut être managed ou productized, et portable ou non portable.

    \paragraph{FaaS --- Serverless}

        Le FaaS repose sur un type de container.
        Serverless~: Event Driven Architecture.

    \paragraph{Services Managés}

        On n'a plus à gérer l'infrastructure sous-jacente à ses services, et donc économies de temps et de coût.
        La gestion des sauvegardes et la haute disponibilité peuvent être inclues.
        On vient consommer à la demande~: on ne paie que les ressources que l'on consomme.

\section{Cloud computing}

\section{L'impact du Cloud}

    \subsection{Culture DevOps}

        Cloud = automatisation de nombreuses tâches d'administration et d'exploitation.
        Quel est l'avenir des administrateurs systèmes~?

        Cloud = les développeurs doivent prendre les dimensions Ops.
        Quel est l'avenir des développeurs traditionnels~?

        Cela crée de nouveaux métiers~:

        \begin{itemize}
            \item architecte de service Cloud
            \item spécialiste orchestration
            \item gestionnaire de service Cloud
            \item administrateur de services Cloud
        \end{itemize}

        Et d'autres métiers évoluent (capacity planning, monitoring\ldots).

\section{Un tour d'horizon des solutions des acteurs du marché du Cloud}

\section{Conclusion}

\end{document}
