Analyse Cloud - MachiganMC/Woodytoys GitHub Wiki

1. Besoins fonctionnels à partir du CdC:

  • Délocalisation des services web, mail et DNS dans un service cloud.

2. Besoins techniques

  • Les containers contenants les différents services seront hébergés dans un service cloud.

Il nous faudra donc:

  • décider quels types l'hébergement choisir (direct sur un logiciel ou via un serveur dédié).
    • si nous choisissons d'utiliser un serveur, décider s'il l'on en prend un pour tous les services ou s'il l'on prend un serveur par service.
  • choisir un service cloud payant ou gratuit.

3. Identification des choix architecturaux à poser

3.1 Discussion des alternatives possibles

Les containers contenants les différents services pourront être hébergés de 2 manières différentes:

  • Soit l'hébergement se fera directement sur une plateforme cloud comme Microsoft Azure ou Heroku
  • soit nous louerions un ou plusieurs VPS (Virtual private serveur ou serveur dédié virtuel en français) afin de les héberger. On pourra notamment citer comme exemple de VPS : Digital Ocean ou OVH ([1]sources : Pistes hébergement cloud sur Moodle)

Le VPS:

  • est plus cher
  • tous les périphériques de stockages sont liés à un serveur
  • il faut de bonnes connaissance en administration système pour bien gérer un VPS

3.2 Justification du choix posé

Il me semble plus adéquat d'héberger directement les services via une plateforme cloud:

  • Il y a plus de solutions gratuites:
  • les plateformes clouds sont plus sécurisées. [2]
  • il y a généralement une très bonnes documentations sur chaque plateforme.

3.3 Traduction du choix d'architecture en schéma réseau

(voir l'onglet Conceptions)

4. Choix des solutions d'hébergement

Comme nous nous sommes tournés vers une plateforme de cloud sans utilisation de VPS, je ne détaillerais pas les différentes plateformes VPS existantes.

4.1 Détermination des critères de choix en regard des besoins

  • Documentation claire : afin de pouvoir correctement paraméter les conteneurs docker, il est imporatnt de pouvoir compter sur une documentation claire et détaillée.
  • sécurité: le piratage et le hacking étant de plus en plus présent sur internet, il est primodiale de proposer un service cloud pour l'entreprise Woodytoys.

4.2 Identification des solutions possibles

comparaison des différents services cloud

Microsoft Azure:

  • Au niveau des pré-requis,
    • il faut télécharger et utiliser Docker Deskop (pour Linux il est également possible de passer par les commandes docker Compose)
    • il faut souscrire à un abonnement Azure. Dans notre cas, il est possible de bénéficier de 25 services Azure gratuit en s'inscrivant au au student developer pack, il ne sera donc pas nécessaire de payer.[3]
  • Ce service cloud est très bien documenté et sera donc plus facile à utiliser. [4]
  • le prix est fort élevé:
    • pour contenir les services directement dans les containers, MA demande 323$/mois (=303€) pour une dizaines de containers.
    • pour contenir les containers dans des VPS, MS est un peu moins cher et demande 238$/mois (soit 223€/mois).

Concernant AWS, son prix est dérisoire:

  • il coute en effet pour 5Go de données par mois 0,5$ (ou 6$/an) soit 47 cents/mois (ou 5,63€/an)

Microsoft Arure et Amazon Web Services ont plusieurs points communs[5]:

  • Bons services réseaux
  • Sécurité élevé
  • Performances de haut-débit
  • Un service DNS est proposé dans les 2 cas : Amazon Route 53] et Azure DNS
  • ils sont tous les 2 portés sur le développement durables en ayant une meilleure efficacité energétques des datas centers par exememple.[6][7] Cependant AWS a une fonctionnalité DNS en plus par rapport à MA: la Signature DNSSEC, qui permet de valider qu’une réponse DNS provient d’Amazon Route 53 et n’a pas été altérée.[3] AWS est également gratuit durant les 12 premiers mois.
  • ils sont tous les 2 bien documentés.

Heroku:[8]

  • Liaisons directe avec une base de donnée hébéregée Heroku PostgreSQL
  • Haut niveau de sécurité
  • Heroku est plus simple à appréhender que AWS.
  • Nombreux module complémentaires qui permettent aux développeurs d'ajouter des fonctionnalités plus facilement Malheureusement, il a aussi quelques dévantages:
  • Il est payant
  • applications moins performantes
  • moins de flexibilité que d'autres services cloud [4]

4.3 Classification des solutions identifiées en regard des critères, sur base d'éléments factuels référencés

  1. Microsoft Azure : sécurisé, facile à prendre en main, très performant et bien documenté mais très cher.
  2. Amazone Web Services: Idem que pour Microsoft Azure. Sa documentation est moins aisée à prendre en main mais le service est beaucoup moins cher.
  3. Heroku, bien que très sécurisée, n'a pas les mêmes performances que ces concurents et est parfois plus limité.

4.4 Présentation du choix et justification de la solution sélectionnée

Il a été très difficile de choisir entre MA et AWS. Nous avons finalement choisis MA pour sa sécurité, ses performances et ses supports plus nombreux.

Nous avons décidé de d'utiliser le microservice Azure Kubernetes Service (AKS). Nous avons choisis celui-ci car il nous semblait le plus approprié pour la gestion des containers : "Azure Kubernetes Service (AKS) offre le moyen le plus rapide de commencer à développer et à déployer des applications natives cloud dans Azure, dans les centres de données ou à la périphérie, avec des pipelines et des protection code-à-cloud intégrés". [9] Si nous éprouvons des difficultés à utilisé AKS, nous passerons alors aux machines virtuelles Linux de Azure. [10]

Nous sommes finalement passé sur les machines virtuelles Linux de Azure car elles étaient plus faciles à configurer.

Notes importante:

Etant étudiants, nous préférions éviter de passer par des plateformes payantes. Voila pourquoi, nous avons privilégier les plateformes gratuites avec le Pack de développeurs étudiants GitHub.

Bibliographie

[1] Moodle de l’Ephec, « Pistes pour l’hébergement Cloud », s.d.(consulté le 17 mars 2023).

[2] J. Tremblay, « Les avantages des VPS », s.d. (consulté le 17 mars 2023).

[3] GitHub.com, « GitHub Student Developer Pack », 2023 (consulté le 17 mars 2023).

[4] Docker Doc, « Deploying Docker containers on Azure », 2023 (consulté le 17 mars 2023).

[5] E. Jones, « AWS vs Azure : Comparaison des géants du cloud computing », 11 janvier 2023 (consulté le 17 mars 2023).

[6] P. Desmaison, « Le cloud AWS acteur du développement durable », 30 novembre 2021 (consulté le 17 mars 2023).

[7] Microsoft Azure, « Durabilité Azure », s.d. (consulté le 17 mars 2023).

[8] K. R., « Heroku : guide complet, définition et avantages », 17 septembre 2022 (consulté le 17 mars 2023).

[9] Microsoft Azure, « Service Azure Kubernetes (AKS) », s.d. (consulté le 21 mars 2023).

[10] Microsoft Azure, « Machines virtuelles Linux dans Azure », s.d. (consulté le 21 mars 2023).