Ce que j’ai compris du cloud Computing!

question-cloudLe Cloud Computing (en Français : l’informatique en nuages tel que défini par wikipedia) est un calcul informatique qui prend place sur un réseau. Mieux défini, C’est une pratique de déchargement de processus coûteux a une machine ou un pool de machines, et qui peut être étendu a n’importe quel nombre de machines dépendamment des ressources utilisées.
Historiquement, le Cloud Computing était restreint à l’utilisation dans l’entreprise compte tenu du coût exhaustif nécessaire à faire tourner des centaines voire des milliers de machines pour processer les données; les coûts incluent le hardware, l’électricité, la maintenance, l’espace etc. Ceci rendait inaccessible une ressource pareille aux petites et moyennes entreprises. Désormais, ce n’est plus un problème avec l’avènement des services cloud comme Amazon Elastic Compute Cloud (EC2), Windows Azure et Google App Engine.
Les petites, moyennes et larges entreprises peuvent maintenant réduire leur coûts en délégant le processing de leur données a ces services. C’est une industrie en effervescence et de plus en plus des services qu’on utilise sur Internet font confiance aux services du cloud pour leurs modèles d’affaires.

Sommaire

Amazon Elastic Compute Cloud (EC2)

logo_awsEC2 fait porter la notion des serveurs virtuels prive à un autre niveau. Amazon offre avec ce service un nuage dans lequel les utilisateurs peuvent faire tourner n’importe quel nombre de machines virtuelles (VM) avec des degrés différents de ressources allouées pour chaque machine. Chaque image qui tourne sur le nuage se comporte exactement de la même manière que sur un serveur classique. C’est particulièrement intéressant pour les entreprises qui dépendent de racks de machines dans un data center. Avec la virtualisation, ces entreprises peuvent réduire leur coûts en migrant a EC2, en éliminant le soucis du hardware et en diminuant significativement les coûts d’énergie et en libérant de l’espace.
Pour le stockage (persistant), EC2 utilise Amazon Simple Storage Service (S3). Pour la distribution de contenu, Amazon CloudFront qui facilite la délivrances des données aux utilisateurs finaux.
Les services web d’Amazon offrent une solution complète et flexible, mais cette flexibilité a un prix : l’utilisateur est en contrôle total et doit gérer lui même ses serveurs, il doit les programmer pour une diminution/augmentation de charge adéquate, et configurer le tout comme sur une vraie plateforme de serveurs – sans avoir a gérer le hardware.
EC2 coûte environ $73 dollars Américains pour un mois pour la plus petite VM, il offre une multitude d’options incluant de multiples distributions de linux et Windows, ou la possibilité de créer votre propre distribution. Aussi il existe des programmes pour gérer la charge, en l’occurrence Scalr, qui aide à gérer une plateforme de machines.
EC2 est le bon service si vous voulez avoir un accès total sur l’environnement sur lequel tournent vos applications, ceci inclue les programmes qui tournent sur le nuage (Apache, PHP, MySQL) aussi bien que la gestion de vos machines virtuelles.

Google App Engine

appengine_lowresGoogle App Engine est différent de EC2 dans le fait que le nuage Google est une plateforme de développement complète sur laquelle vous pouvez tourner vos applications au lieu de déployer des machines virtuelles. App Engine abstrait les détails de bas niveau du système d’exploitation en enlevant le besoin de l’administration d’une VM pour permettre de se concentrer sur le développement des applications à un niveau plus élevé. On peut le voir comme un système d’exploitation massif qui entièrement gère par Google.
La gestion de charge se fait automatiquement. Lorsque l’application nécessite plus de ressources, App Engine alloue plus. Comme pour les différents services de Google, il n’y a pas de coût d’utilisation du service, jusqu’a un certain seuil. Si votre application demande plus de ressources, Google commencera à vous charger. Les quotas alloués dans le service gratuit comportent des limitations dans les emails qui sont envoyees par jour, les requêtes HTTP par jour, le stockage de données et les appels aux APIs par jour.
Aussi, Google App Engine impose des limitations pour le service comportant un maximum de 30 secondes par requête, 1000 fichiers par application et un maximum de 10 Mo par élément enregistré. D’autres restrictions comportent aussi l’accès en lecture seule au système de fichiers, l’exécution de code se faisant uniquement par requête HTTP et la limitation des requêtes de données a 1000 requêtes par appel.
Bien qu’il y ait plusieurs limitations pour l’utilisation de Google App Engine, il peut vous faciliter la vie en vous débarrassant de la lourde tache de gérer les serveurs et surtout la charge.
Il est possible de faire tourner vos applications PHP dans App Engine avec Quercus, une implémentation JAVA du langage PHP 😀

Windows Azure

azureC’est le nouvel arrivant dans le jeu des nuages. Les services de la plateforme Azure de Microsoft sont une collection de différents APIs et services qui existent dans le nuage Microsoft. Ils incluent les services Live, SQL, .NET, SharePoint et Dynamics CRM Services. L’hébergement et la gestion de l’environnement sur lequel ces services vivent est appelé Windows Azure, qui est décrit par Microsoft comme : “Cloud Services Operating System”. Au top de cette plateforme et sur ce système d’exploitation, Microsoft fait Tourner Windows Live, Office Live, Exchange Online etc., ce sont eux qui ont ouvert la plateforme pour permettre aux développeurs de créer et de faire tourner des applications sur Azure.
Azure est similaire a App Engine dans le fait que c’est une plateforme de développement qui joue le rôle d’un système d’exploitation plutôt qu’un système dans lequel tournent vos propres machines virtuelles.
La fiabilité et l’équilibrage de charge ainsi que la geo-replication sont tous gérés par Windows Azure Fabric Controller. Azure Storage Service offre une base de stockage non structurée pour le stockage de BLOBs et de tables non relationnelles. Les APIs SOAP et REST offre un accès depuis Azure a chacun de ses services.
Azure n’est pas fortement liée avec .NET, puisque le support de FastCGI a été annonce au MIX09, ce qui ouvre la porte pour faire tourner des applications PHP dans le nuage Azure.
Utilisez Azure si votre organisation dépend de la technologie Microsoft et qu’elle aurait besoin de renforcer ses services En ligne. Comme App Engine, Azure peut vous éviter la fastidieuse tache de gestion de vos propres machines virtuelles.

EC2, App Engine et Azure ne sont pas les seuls services disponibles, il existe aussi AppLogic de 3tera, Mosso de Rackspace etc. Le choix est à faire selon les besoins.

Liens

Des commentaires? Des ajouts? Feel free to contribute !

Anis Berejeb

Anis est avant tout un passioné de l'agilité et du développement. Avec plus de 15 ans dans le domaine du développement web, son expertise combine des connaissances accrues dans l'ensemble des notions partant du développement logiciel jusqu'à l'organisation des équipes dans les environnements agiles à grande échelle.

You may also like...