<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Decrypt &#187; Cloud Computing</title>
	<atom:link href="http://decrypt.ysance.com/tag/cloud-computing/feed/" rel="self" type="application/rss+xml" />
	<link>http://decrypt.ysance.com</link>
	<description>Le site de decryptage des technologies de l&#039;informatique</description>
	<lastBuildDate>Thu, 01 Jul 2010 14:41:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Scaler une infrastructure AWS 2/2 : le modèle</title>
		<link>http://decrypt.ysance.com/2010/07/scaler-une-infrastructure-aws-2-le-modele/</link>
		<comments>http://decrypt.ysance.com/2010/07/scaler-une-infrastructure-aws-2-le-modele/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 14:41:53 +0000</pubDate>
		<dc:creator>Frédéric Faure</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[Sharding / Partitionnement]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Casual Gaming]]></category>
		<category><![CDATA[LVM]]></category>
		<category><![CDATA[Memcached]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[RAID]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Tokyo Cabinet]]></category>
		<category><![CDATA[Tokyo Tyrant]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=1304</guid>
		<description><![CDATA[<img class="size-medium wp-image-1411 alignleft" title="Scale-Out in the Matrix" src="http://decrypt.ysance.com/wp-content/uploads/2010/06/MatrixScaleOut-300x123.png" alt="Scale-Out in the Matrix" width="204" height="82" />

Comment scaler une infrastructure <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) ? Je vais décrire dans cette deuxième partie de l'article le modèle de l'architecture et les composants techniques sous-jacents à adopter afin de mettre en place une infrastructure scalable. Nous aborderons tout particulièrement le sujet de l'optimisation de l'accès aux données dans les architectures de type scale-out propices à la distribution, autant au niveau du modèle de données que des couches basses pour l'optimisation des I/O. Nous verrons également les concepts de développement à privilégier tel que le stateless dans la plus pure tradition REST. Je terminerai par quelques trucs et astuces en fin d'article. Le but est de vous permettre de constituer et d'optimiser votre infrastructure en comprenant le fonctionnement des outils proposés par Amazon pour en tirer le meilleur parti.

[...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-medium wp-image-1411 alignleft" title="Scale-Out in the Matrix" src="http://decrypt.ysance.com/wp-content/uploads/2010/06/MatrixScaleOut-300x123.png" alt="Scale-Out in the Matrix" width="204" height="82" /></p>
<p>Comment scaler une infrastructure <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) ? Je vais décrire dans cette deuxième partie de l&#8217;article le modèle de l&#8217;architecture et les composants techniques sous-jacents à adopter afin de mettre en place une infrastructure scalable. Nous aborderons tout particulièrement le sujet de l&#8217;optimisation de l&#8217;accès aux données dans les architectures de type scale-out propices à la distribution, autant au niveau du modèle de données que des couches basses pour l&#8217;optimisation des I/O. Nous verrons également les concepts de développement à privilégier tel que le stateless dans la plus pure tradition REST. Je terminerai par quelques trucs et astuces en fin d&#8217;article. Le but est de vous permettre de constituer et d&#8217;optimiser votre infrastructure en comprenant le fonctionnement des outils proposés par Amazon pour en tirer le meilleur parti.</p>
<p><strong><em>Le scale-out</em></strong><br />
<img class="size-full wp-image-1424 alignright" title="Scale-Up in Ghost Buster" src="http://decrypt.ysance.com/wp-content/uploads/2010/06/GhostBusterScaleUp.jpg" alt="Scale-Up in Ghost Buster" width="116" height="170" />Le scale-out est à opposer au scale-up : ce dernier correspond à l&#8217;augmentation dynamique des ressources d&#8217;un serveur donné (ajout de RAM ou de CPU) à la volée. Ainsi l&#8217;application continue à s&#8217;exécuter sur une même machine dont le potentiel à augmenté. Le scale-out, lui, pour répondre à la montée en charge d&#8217;une application propose d&#8217;augmenter le nombre de serveurs. Au final, le potentiel global de l&#8217;infrastructure augmente aussi, mais est réparti entre plusieurs serveurs. Cela implique que l&#8217;application supportée sur le serveur ait été pensée en termes de distribution, c&#8217;est à dire qu&#8217;elle puisse s&#8217;exécuter en parallèle sur plusieurs serveurs sans que cela n&#8217;en corrompe la logique métier ou ne pose des problèmes d&#8217;accès aux ressources (qui doivent alors être disponibles via le réseau et non en local sur un serveur donné par exemple).</p>
<p>Le scale-out, c&#8217;est un peu l&#8217;agent Smith de Matrix. Pour le scale-up, pensez plutôt au gentil bibendum de Ghost Buster !</p>
<p><em><strong>Stateless</strong></em><br />
Le meilleur moyen d&#8217;obtenir une application facilement distribuable et performante est de la penser en mode stateless. C&#8217;est à dire que c&#8217;est la requête du client qui doit contenir l&#8217;ensemble des informations qui vont permettre le traitement de ladite requête côté serveur, soit via un cookie ou bien via les paramètres de l&#8217;URL. Quand cela est possible il faut privilégier cette approche à tout prix par rapport au mode statefull dans lequel la partie serveur doit maintenir un contexte pour chaque client afin de pouvoir résoudre sa requête. La conception stateless fait parti des grands concepts du REST. A ce sujet, je ne peux que vous conseiller de lire cet <a title="REST, un style d'architecture universel" href="http://www.figer.com/publications/REST.htm">excellent article sur REST</a> de Jean-Paul Figer dans lequel vous pourrez comprendre toute la simplicité et la puissance du style.</p>
<p>Si vous êtes obligés de gérer du statefull, il vous faudra utiliser un cache réseau, tel que <a title="Site de Memcached" href="http://memcached.org/">Memcached</a>, pour partager les contextes entre vos différents serveurs. N&#8217;envisagez pas la formule cache local et sticky session, car vous aurez du mal à bénéficier d&#8217;une répartition fluide au niveau de votre load balancing. N&#8217;envisagez pas non plus un cluster qui communique en multicast car le réseau Amazon ne permet pas d&#8217;en faire&#8230; Ou bien alors il faudrait que tous les serveurs communiquent en unicast avec une gateway qui s&#8217;occupe de la redistribution des communications&#8230; Vous êtes sûr que vous ne préférez pas du stateless ? ;ob</p>
<p>La mise en place d&#8217;applications stateless n&#8217;est pas arrivée avec le Cloud Computing et les AWS, en revanche ne pas penser dans ce sens, vous empêcherait de bénéficier de tout le dynamisme et la souplesse proposés par ces services.</p>
<p><em><strong>Optimisation de l&#8217;accès aux données</strong></em><br />
L&#8217;optimisation de l&#8217;accès aux données passe par 2 éléments :</p>
<ul>
<li>Le modèle de données et l&#8217;architecture logicielle que l&#8217;on retrouve  dans les architectures scalables, que l&#8217;on soit sur une infrastructure  AWS ou non.</li>
<li>La gestion des I/O que l&#8217;on peut optimiser, notamment via une utilisation approfondie des AWS.</li>
</ul>
<p><em><span style="text-decoration: underline;">Le modèle scalable</span></em><br />
Cela pourrait faire l&#8217;objet d&#8217;un article à part entière, mais correspond  à un modèle assez classique au sein des applications de type casual  gaming ou bien plus généralement liées à des applications basées sur les  graphes sociaux ou bien centrées sur une notion métier forte en particulier.</p>
<p>Pour résumer, 2 méthodes de stockage de données :</p>
<ul>
<li>Un stockage de ce que l&#8217;on peut appeler le méta-modèle, qui n&#8217;a pas  vocation à être distribué, basé sur une base relationnelle (même si  essentiellement utilisée sous forme d&#8217;accès clé-valeur) structurée,  indexée, contenant les informations générales de chaque utilisateur  (dans la cas d&#8217;une application sociale, avec les informations <em>nom</em>, <em>top score</em>, <em>gains de la veille</em>, &#8230;), essentiellement accédées en  lecture et dont il est possible d&#8217;alléger la charge via un Memcached en  frontal. Il est donc possible d&#8217;effectuer des requêtes ensemblistes de type SQL et ainsi de récupérer des informations via l&#8217;utilisation de clauses (<em>WHERE</em>). Cette base peut être un MySQL ou un PgSQL par exemple. Je vous invite à lire ce <a title="Dotdeb, MySQL et Amazon : RDS vs EC2" href="http://www.dotdeb.org/2010/05/04/mysql-on-amazon-benchmarks-rds-vs-ec2/">comparatif très intéressant</a> de Guillaume Plessis entre l&#8217;utilisation de MySQL installé sur un <a title="Site de Amazon Web Services, Rubrique EC2" href="http://aws.amazon.com/ec2/">EC2</a> et l&#8217;utilisation du service <a title="Site de Amazon Web Services, Rubrique RDS" href="http://aws.amazon.com/rds/">RDS</a> (Relational Database Service) d&#8217;Amazon. Je ne trahirai en rien le suspens en vous disant que la base de données c&#8217;est une histoire de barbus ! :o)</li>
<li>Un stockage pour les données plus volatiles (comme les données de jeu, &#8230;), avec un fort rapport  écriture/lecture, difficilement cachables, et pour lesquelles il faut  opter pour une réelle solution de stockage structurée non relationnelle  de type clé-valeur (NoSQL / Not only SQL diront certains), permettant  ainsi de distribuer facilement les données sur X serveurs. On peut citer un nombre  certain de candidats : <a title="Site de Redis" href="http://code.google.com/p/redis/">Redis</a>, <a title="Site de Tokyo Tyrant" href="http://1978th.net/tokyotyrant/">Tokyo Tyrant</a>/<a title="Site de Tokyo Cabinet" href="http://1978th.net/tokyocabinet/">Tokyo Cabinet</a>, <a title="Site de MemcacheDB" href="http://memcachedb.org/">MemcacheDB</a>, &#8230; Et également les nouveaux modèles peer to peer tels que <a title="Site de Cassandra" href="http://cassandra.apache.org/">Cassandra</a>, &#8230;</li>
</ul>
<div id="attachment_1353" class="wp-caption alignright" style="width: 291px"><img class="size-full wp-image-1353" title="Tokyo Cabinet" src="http://decrypt.ysance.com/wp-content/uploads/2010/06/TokyoCabinet.png" alt="Tokyo Cabinet" width="281" height="183" /><p class="wp-caption-text">Tokyo Cabinet</p></div>
<p>En l&#8217;occurrence, Tokyo Tyrant / Tokyo Cabinet est une solution que j&#8217;ai mise en place et qui me semble bonne. C&#8217;est un couple gérant respectivement les requêtes à partir de  serveurs distants (interface réseau) et les accès au système de  stockage. 6 APIs sont disponibles afin de stocker les données :</p>
<ol>
<li> On memory Hash,</li>
<li>On memory B+tree,</li>
<li>File Hash,</li>
<li>File B+tree,</li>
<li>Fixed-length Array,</li>
<li>Table.</li>
</ol>
<p>Chacune d’entre elles a ses propres spécificités et répond à des  besoins particuliers en termes de performances et de fonctionnalités.</p>
<p>Au niveau performances, outre ses performances naturelles, il a  l&#8217;avantage, notamment, de ne pas gérer l&#8217;authentification (standard chez les  systèmes de stockage clé-valeur, la sécurité est censée être assurée au niveau réseau pour les accès au système de stockage et au niveau applicatif pour les accès à la donnée &#8211; pour ne récupérer que ce qui vous concerne), ce qui allège le nombre d&#8217;accès (pas besoin de  requêtes d&#8217;authentification) par rapport à une base de données classique.  De plus, pas de gestion d&#8217;index lourds à reconstruire (possible  cependant sur l&#8217;API &laquo;&nbsp;Table&nbsp;&raquo; de la Tokyo Team), &#8230; Est-il nécessaire de préciser que ce  qui vous prendra du temps sur l’accès à la donnée via le réseau (entre  le serveur web ou applicatif et Tokyo Tyrant) c’est… Le réseau ! Donc  dans tous les cas, préférez l’utilisation au niveau client (API) de  « mget » (multi get), par exemple, en positionnant en paramètre le  tableau de clés que vous souhaitez récupérer, plutôt que d’effectuer N  fois un « get » à partir du client, donc N accès réseau. « mget » se  résoudra, lui, au niveau de Tokyo Tyrant.</p>
<p>Ces raisonnements appliqués sur cet outil doivent être appliqués à tout stockage de type clé-valeur.</p>
<p><span style="text-decoration: underline;"><em>La gestion des I/O</em></span><br />
Venons-en à la spécificité des AWS en termes de stockage : les <a title="Site de Amazon Web Services, Rubrique EBS" href="http://aws.amazon.com/ebs/">EBS</a> (Elastic Block Store). Les EBS sont des disques réseau optimisés en I/O, faciles à  manipuler, permettant d&#8217;assurer la durabilité des données qui ne doivent  pas être perdues lors de l&#8217;arrêt d&#8217;un EC2 (volatile). J&#8217;ai cependant  constaté de manière empirique des écarts de latence : pas énormes, mais  sur une application réellement sollicitée, il y a un ressenti.  Ce n&#8217;est pas rédhibitoire, il faut juste en tenir compte. Si le Load  Average de vos serveurs augmente, ce n&#8217;est pas forcément le CPU en  cause&#8230; Pensez I/O ! ;ob</p>
<p>Tout d&#8217;abord penser striping, donc RAID0. Pas besoin de mirroring (RAID1), la  durabilité des EBS est déjà assurée par Amazon, de manière transparente, par réplication réseau :  tirons parti de ce service et concentrons nous sur le striping. Pensez  également à répartir les écritures des différents fichiers physiques  (données, updates logs, …) sur différents disques (dans le cas d&#8217;outils  utilisant des update logs, et c&#8217;est le cas pour MySQL et Tokyo Tyrant  par exemple, pensez à bien paramétrer leur taille). C&#8217;est ce qui permet  d&#8217;avoir les meilleures optimisations. Ensuite, choisissez bien votre  système de fichier par rapport à votre outil (EXT3, XFS, …) et pensez  aux options de montage (noatime, nodiratime, &#8230;). Finalement vérifiez  bien le scheduler/ordonnanceur par défaut sur les instances EC2 que vous  démarrez : par défaut, il s&#8217;agit de l&#8217;ordonnanceur NOOP (requêtes I/O  dans une simple file FIFO). Envisagez quelque chose de plus performant  comme CFQ (Completely Fair Queuing) par exemple&#8230; Enfin je dis ça, mais cela dépend toujours de la couche logiciel au-dessus et si et comment elle gère les priorités : <a title="MySQL Performance Blog, Linux schedulers in tpcc like benchmark" href="http://www.mysqlperformanceblog.com/2009/01/30/linux-schedulers-in-tpcc-like-benchmark/">dans cet exemple</a> (qui n&#8217;est pas sur EBS) sur MySQL Performance Blog, il apparaît que les ordonnanceurs NOOP et DEADLINE peuvent être de meilleure facture pour améliorer les I/O InnoDB. Comme quoi, il faut quand même mieux tester dans son propre cas ! ;ob</p>
<div id="attachment_1177" class="wp-caption alignleft" style="width: 310px"><img class="size-medium wp-image-1177" title="Logical Volume Management" src="http://decrypt.ysance.com/wp-content/uploads/2010/06/Archi_LVM-300x280.png" alt="Logical Volume Management" width="300" height="280" /><p class="wp-caption-text">Logical Volume Management</p></div>
<p>Un autre outil que j&#8217;ai utilisé avec les EBS et qui fonctionne très  bien est LVM2 (Logical Volume Management, version 2). Je ne l&#8217;ai pas  utilisé dans le cadre d&#8217;une architecture avec un nombre élevé d&#8217;IOPS (I/O operations Per Second) et n&#8217;ai donc pas  testé les possibilités de striping (RAID0) offertes par l&#8217;outil. En revanche, je l&#8217;ai utilisé dans  le cadre d&#8217;une infrastructure nécessitant de pouvoir supporter des  augmentations conséquentes du volume de données et ceci sans  interruption de service. L&#8217;opération de snapshot d&#8217;un EBS et de  recréation du volume est trop longue. LVM est la solution, puisque cette couche d&#8217;abstraction permet de gérer des volumes logiques de manière indépendante  des ressources physiques : il suffit de lever une nouvelle ressource EBS  (une ligne de commande), de l&#8217;associer à l&#8217;instance EC2 (une autre  ligne de commande) et d&#8217;ajouter cette ressource au pool de ressources  LVM. Il suffit alors d&#8217;agrandir le volume logique (toujours transparent et sans arrêt du service), puis  d&#8217;étendre le système de fichiers. C&#8217;est la dernière  opération (qui est commune avec celle de la recréation du volume EBS) qui peut nécessiter d&#8217;arrêter le service quelques instants (une dizaine de secondes). A noter qu&#8217;il est possible d&#8217;étendre son système de fichiers à chaud avec EXT3, personnellement, je préfère une interruption de service de quelques secondes sur ce genre d&#8217;opérations très courtes mais cruciales. ;ob En  prime, il est facile de d&#8217;effectuer des backups sur un système LVM qui  propose une option de snapshot différentiel que l&#8217;on peut monter comme  un volume logique indépendant : lorsqu&#8217;il y a une modification sur le  volume origine, la valeur initiale est copiée dans le volume snapshoté,  donc on peut snapshoter des volumes importants sur un espace réduit car  seule la fréquence de modification est importante. Vous pourrez trouver de plus amples informations sur LVM2 et EBS en consultant ce <a title="Decrypt, EBS et LVM2 ou comment optimiser l’élasticité des AWS" href="http://decrypt.ysance.com/2010/06/ebs-et-lvm2-ou-comment-optimiser-elasticite-des-aws/">très bon article</a> de Laurent Roux.</p>
<p>Tous ces exemples, pour montrer que les EBS sont une ressource très  intéressante : il faut les considérer tout d&#8217;abord comme un moyen d&#8217;assurer la durabilité des ressources importantes avant de considérer l&#8217;aspect performance. En effet, la performance n&#8217;est pas forcément meilleure sur un EBS que sur les disques locaux d&#8217;une instance EC2 (Cf. <a title="Ma petite présentation au Amazon web service french user group 2010" href="http://www.karlesnine.com/post/2010/05/07/Amazon-web-service-french-user-group-2010">un test simple et intéressant</a> de Charles-Christian Croix ou bien encore des tests un peu plus complexes que vous pourrez retrouver en tapant <em>&laquo;&nbsp;performance ephemeral disk ebs volume raid&nbsp;&raquo;</em> dans Goggle, il y en a un certain nombre de très intéressants et je dois avouer que j&#8217;ai du mal à faire mon choix ;ob). Cependant, quand on prend le parti d&#8217;assurer la durabilité de ses données et donc d&#8217;utiliser un EBS (qui, pour ceux qui connaissent, est comparable à un LUN sur un SAN), il y a divers moyens d&#8217;optimiser leur performance.</p>
<p>Il est à noter que les utiliser pour répartir les fichiers (et donc les I/O) sur plusieurs disques EBS peut être une solution de performance pure.</p>
<p>A noter tout de même que la bande passante de l&#8217;EC2 est forcément limitant arrivée à un certain seuil : ajouter des EBS est intéressant pour lisser les écarts de variance (en RAID0) ou bien pour optimiser le débit, mais il n&#8217;en reste pas moins que si vous ajoutez plusieurs EBS à votre instance EC2 et qu&#8217;ils sont tous sollicités fortement&#8230; C&#8217;est la bande passante de l&#8217;EC2 qui bloque. Il va falloir ajouter un nouvel EC2 (scale-out pour augmenter les ressources, en l&#8217;occurrence la bande passante), lui attacher de nouveaux EBS (n&#8217;oubliez pas qu&#8217;un EBS ne peut être attaché qu&#8217;à un et un seul EC2) et distribuer la donnée dessus (sharding).</p>
<p>Dans tous les cas, la manipulation des EBS est aisée et cette souplesse est un  atout.</p>
<p><em><strong>Tips &amp; tricks</strong></em><br />
Cette dernière partie regroupe quelques trucs et astuces.</p>
<p><em><span style="text-decoration: underline;">Alias &amp; IPs</span></em><br />
Pensez sur une infrastructure AWS à positionner des alias  correspondant aux IPs privées de vos instances dans le fichier des &laquo;&nbsp;hosts&nbsp;&raquo;, que vous pouvez déployer ensuite via <a title="Site de Puppet" href="http://www.puppetlabs.com/">Puppet</a> pour plus de réactivité vu que les IPs sont &laquo;&nbsp;variables&nbsp;&raquo; (lorsque vous arrêtez une instance et que vous en redémarrez une juste après, vous ne conservez pas la même IP). L&#8217;utilisation du  fichier &laquo;&nbsp;hosts&nbsp;&raquo; évite des résolutions DNS internes chez Amazon.</p>
<p><em><span style="text-decoration: underline;">CDN &amp; S3 Headers</span></em><br />
Pour les CDN (Content Delivery Network) que vous utilisez  obligatoirement dans une architecture scalable, pensez à utiliser S3 afin  de mettre à disposition les images et autres contenus statiques.  Inutile de maintenir un serveur Web à cette seule fin, S3 est là pour ça  pour un coût minime.</p>
<p>Pensez également dans certains cas où votre trafic est plus modéré et que vous ne souhaitez pas passez sur un CDN (pour des questions de coût par exemple ;ob), que vous pouvez toujours optimiser la gestion de vos ressources sur S3 en utilisant les méta-données attribuées aux dites ressources sur S3, en positionnant, par exemple, les headers de type <em>Cache-Control</em> ou <em>Expires</em>. Vous pouvez visualiser ces méta-données via le nouvel <a title="Site de Amazon Web Services, Console AWS, Onglet S3" href="https://console.aws.amazon.com/s3/home">onglet S3</a> de la console d&#8217;administration Amazon.</p>
<p><span style="text-decoration: underline;"><em>Backups&#8230;</em><em> What else ?</em></span><br />
S3 est également la solution pour les backups. Je n&#8217;ai pas trouvé  d&#8217;outils intégré satisfaisant pour cette tâche : j&#8217;utilise simplement un  outil en ligne de commande &laquo;&nbsp;<a title="Site de s3tools, s3cmd" href="http://s3tools.org/s3cmd">s3cmd</a>&nbsp;&raquo; afin de stocker mes backups. J&#8217;ai intégré cet  outil dans des tâches <a title="Site de Capistrano" href="http://www.capify.org/">Capistrano</a> appelées par cron. Très  simple d’utilisation, s3cmd permet de consommer les services de S3 et offre la  possibilité de transférer les données en HTTPS et également de les  stocker sous un format crypté.</p>
<p><em><strong>Conclusion</strong></em><br />
Il y aurait encore beaucoup de choses à dire sur ce sujet, mais ce  sont à mon avis les principales, en tout cas par rapport à l&#8217;utilisation des services mis à disposition par les AWS. Ce qu&#8217;il en ressort, c&#8217;est :</p>
<ul>
<li>Le stateless et REST de manière générale, sont d&#8217;autant plus adaptés aux AWS qu&#8217;ils permettent de distribuer aisément la charge sur une infrastructure s&#8217;adaptant à la montée en charge sur un modèle scale-out.</li>
<li>L&#8217;accès aux données est toujours le goulet d&#8217;étranglement des applications distribuées devant scaler. Il s&#8217;agit de travailler à ce niveau le modèle de données et de tirer parti des systèmes de stockage adéquates :
<ul>
<li>Technologies SQL pour les méta-données pouvant nécessiter du requêtage ensembliste et de la mise en  relation, tout en utilisant au maximum un cache réseau pour les informations avec un fort ratio lecture sur écriture.</li>
<li>Technologies NoSQL / Not only SQL / clé-valeur pour les informations pouvant être accédées par une clé unique, et ainsi bénéficier de la distribution inhérente au scale-out.</li>
</ul>
</li>
<li>Penser finalement aux couches basses en sélectionnant convenablement le système de fichiers et l&#8217;ordonnanceur. Pensez également RAID (striping) et LVM (extension de volume et snapshot différentiel) pour tirer parti de la souplesse d&#8217;utilisation des EBS et répartition des I/O sur différents devices (en prenant toujours garde à votre bande passante, au niveau EC2, qui peut devenir limitant : dans ce cas ajouter une ou plusieurs instances EC2 pour gagner en bande passante et distribuer &#8211; sharder &#8211; la donnée sur de nouveaux EBS).</li>
</ul>
<p>J&#8217;espère que ce deuxième volet de mon retour d&#8217;expérience sur la scalabilité des infrastructures AWS vous aura intéressé.</p>
<p><em><strong>Frédéric FAURE</strong></em> <a title="Frédéric FAURE @Twitter" href="http://twitter.com/fredericfaure">@Twitter</a> <a title="Ysance, Simplifions les projets informatiques" href="http://www.ysance.com/">@Ysance</a></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2010/07/scaler-une-infrastructure-aws-2-le-modele/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Scaler une infrastructure AWS 1/2 : les outils</title>
		<link>http://decrypt.ysance.com/2010/06/scaler-une-infrastructure-aws-1-les-outils/</link>
		<comments>http://decrypt.ysance.com/2010/06/scaler-une-infrastructure-aws-1-les-outils/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 15:03:56 +0000</pubDate>
		<dc:creator>Frédéric Faure</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Automatisation]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Capistrano]]></category>
		<category><![CDATA[Métrologie]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Supervision]]></category>
		<category><![CDATA[Syslog-NG]]></category>
		<category><![CDATA[Webistrano]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=1056</guid>
		<description><![CDATA[<img class="size-full wp-image-510 alignleft" title="Logo AWS" src="http://decrypt.ysance.com/wp-content/uploads/2009/08/logo_aws.gif" alt="Logo AWS" width="164" height="60" />

Comment scaler une infrastructure <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) ? C'est une réponse détaillée que va apporter cet article en 2 parties : les outils à utiliser pour tirer parti du dynamisme des services Amazon et le modèle d'architecture à adopter pour une infrastructure scalable. Je me base sur mes expériences tirées de plusieurs projets de production sur les AWS, à la fois dans le domaine du casual gaming (sur Facebook), dans celui des infrastructures e-commerce ou bien encore dans le cadre du SIG (Système d'Information Géographique) grand public. Il est vrai que l'expérience dans le domaine du jeu est celle qui est actuellement la plus représentative en termes de scalabilité, du fait du nombre d'utilisateurs (&#62; 800K DAU - Daily Active User - et plus de 20M de pages vues par jour), cependant les expériences dans le e-commerce et le SIG (expérience en cours :o)) offrent également une autre vision de la scalabilité, prenant en compte des problématiques différentes de disponibilité et de gestion des données. Je vais donc tenter de brosser un tableau exhaustif des éléments à prendre en compte afin d'optimiser le dynamisme d'une infrastructure montée dans un environnement de Cloud Computing et en l'occurrence dans celui des AWS.

[...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-510 alignleft" title="Logo AWS" src="http://decrypt.ysance.com/wp-content/uploads/2009/08/logo_aws.gif" alt="Logo AWS" width="164" height="60" /></p>
<p>Comment scaler une infrastructure <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) ? C&#8217;est une réponse détaillée que va apporter cet article en 2 parties : les outils à utiliser pour tirer parti du dynamisme des services Amazon et le modèle d&#8217;architecture à adopter pour une infrastructure scalable. Je me base sur mes expériences tirées de plusieurs projets de production sur les AWS, à la fois dans le domaine du casual gaming (sur Facebook), dans celui des infrastructures e-commerce ou bien encore dans le cadre du SIG (Système d&#8217;Information Géographique) grand public. Il est vrai que l&#8217;expérience dans le domaine du jeu est celle qui est actuellement la plus représentative en termes de scalabilité, du fait du nombre d&#8217;utilisateurs (&gt; 800K DAU &#8211; Daily Active User &#8211; et plus de 20M de pages vues par jour), cependant les expériences dans le e-commerce et le SIG (expérience en cours :o)) offrent également une autre vision de la scalabilité, prenant en compte des problématiques différentes de disponibilité et de gestion des données. Je vais donc tenter de brosser un tableau exhaustif des éléments à prendre en compte afin d&#8217;optimiser le dynamisme d&#8217;une infrastructure montée dans un environnement de Cloud Computing et en l&#8217;occurrence dans celui des AWS.</p>
<p><em><strong>Les outils</strong></em><br />
Je propose des exemples d&#8217;outils que j&#8217;ai utilisés dans mes différentes expériences de production et qui m&#8217;ont convaincu par leur efficacité. Cependant, ce n&#8217;est pas tant l&#8217;outil qui est mis en valeur que la  fonctionnalité sous-jacente qu&#8217;il va falloir implémenter pour tirer parti au mieux des AWS.</p>
<p><strong><em>Différence entre une infra AWS et une infra standard</em></strong><br />
Il y a 2 éléments de réponse :</p>
<ul>
<li> Tout d&#8217;abord, les AWS permettent de manipuler les composants  Hardware et d&#8217;Infrastructure via la code (en passant par des APIs), cela  permet un dynamisme qu&#8217;il va falloir exacerber en sélectionnant  convenablement ses outils. Amazon propose de plus un certain nombre de  garanties techniques sur leurs services, il conviendra d&#8217;en tirer parti  afin de se concentrer sur l&#8217;essentiel.</li>
<li> Ensuite, une seconde partie de la réponse devrait être : « aucune !  ». Cependant, force est de constater que bien souvent le côté plus  douillet de l’infrastructure hébergée « à la maison » pousse à une  certaine forme de laxisme sur un certain nombre de points. Le fait que  Amazon, avec ses AWS, propose une solution volatile, au niveau des EC2  notamment, oblige à mettre en place des mécanismes qui devraient être  standards.</li>
</ul>
<p><strong><em>Gestion de configuration centralisée<br />
</em></strong>La possibilité d&#8217;instancier de multiple serveurs (EC2) à la volée pour répondre à un pic de charge ou des traitements ponctuels, nous oblige à utiliser un outil de gestion de configuration centralisée. L’utilité est multiple :</p>
<ul>
<li>Instancier rapidement une machine correspondant à un type prédéfini : serveur Web, serveur de cache, …</li>
<li>Assurer l’homogénéité de la configuration de l&#8217;ensemble des instances d’un même type à tout instant.</li>
<li>Capitaliser un savoir faire : les packages, configurations, services, &#8230; de chaque type d&#8217;instance est contenu dans un descripteur. Cela permet aux nouveaux venus (et aux autres) de connaitre la composition des serveurs sur la simple lecture du ou des descripteurs associés.</li>
</ul>
<p><img class="size-full wp-image-890 alignright" title="Logo Puppet - Reductive Labs" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/puppet-short.png" alt="Logo Puppet - Reductive Labs" width="151" height="44" /></p>
<p><a title="Site de Puppet" href="http://reductivelabs.com/">Puppet</a> est une solution très intéressante pour cette tâche. L&#8217;architecture Puppet est constituée de:</p>
<ul>
<li>Un Puppet Master, gardien des configurations, il contient les descripteurs des packages à installer, fichiers de configuration à déposer et services à démarrer pour une nouvelle instance EC2 afin de la préparer suivant le type du ou des nœuds auxquels on l’a associée ou tout simplement pour maintenir à jour une instance existante.</li>
<li>De multiples clients Puppet installés sur les instances EC2. Régulièrement, le client pull le master afin de vérifier que sa configuration est à jour. Il est également possible de faire du push sur les clients à partir du master pour déclencher une mise à jour urgente.</li>
</ul>
<p>Il est ainsi très simple de monter une nouvelle instance d’un type donné et d’être sûr que, d’un serveur à un autre, la configuration est complètement identique. Il est à noter que les descripteurs du Puppet Master fonctionnent sur un système de nœuds et un serveur peut faire référence à plusieurs nœuds. On obtient donc une configuration très modulaire.</p>
<div id="attachment_1310" class="wp-caption alignleft" style="width: 306px"><img class="size-medium wp-image-1310 " title="Descripteur Module Puppet" src="http://decrypt.ysance.com/wp-content/uploads/2010/06/puppet_type_node_def-296x300.png" alt="Descripteur Module Puppet" width="296" height="300" /><p class="wp-caption-text">Descripteur Module Puppet</p></div>
<p>Le gestionnaire de configuration centralisée est indispensable sur une infrastructure scalable qui est amenée à avoir un grand nombre d&#8217;instances dont certaines devront être montées rapidement afin de répondre aux sollicitations des utilisateurs lors des pics de charge.</p>
<p>« Mais… », me direz-vous, « il faut bien installer le client sur la nouvelle machine ? ». Et oui, d’autant plus qu’il y a un système de requête/acceptation de certificat entre le client et le master afin que n’importe qui ne puisse accéder aux configurations. « Très simple ! », vous répondrais-je, au lieu d’utiliser une IHM, comme Elastic Fox, afin de se connecter aux APIs des services Amazon, il suffit de s’y connecter en lignes de commande via un script qui instancie un EC2, éventuellement crée un volume EBS et l’associe, se connecte en SSH sur la nouvelle machine et installe le client, se connecte sur le master et accepte la requête de certificat, redémarre le client et « hop ! ». L&#8217;instance s&#8217;installe et se configure toute seule. Les possibilités de réactivité et de dynamisme inhérentes aux EC2 et aux AWS de manière générale nous impose cela, sinon ce serait sous exploiter l’outil, voire le més-exploiter.</p>
<p>Et les AMIs (instance-store root devices) ou les EBS root devices (à noter que pour ces dernier, il n&#8217;y a pas encore beaucoup de choix en termes de templates) ? Il est cependant possible de se constituer une AMI ou bien un EBS root device avec le client Puppet installé dessus (et d&#8217;utiliser éventuellement les user-data au lancement de l&#8217;instance afin de le paramétrer si une configuration &laquo;&nbsp;statique&nbsp;&raquo; sur l&#8217;AMI n&#8217;est pas suffisante). Cependant, dans un environnement de production, l&#8217;AMI ou l&#8217;EBS root device ne permettent pas de remplacer un Puppet : si il faut modifier l’AMI à chaque modification de paramétrage et redéployer les EC2… On n’a pas fini. L’AMI est un bon outil pour instancier un template de base (au sens basique), pas pour conserver une infrastructure de production en bon ordre de fonctionnement.</p>
<p>Pour conclure, il est même possible d&#8217;envisager une auto-scalabilité (plus complète que celle proposée par le service <a title="Site de Amazon Web Services, Rubrique Auto Scaling" href="http://aws.amazon.com/autoscaling/">Auto Scaling</a> d&#8217;Amazon basé sur <a title="Site de Amazon Web Services, Rubrique Amazon CloudWatch" href="http://aws.amazon.com/cloudwatch/">CloudWatch</a>) qui reviendrait à déclencher ce script sur le dépassement d’une valeur d’un graphe de monitoring (métrologie), instanciant donc une nouvelle machine pour supporter la période de pic, instance qui serait « terminée » suite au passage en dessous d&#8217;un autre seuil sur ledit graphe. Les possibilités sont énormes. Cependant, le coût des derniers éléments à mettre en place sur une infrastructure importante de production pour accéder à l&#8217;auto-scalabilité est conséquent (complexité exponentielle). Si on a l&#8217;opportunité, c&#8217;est un bel ouvrage, sinon se &laquo;&nbsp;contenter&nbsp;&raquo; d&#8217;une solution aisément scalable où il suffit de lancer un script manuellement (ou bien à heure fixe basé sur l&#8217;étude des métriques remontés par la métrologie, ce qui est une bonne alternative) et éventuellement d&#8217;ajouter manuellement une ou deux références dans un fichier est une alternative tout à fait respectable.</p>
<p><strong><em>Exécution de tâches automatisées en parallèle<br />
</em></strong>Du fait de la variation du nombre d’instances en fonction de la charge d&#8217;une infrastructure scalable et surtout du nombre potentiellement important desdites instances, il n’est pas envisageable d’effectuer les opérations de maintenance et de déploiement unitairement sur chaque machine (et encore pire à la main !), ce qui non seulement serait chronophage, mais de surcroît source d’erreurs. Il est alors indispensable d’utiliser des outils spécialisés dans l’automatisation et l’exécution parallèle de tâches, tel que <a title="Site de Capistrano" href="http://www.capify.org/">Capistrano</a>, dont les bénéfices sont multiples :</p>
<ul>
<li>Scripter un certain nombre de tâches, complexes ou non, (livraisons, backups, publication/maintenance du site, …) et de les exécuter rapidement en parallèle sur X machines en une seule commande.</li>
<li>Assurer la reproductibilité d’une tâche.</li>
<li>Capitaliser un savoir faire (Cf. Puppet).</li>
</ul>
<div id="attachment_1311" class="wp-caption alignnone" style="width: 654px"><img class="size-full wp-image-1311" title="Descripteur Tache Capistrano" src="http://decrypt.ysance.com/wp-content/uploads/2010/06/cap_task.png" alt="Descripteur Tache Capistrano" width="644" height="46" /><p class="wp-caption-text">Descripteur Tache Capistrano</p></div>
<p><img class="size-medium wp-image-429 alignright" title="Logo Capistrano" src="http://decrypt.ysance.com/wp-content/uploads/2009/07/capistrano-logo-big-300x114.png" alt="Logo Capistrano" width="300" height="114" /></p>
<p>Cet outil est très simple d’utilisation et très pratique. Il exécute des tâches en parallèle (en se connectant en SSH &#8211; n&#8217;utilisez pas la clé &laquo;&nbsp;root&nbsp;&raquo; de vos instances EC2 dans l&#8217;outil, mais une autre dédiée, c&#8217;est plus classe&#8230;) sur un ou des groupes de serveurs définis par des rôles.</p>
<p>C&#8217;est un complément à Puppet et non un doublon car ils n&#8217;ont pas la même cible :</p>
<p><span style="text-decoration: underline;"><em>Objectif</em></span><br />
<span style="color: #339966;"><em>Puppet </em></span>- Homogénéité de la configuration du parc de serveurs.<br />
<span style="color: #800080;"><em>Capistrano </em></span>- Reproductibilité des tâches et exécution en parallèle.</p>
<p><span style="text-decoration: underline;"><em>Mode de fonctionnement</em></span><br />
<em><span style="color: #339966;">Puppet </span></em>- Pull régulier des clients (voire push du master).<br />
<span style="color: #800080;"><em>Capistrano </em></span>- Tâches ponctuelles (appel manuel ou par cron).</p>
<p><span style="text-decoration: underline;"><em>Orientation</em></span><br />
<span style="color: #339966;"><em>Puppet </em></span>- Objets / notions prédéfinis tels que « Package », « Service », « File », …<br />
<em><span style="color: #800080;">Capistrano </span></em>- Des commandes génériques comme « upload », « download », « system », « run », …</p>
<p><span style="text-decoration: underline;"><em>Cible</em></span><br />
<span style="color: #339966;"><em>Puppet </em></span>- Infrastructure et services.<br />
<span style="color: #800080;"><em>Capistrano </em></span>- Services et applicatif.</p>
<p>A noter, <a title="Site de Webistrano" href="http://labs.peritor.com/webistrano">Webistrano</a> est une IHM  permettant d’accéder aux fonctionnalités de Capistrano et introduisant  une notion de gestion de projet par la possibilité de gérer les accès  aux tâches en fonction de son profil, de tracer qui a déployé quoi sur  quel serveur et d’envoyer des alertes mails sur certaines actions. Je trouve cette jointure avec la gestion de  projet intéressante.</p>
<p><em><strong>Monitoring</strong></em><br />
C&#8217;est un des éléments cruciaux d&#8217;une architecture scalable, si ce n&#8217;est le principal. Il est indispensable d’avoir à disposition des métriques afin de savoir justement quand scaler. Il permet d’identifier les points d’engorgement de l’infrastructure, d&#8217;analyser l’évolution du trafic sur votre site et d&#8217;en déduire les comportements des utilisateurs et permet également de déclencher des alertes.</p>
<p>Cet apport de métriques est plus représentatif de la métrologie que de la supervision. On verra que, dans le cadre d&#8217;une infrastructure sur AWS, la métrologie a une valeur ajoutée plus importante que celle de la supervision (même si cette dernière reste indispensable). A ce propos, voici un éclaircissement sur les 2 disciplines du monitoring qu&#8217;il faut identifier :</p>
<ul>
<li>La <strong>supervision </strong>vérifie l’état d’un hôte ou d’un service et remonte une alerte sur la détection d’un comportement anormal (temps de réponse trop long, statut NOK, …) et implique une action immédiate de la part des interlocuteurs concernés. Une alerte doit signifier que l’hôte ou le service est inutilisable (critical) ou risque de l’être (warning) et ne pas renvoyer de « simples informations » qui pollueraient la visibilité des réels incidents.</li>
<li>La <strong>métrologie </strong>permet d’historiser les données, éventuellement d’appliquer un traitement ou filtre dessus, avant de les présenter sous forme de graphiques ou de reporting. Ces données permettent d’apporter un correctif à postériori au niveau développement ou paramétrage des services afin d’apporter une optimisation desdits services et également de définir les ressources à attribuer aux services au plus  juste. Cet aspect du monitoring est tout aussi important car il va permettre d’améliorer le service et donc le rendu des utilisateurs (internes ou clients finaux) et également de lisser les coûts. Les résultats issus de la métrologie doivent mettre aisément en valeur les améliorations à apporter en corrélant les valeurs récupérées.</li>
</ul>
<p>Un certain nombre existent sur le marché avec leurs avantages et inconvénients, certains plus orientés supervision, d&#8217;autres plus métrologie. On citera <a title="Site de Centreon" href="http://www.centreon.com/">Centreon</a>/<a title="Site de Nagios" href="http://www.nagios.org/">Nagios</a>, <a title="Site de Zabbix" href="http://www.zabbix.com/">Zabbix</a>, <a title="Site de Cacti" href="http://www.cacti.net/">Cacti </a>ou encore <a title="Site de Munin" href="http://munin.projects.linpro.no/">Munin</a>. Personnellement, j&#8217;utilise Centreon/Nagios essentiellement pour la  supervision et Cacti pour la métrologie orientée logicielle avec des  graphes pré-packagés comme pour Apache, MySQL, Memcached, &#8230; Mais j&#8217;ai  eu de nombreux bons écho sur Zabbix pour son exhaustivité de  fonctionnalités et Munin pour sa simplicité d&#8217;utilisation.</p>
<div id="attachment_388" class="wp-caption alignright" style="width: 414px"><img class="size-full wp-image-388 " title="Thread Scoreboard Apache - Yearly - 1 Day Average" src="http://decrypt.ysance.com/wp-content/uploads/2009/07/Thread-Scoreboard-Apache-Yearly-1-Day-Average.png" alt="Thread Scoreboard Apache - Yearly - 1 Day Average" width="404" height="262" /><p class="wp-caption-text">Thread Scoreboard Apache - Yearly - 1 Day Average</p></div>
<p>Il est à noter que ces outils fonctionnent pour la plupart (Centreon, Cacti et Munin) sur <a title="Site de RRDtool" href="http://oss.oetiker.ch/rrdtool/">RRDtool</a> (Round-Robin Database), un outil de gestion de base de données permettant également de représenter graphiquement les données contenues dans la base. Le gros avantage tient dans le fait que le volume de données stockées est minimal même pour la conservation de plusieurs mois, voire années de données. Cela est rendu possible par le calcul de moyennes sur des périodes (de 1 minute à 1 jour) : les données récentes sont exactes, alors que les plus anciennes sont approximées. Très pratique car nous avons à la fois des métriques récentes exactes et conservons un historique, une représentation de l&#8217;évolution de notre architecture, ce qui est capital afin de visualiser l&#8217;évolution des métriques clés et de comprendre les impacts de l’évolution des composants de ladite infrastructure ou bien des applications supportées au fur et à mesure des livraisons des différentes releases.</p>
<p>Concernant les infrastructures de type Cloud Computing, la discipline  ayant la plus forte valeur ajoutée est la métrologie, car c&#8217;est elle qui  va permettre d&#8217;apporter un feed back à vos outils d&#8217;automatisation.</p>
<p>Gardez à l&#8217;esprit également qu&#8217;il est intéressant de pouvoir intégrer dynamiquement les nouvelles machines installées et configurées par Puppet dans l&#8217;outil de monitoring. Privilégiez donc les outils de monitoring avec une configuration modulaire, ou simple d&#8217;accès via APIs.</p>
<p><em><strong>Gestion des logs centralisée</strong></em><br />
C&#8217;est indéniable, plus vous aurez d&#8217;instances, plus vous aurez de logs éparses sur les diverses instances. De plus, diriger tous les logs vers le daemon syslog devient problématique car tous les composants de l&#8217;infrastructure ne gèrent pas forcément bien cela (redirection, respect du protocole syslog, &#8230;), sans parler de la ou des applications/briques fonctionnelles qui peuvent loguer dans des fichiers disparates sur le serveur.</p>
<p><img class="size-full wp-image-1082 alignleft" title="Logo Syslog-NG" src="http://decrypt.ysance.com/wp-content/uploads/2010/03/syslog-ng.gif" alt="Logo Syslog-NG" width="200" height="47" /></p>
<p>Pensez à des outils comme <a title="Site de Syslog-NG" href="http://www.balabit.com/network-security/syslog-ng/">Syslog-NG</a> : il est composé d&#8217;un serveur et de plusieurs clients, en fait le même outil mais avec des configurations différentes. En plus, il est capable de vérifier régulièrement des fichiers de logs (d&#8217;applications métier par exemple) et de transmettre uniquement le différentiel, même si celui-ci ne respecte pas le protocole syslog :</p>
<ul>
<li>Le client récupère les logs de files(fichiers)/pipe/unix-dgram/&#8230; et envoie les infos sur le réseau (tcp/udp).</li>
<li>Le serveur récupère les infos du réseau (tcp/udp) et les enregistre dans des fichiers, bases de données, &#8230;</li>
</ul>
<div id="attachment_1314" class="wp-caption alignleft" style="width: 432px"><img class="size-full wp-image-1314 " title="Architecture Syslog-NG" src="http://decrypt.ysance.com/wp-content/uploads/2010/06/syslog-ng-archi.png" alt="Architecture Syslog-NG" width="422" height="255" /><p class="wp-caption-text">Architecture Syslog-NG</p></div>
<p>Il s&#8217;agit juste de différences minimes en termes de configuration. Le composant peut également servir de relai sur des infrastructures plus complexes en recevant les logs du réseau à partir de divers clients et en les envoyant à nouveau sur le réseau à destination d’un serveur.</p>
<p>Il est possible d’appliquer des filtres avant d’envoyer les logs sur le réseau pour ne faire transiter que le nécessaire et ensuite il est également possible d’en appliquer au niveau du serveur pour gérer différemment les logs en provenance des clients en fonction de leur criticité, programme émetteur, hôte d’origine, …</p>
<p>C’est un outil simple et non intrusif pouvant prendre en compte les logs des applications éparses sur un serveur (même si ces logs ne respectent pas le format du protocole « syslog » &#8211; il y a cependant un plus à respecter ce protocole pour avoir une meilleure précision au niveau des « facilities » et « priorities »).</p>
<p>De même que pour le monitoring, gardez à l&#8217;esprit qu&#8217;il est intéressant de pouvoir intégrer (et retirer) dynamiquement les nouvelles instances à gérer au niveau du système de logs.</p>
<p><em><strong>Conclusion</strong></em><br />
Au delà des outils présentés, ce sont les fonctionnalités sous-jacentes qui sont importantes. Ce qu&#8217;il  en ressort, c&#8217;est :</p>
<ul>
<li>Les outils comme  les gestionnaires de configuration centralisée, les  outils d&#8217;exécution  de tâches automatisées en parallèle ou bien les gestionnaires  de logs vont  prendre encore plus d&#8217;importance. Il n&#8217;est plus  envisageable de  travailler sans sur de telles infrastructures.</li>
<li>Le monitoring est  toujours une valeur clé et le restera, mais la métrologie  permet avec l&#8217;analyse des métriques clés définis dans son infrastructure d&#8217;alimenter les outils d&#8217;automatisation.</li>
<li>L&#8217;automatisation est bien le mot clé mis en  avant par les AWS :  l&#8217;accessibilité des ressources Hardware ou  d&#8217;Infrastructure via du code  permet d&#8217;aller vers des architectures de  plus en plus autonomes. Il faut  cependant positionner le curseur  convenablement, sachant que les  dernières étapes d&#8217;une automatisation  complète seront les plus  coûteuses.</li>
</ul>
<p>J&#8217;espère que ce retour  d&#8217;expérience vous aura intéressé autant que  j&#8217;ai eu de plaisir à  travailler sur ces infrastructures. Je continuerai cet article dans une deuxième partie consacrée au modèle d&#8217;architecture à appliquer pour des infrastructures scalables.</p>
<p><em><strong>Frédéric FAURE</strong></em> <a title="Frédéric FAURE @Twitter" href="http://twitter.com/fredericfaure">@Twitter</a> <a title="Ysance, Simplifions les projets informatiques" href="http://www.ysance.com/">@Ysance</a></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2010/06/scaler-une-infrastructure-aws-1-les-outils/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Formation AWS : nouvelle session le 9 Juillet 2010</title>
		<link>http://decrypt.ysance.com/2010/06/formation-aws-nouvelle-session-le-9-juillet-2010/</link>
		<comments>http://decrypt.ysance.com/2010/06/formation-aws-nouvelle-session-le-9-juillet-2010/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 12:46:30 +0000</pubDate>
		<dc:creator>Frédéric Faure</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Formation]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=1389</guid>
		<description><![CDATA[<img class="size-full wp-image-510 alignleft" title="Logo AWS" src="http://decrypt.ysance.com/wp-content/uploads/2009/08/logo_aws.gif" alt="Logo AWS" width="164" height="60" />

Je profite de Decrypt pour annoncer que je donnerai une <a title="Ysance, Inscription Formation AWS du 9 Juillet 2010" href="http://cloudcomputing.ysance.com/formation/inscription/inscription.html">formation</a> sur les <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) destinée aux professionnels le <strong>Vendredi 9 Juillet 2010</strong>. Elle se déroulera à <strong>Paris </strong>en <strong>une journée</strong>. Cette formation est éligible au financement par les OPCA (Agefos, FAFIEC  …), peut être intégrée à une période de professionnalisation ou à un  DIF.

Le but de la formation est de donner une vue d'ensemble des différentes  offres (AWS, GAE &#38; Azure) et de leur positionnement et d'expliquer  ce qu'est le Cloud Computing (modèle économique et services), puis de se  concentrer sur l'offre d'Amazon (architecture, services, résilience,  support, sécurité, ...) et de la mettre en pratique (EC2, EBS et S3). La  dernière partie est une ouverture sur les outils à mettre en place afin  d'optimiser l'utilisation de ces ressources (gestionnaire de  configuration centralisée, serveur de logs, métrologie, ...).

[...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-510 alignleft" title="Logo AWS" src="http://decrypt.ysance.com/wp-content/uploads/2009/08/logo_aws.gif" alt="Logo AWS" width="164" height="60" /></p>
<p>Je profite de Decrypt pour annoncer que je donnerai une <a title="Ysance, Inscription Formation AWS du 9 Juillet 2010" href="http://cloudcomputing.ysance.com/formation/inscription/inscription.html">formation</a> sur les <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) destinée aux professionnels le <strong>Vendredi 9 Juillet 2010</strong>. Elle se déroulera à <strong>Paris </strong>en <strong>une journée</strong>. Cette formation est éligible au financement par les OPCA (Agefos, FAFIEC  …), peut être intégrée à une période de professionnalisation ou à un  DIF.</p>
<p>Le but de la formation est de donner une vue d&#8217;ensemble des différentes  offres (AWS, GAE &amp; Azure) et de leur positionnement et d&#8217;expliquer  ce qu&#8217;est le Cloud Computing (modèle économique et services), puis de se  concentrer sur l&#8217;offre d&#8217;Amazon (architecture, services, résilience,  support, sécurité, &#8230;) et de la mettre en pratique (EC2, EBS et S3). La  dernière partie est une ouverture sur les outils à mettre en place afin  d&#8217;optimiser l&#8217;utilisation de ces ressources (gestionnaire de  configuration centralisée, serveur de logs, métrologie, &#8230;).</p>
<p>La formation sera axée à la fois sur une approche théorique et pratique, avec 30% du temps de formation passé à réaliser des travaux pratiques (sur les composants principaux que sont EC2, EBS et S3, ainsi que manipulation des outils et gestion de compte AWS), et sur une forte interactivité afin de répondre à toutes vos interrogations.</p>
<p><em><strong>Qui peut y participer ? </strong></em><br />
Des chefs de projet, architectes techniques et fonctionnels, administrateurs système, responsables d’équipes de développement, directeur/responsable informatique.</p>
<p><em><strong>Quel est le programme proposé ?</strong></em></p>
<p><span style="color: #800000;"><strong><em><span style="text-decoration: underline;">1ère Demi-journée </span></em></strong><br />
<span style="text-decoration: underline;">Le Cloud Computing</span></span></p>
<ul>
<li><span style="color: #800000;"> De quoi s’agit-il ?</span></li>
<li><span style="color: #800000;"> Les acteurs du marché et leurs différentes approches (Amazon, Microsoft, Google, &#8230;)</span></li>
</ul>
<p><span style="color: #800000;"><span style="text-decoration: underline;">Le cas Amazon</span></span></p>
<ul>
<li><span style="color: #800000;"> De quoi s’agit-il ?</span></li>
<li><span style="color: #800000;"> Comparaison d&#8217;une infrastructure Cloud AWS avec une infrastructure physique classique</span></li>
<li><span style="color: #800000;"> Les cas d&#8217;utilisation</span></li>
<li><span style="color: #800000;"> Les coûts</span></li>
</ul>
<p><span style="color: #800000;"><span style="text-decoration: underline;">Les outils</span></span></p>
<ul>
<li><span style="color: #800000;"> Gestion de son compte (clés, certificats, facturation, support, &#8230;)</span></li>
<li><span style="color: #800000;"> Les consoles d&#8217;administration (Console AWS, ElasticFox, S3 Organiser)</span></li>
<li><span style="color: #800000;"> Les APIs</span></li>
</ul>
<p><span style="color: #800000;"><strong><span style="text-decoration: underline;"><em>2ème Demi-journée </em></span></strong><br />
<span style="text-decoration: underline;"> Les services infrastructure AWS</span></span></p>
<ul>
<li><span style="color: #800000;"> Elastic Compute Cloud (EC2)</span></li>
<li><span style="color: #800000;"> Elastic Block Storage (EBS)</span></li>
<li><span style="color: #800000;"> Simple Storage Service (S3)</span></li>
<li><span style="color: #800000;"> Séance de TP sur EC2, EBS et S3</span></li>
</ul>
<p><span style="color: #800000;"><span style="text-decoration: underline;">AWS&#8230; Encore un peu plus loin</span></span></p>
<ul>
<li><span style="color: #800000;"> Overview automatisation &amp; dynamisme : gestion de la configuration centralisée avec Puppet, déploiement automatisé avec Capistrano, monitoring avec Cacti &amp; Centreon/Nagios, gestion des logs avec Syslog-NG, auto-scalability, LVM, &#8230;</span></li>
</ul>
<p><span style="color: #800000;"><span style="text-decoration: underline;">Les informations utiles</span></span></p>
<ul>
<li><span style="color: #800000;"> Forums, sites, liens, livres blancs (sécurité, extension SI, &#8230;)</span></li>
</ul>
<p><em><strong>Quelles sont les modalités pratiques ?</strong></em><br />
<span style="text-decoration: underline;">Lieu :</span> Mediasites, 42 rue Legendre, 75017 Paris &#8211; Métro : Villiers<br />
<span style="text-decoration: underline;">Date :</span> Vendredi 9 juillet 2010<br />
<span style="text-decoration: underline;">Heure :</span> 9h00 à 17h00</p>
<p><span style="text-decoration: underline;">Durée :</span> 1 journée<br />
<span style="text-decoration: underline;">Tarif :</span> 800 euros HT<br />
Toutes les sessions se déroulent dans le centre de Paris. Cette formation est éligible au financement par les OPCA (Agefos, FAFIEC …), peut être intégrée à une période de professionnalisation ou à un DIF. Nous pouvons vous aider à monter votre dossier.</p>
<h2><span style="color: #ff6600;"><strong>Pour vous inscrire</strong>, veuillez remplir ce <a title="Ysance, Inscription Formation AWS du 9 Juillet 2010" href="http://cloudcomputing.ysance.com/formation/inscription/inscription.html">formulaire</a>.</span></h2>
<p>Pour plus d’informations, veuillez contacter Catherine LHUISSIER à <a href="mailto:catherine.lhuissier@ysance.com">catherine.lhuissier@ysance.com</a>.<br />
Tél. : 01 83 62 11 58</p>
<p><strong>En espérant que vous viendrez nombreux. :o)</strong></p>
<p><em><strong>Frédéric FAURE</strong></em> <a title="Frédéric FAURE @Twitter" href="http://twitter.com/fredericfaure">@Twitter</a> <a title="Ysance, Simplifions les projets informatiques" href="http://www.ysance.com/">@Ysance</a></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2010/06/formation-aws-nouvelle-session-le-9-juillet-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cloud AWS Infrastructure vs. Physical Infrastructure (2/2)</title>
		<link>http://decrypt.ysance.com/2010/06/cloud-aws-infrastructure-vs-physical-infrastructure-2/</link>
		<comments>http://decrypt.ysance.com/2010/06/cloud-aws-infrastructure-vs-physical-infrastructure-2/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 16:22:18 +0000</pubDate>
		<dc:creator>Frédéric Faure</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[HaaS]]></category>
		<category><![CDATA[IaaS]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=1264</guid>
		<description><![CDATA[Here is the follow-up you’ve all been waiting for :o), examining the comparisons between Cloud-deployed infrastructure via <a title="Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) and traditional physical infrastructure.  Let me remind you that when I say physical infrastructure, I examine self-hosted infrastructure as well as infrastructure supported by a hosting provider. Similarly, I also look at infrastructures based directly on hardware, as well as those based on virtualized environments. Cloud computing is also based on virtualization, but we are not so interested in that technology here, rather the way in which it is provided to customers (you).

[...]]]></description>
			<content:encoded><![CDATA[<p>Here is the follow-up you’ve all been waiting for :o), examining the comparisons between Cloud-deployed infrastructure via <a title="Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) and traditional physical infrastructure.  Let me remind you that when I say physical infrastructure, I examine self-hosted infrastructure as well as infrastructure supported by a hosting provider. Similarly, I also look at infrastructures based directly on hardware, as well as those based on virtualized environments. Cloud computing is also based on virtualization, but we are not so interested in that technology here, rather the way in which it is provided to customers (you).</p>
<p><em><strong>Network and shared resources</strong></em><br />
The network is an important feature … and in more than one way! Effectively, the Cloud configuration is already prepared for you, and that’s convenient. But that also means that you don’t control it, and consequently you cannot monitor it yourself and therefore diagnose, for example, the causes of a slow-down. There is a similar lack of transparency concerning the shared resources at Cloud: at our level it is impossible to estimate the impact of other people using the resource we are sharing (such as the physical computer on top of which is based our EC2 instance, the physical device we use as an EBS network-attached device, the network bandwidth, etc.). The only network monitoring possible is limited to input/output on the instance (for example, an EBS is a network-attached device, so … there is no means of verifying the connectivity conditions, you will have to do with the I/O disks). The monitoring you can do is concentrated on the EC2 virtual instance itself (the instance is managed by a hypervisor and based on a Xen virtualization). Total visibility of our infrastructure is therefore not possible on Cloud. This must be taken into account… and accepted, if you wish to implement your architecture on Cloud. You must also weigh up the same lack of transparency for other shared resources as previously mentioned (EBS use, etc.).</p>
<div id="attachment_977" class="wp-caption alignnone" style="width: 554px"><img class="size-full wp-image-977" title="AWS : Isolation of the EC2 Instance (from aws.amazon.com)" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/AWS_EC2_security.png" alt="AWS : Isolation of the EC2 Instance (from aws.amazon.com)" width="544" height="343" /><p class="wp-caption-text">AWS : Isolation of the EC2 Instance (from aws.amazon.com)</p></div>
<p>Likewise, a multicast is not possible when it comes to communication protocols: bear that in mind for certain clusters. This constraint is understandable, given the far-reaching impact that a mismanaged multicast can have.</p>
<p>That is due to Cloud’s own way of operating: it has easy ways which mask a certain number of elements you no longer control.</p>
<p><em><strong>On-call support, monitoring, BCP (Business Continuity Planning) and penalties</strong></em><br />
One question I’ve been asked frequently is “Does Amazon provide on-call support (regarding your own application/infrastructure your are running on top of the AWS) ?” The answer is no. AWS must be seen as a set of tools offered by Amazon which ensures that these tools are always up and well working. They maintain these tools and the development of their various functions. However, you are responsible for your use of the tools (in any case they do not possess the private keys of your EC2 instances…), so there is no monitoring / on-call support / BCP (Business Continuity Planning) package.</p>
<p>Unlike the specific contracts you may sign with your hosting providers, you must provide for these elements yourself, or regarding on-call support for example, you could out-source it to a facilities management company. Ditto for monitoring: Amazon offers <a title="Amazon Web Services, Amazon CloudWatch" href="http://aws.amazon.com/cloudwatch/">Amazon CloudWatch</a>, but the information (% of CPU, read/written bytes onto disk and in/out bytes on the network) is too brief for genuine monitoring as provided by Centreon/Nagios, Cacti, Zabbix or Munin. The CloudWatch information is used by the <a title="Amazon Web Services, Auto Scaling" href="http://aws.amazon.com/autoscaling/">Auto Scaling</a> function, but does not replace true monitoring. Some traditional hosting providers offer packaged monitoring with their services.</p>
<div id="attachment_974" class="wp-caption alignnone" style="width: 618px"><img class="size-full wp-image-974" title="AWS CloudWatch" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/AWS_cloudwatch.png" alt="AWS CloudWatch" width="608" height="215" /><p class="wp-caption-text">AWS CloudWatch</p></div>
<p>As far as the BCP and penalties are concerned, it amounts to being internally hosted: you are responsible for your resources and you manage failure / disaster recovery in line with the tool’s capacities (the AWS). This is where it’s important to understand the global nature of the architecture of Amazon services: if you don’t understand how the tool works, you will not be able to implement an effective BCP. As for penalties, there’s nothing unusual: it simply means a smaller bill for the month when you come under the ‘Service unavailable’ category as defined by Amazon criteria. This has nothing to do with the penalties based on the amounts lost due to unavailability.</p>
<p>It is imperative to consider Amazon web services as a tool. In spite of it being an accessible AWS support (that you can call for tools’ level questions and issues) that you can pay for, you will not get the full contractual potential you would have with a more traditional hosting provider, and broadly speaking, you will be responsible for your architecture on all levels (including the security of your instances: don’t lose your keys! ;ob).</p>
<p><strong><em>Security</em></strong><br />
Security…  frequently a taboo topic, as soon as we start talking about Cloud computing. I don’t mean the integrity of stored data or even access management on the virtual instances we are responsible for, I’m talking about the confidentiality of the stored data on the different services (S3, EBS, EC2, SQS, etc.) or data which transit between those services.</p>
<p>The first key point is that the level of security supplied in Amazon datacenters, not just physically but &#8211; equally importantly &#8211; in programmatically terms, will still be streets ahead of your average corporate computer room, even the datacenters of the smallest hosting providers. Firstly because that is Amazon’s business: a security problem revealed in their infrastructure would have immediate implications in terms of user reactions (and thus in terms of business ;ob). It is therefore an essential detail, especially as Amazon have to prove themselves in this sensitive area and they are therefore obliged to do their best to win their customers over. Furthermore, the sheer size of their structure enables them to pool their investments in security and make them pay for themselves: this is not conceivable for the smallest companies, or companies who do not specialize therein. Amazon therefore has the means and the obligation to ensure security.</p>
<p>What provokes my scepticism is that Cloud is not easily audited. You have to have faith. It is no more risky than placing your trust in a traditional hosting provider, or in your own internal teams… But it’s brand new! So be careful! A normal reaction. But perhaps this is exactly an opportunity for us to work on security at our own level, something often neglected, due to over-confidence or lack of interest. The first task is to encrypt the information: for stored data as well as data in transit. Remember to take into account the CPU overhead encryption/decryption procedures. The second is to fully understand the various security mechanisms of Amazon’s services:</p>
<div id="attachment_971" class="wp-caption alignright" style="width: 149px"><img class="size-full wp-image-971" title="AWS Multi-Factor Authentication" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/mfa.gif" alt="AWS Multi-Factor Authentication" width="139" height="67" /><p class="wp-caption-text">AWS Multi-Factor Authentication</p></div>
<ul>
<li>Access Credentials: Access Keys, X.509      Certificates &amp; Key Pairs</li>
<li>Sign-In Credentials: E-mail Address,      Password &amp; AWS Multi-Factor Authentication Device</li>
<li>Account Identifiers: AWS Account ID &amp;      Canonical User ID</li>
</ul>
<p>Next you must select the people who’ll be authorized to access the different security keys.</p>
<p><strong><em>Conclusion</em></strong><br />
The facilities provided by Cloud Computing inevitably come with some measure of reduced control and visibility on certain parts of the infrastructure, especially on the network. That’s the price you pay, be it quite negligible, or truly problematic: it all depends on your requirements.</p>
<p>AWS should be viewed as a complete tool, but one which does not excuse you from performing all the best practices or obtaining all the standard components of an infrastructure: log server, monitoring, BCP, configuration manager, etc. All these elements are and will continue to be your responsibility. One mustn’t have too naïve an expectation: as AWS offers HaaS and IaaS, you will still need a competent systems administrator, and particularly one who fully understands the AWS architecture (otherwise you might be disappointed) &#8211; if you switch to GAE (Google App Engine), you will still need an architect who fully understands GAE architecture, etc. The business is constantly evolving.</p>
<p>As for AWS security, I am reasonably confident. It must be emphasized firstly that information and data are probably less secure within your own company than entrusted to Amazon (in most cases anyway &#8211; I shouldn’t generalize ;ob).  AWS’ exposure on the Net and Amazon’s commitment to the business imply that Amazon take security very seriously. Furthermore, you are responsible for a large part of this security (management of the keys, etc.) and believe me, that is surely the most risky feature. When it comes to transferring and storing data, think “encryption”.</p>
<p><em><strong>Frédéric FAURE</strong></em> <a href="http://twitter.com/fredericfaure" title="Frédéric FAURE @Twitter">@Twitter</a> <a href="http://www.ysance.com/" title="Ysance, Simplifions les projets informatiques">@Ysance</a></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2010/06/cloud-aws-infrastructure-vs-physical-infrastructure-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cloud AWS Infrastructure vs. Physical Infrastructure (1/2)</title>
		<link>http://decrypt.ysance.com/2010/06/cloud-aws-infrastructure-vs-physical-infrastructure-1/</link>
		<comments>http://decrypt.ysance.com/2010/06/cloud-aws-infrastructure-vs-physical-infrastructure-1/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 15:44:12 +0000</pubDate>
		<dc:creator>Frédéric Faure</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[HaaS]]></category>
		<category><![CDATA[IaaS]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=1119</guid>
		<description><![CDATA[I’ve been noticing again many questions about the differences inherent in choosing between a Cloud infrastructure such as <a title="Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) and a traditional physical infrastructure. Firstly, there are a certain number of preconceived notions on this subject that I will attempt to decode for you. Then, it must be understood that each infrastructure has its advantages and disadvantages: a Cloud-type infrastructure does not necessarily fulfill your requirements in every case, however, it can satisfy some of them by optimizing or facilitating the features offered by a traditional physical infrastructure. I will therefore demonstrate the differences between the two that I have noticed, in order to help you make up your own minds.

[...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been noticing again many questions about the differences inherent in choosing between a Cloud infrastructure such as <a title="Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) and a traditional physical infrastructure. Firstly, there are a certain number of preconceived notions on this subject that I will attempt to decode for you. Then, it must be understood that each infrastructure has its advantages and disadvantages: a Cloud-type infrastructure does not necessarily fulfill your requirements in every case, however, it can satisfy some of them by optimizing or facilitating the features offered by a traditional physical infrastructure. I will therefore demonstrate the differences between the two that I have noticed, in order to help you make up your own minds.</p>
<p><strong><em>One year already!</em></strong><br />
Firstly allow me to direct you to a previous article I wrote on this subject nearly a year ago: <a href="../2009/03/cloud-computing-avenir/" title="Decrypt, Outlook is Cloudy … So much the better!">Outlook is Cloudy … So much the better!</a> (French version). I won’t paraphrase what I have already explained, purely in the spirit of DRY (Don’t Repeat Yourself :o))  and I will capitalize on the experience I have gained in this topic over the past year (Cloud Computing in general and AWS – Amazon Web Services – in particular), to answer some legitimate questions I have encountered since then.</p>
<p><img class="size-full wp-image-510" title="Logo AWS" src="http://decrypt.ysance.com/wp-content/uploads/2009/08/logo_aws.gif" alt="Logo AWS" width="164" height="60" /></p>
<p><strong><em>The Framework</em></strong></p>
<p><em><span style="text-decoration: underline;">Cloud</span></em><br />
As a reminder, there are several types of Cloud possibilities and I will stick with the AWS types which are infrastructure-oriented services, rather than the Google-type services (<a title="Google App Engine" href="http://code.google.com/intl/fr/appengine/">GAE</a> &#8211; Google App Engine), to mention just one, which offers a running environment for your web applications developed with the APIs provided (similar to a framework). In fact, regarding the latter, we can’t speak for clients (they are the ones holding the credit card) about infrastructure management, because we upload our application using the APIs provided and leave the entire infrastructure management to the service provider. It doesn’t mean it’s less about Cloud computing, but simply about a Cloud service that’s more PaaS-oriented than infrastructure-oriented.</p>
<div id="attachment_919" class="wp-caption alignnone" style="width: 572px"><img class="size-large wp-image-919" title="XaaS" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/XaaS-1024x501.png" alt="XaaS" width="562" height="275" /><p class="wp-caption-text">Several abstraction layers: each editor directs its service to one or more layers.</p></div>
<p><em><span style="text-decoration: underline;">Physical infrastructure</span></em><br />
As far as physical infrastructure is concerned, I will examine the notion of self-hosted infrastructure and equally the notion of infrastructure supported by a hosting provider. Similarly, I’ll also look at infrastructures based directly on hardware, as well as those based on virtualized environments. Cloud computing is also based on virtualization, but we are not so interested in that technology here, rather the way in which it is provided to clients (you). In fact, you can simply start up instances via a console, as you do for EC2s if you have an ESX (VMware) for example, but it involves “only” a hypervisor which partitions the physical servers into several virtual computers. You will still have to take care of buying equipment (blades, etc.), configuring the network, etc. But we will come back to these details later.</p>
<p><strong><em>Cloud computing = Systems administrators marked down?</em></strong><br />
Yes, the sales are on! Are you looking for a sweater, a jacket, … a systems administrator? I have often come across people who think that Cloud (in the case of AWS) will enable them to get by without an experienced systems administrator, and to build an infrastructure with inferior competence. The answer is obvious: WRONG!</p>
<p>Perhaps a clever sales pitch can convince you that the various services are so user-friendly, you can do it all yourself, and that prepackaged AMIs (Amazon Machine Image) will make life easy, but it goes without saying that once you have started up the EC2 instances, you connect to the computers (SSH / port 22 for Linux and TSE / port 3389 for Windows), then you have to set the parameters, do the fine-tuning, etc.</p>
<p><img class="size-full wp-image-938 alignright" title="Logo Google App Engine" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/google_app_engine.png" alt="Logo Google App Engine" width="70" height="70" /></p>
<p>What applies to systems administrators faced with AWS applies equally to systems architects in the context of Cloud computing services providing access to higher layers (PaaS like Google App Engine). A person with experience in the field, able to set up the infrastructure requirement is needed: the tool may change but the skills must still be available. Note however that if you use GAEs, you don’t need a systems administrator for the application. If the Cloud service editor is offering a service in a given layer (HaaS, IaaS, PaaS, etc.), there is no longer any need for people to deal with the lower layers. However, we do accept the framework supplied by the Cloud editor.</p>
<p>The systems administrator cannot be done away with, but his role is changing: he is becoming more and more of a developer. Indeed, being able to pull up resources on the fly will enable infrastructure management to be scheduled and automated via scripts which will call up the APIs provided by Amazon enabling communication with its web services. Everything at Amazon is web service: EC2, EBS, SQS, S3, SimpleDB: the only non-SOAP or REST operations that exist are when you connect directly to EC2 instances that you called up via web service or when EC2 instances dialogue with the EBS that you called up via … I’ll let you guess.</p>
<p>The administrator can then, rather than going into the computer room, add a disk, connect a server (which would be the case with a physical architecture) or else pick up the phone and ask the host to do it (fetch a coffee… call again… take a Xanax or a Prozac pill…  ;ob), request resources via a script in Ruby or Python… You can then take automation of a Cloud infrastructure much, much further, with a set of scripts and tools (see <a href="../2009/05/cloud-computing-mise-en-place-infrastructure-aws-best-practices/" title="Decrypt, Installing an infrastructure on AWS: Best practices!">Installing an infrastructure on AWS: Best practices!</a> (French version)).</p>
<p><img class="size-full wp-image-890 alignnone" title="Logo Puppet - Reductive Labs" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/puppet-short.png" alt="Logo Puppet - Reductive Labs" width="151" height="44" /> <img class="size-full wp-image-429" title="Logo Capistrano" src="http://decrypt.ysance.com/wp-content/uploads/2009/07/capistrano-logo-big.png" alt="Logo Capistrano" width="200" height="76" /></p>
<p>The systems administrator’s craft is therefore evolving between a physical infrastructure and an AWS-type Cloud infrastructure: he is becoming more and more of a developer. But the systems administrator remains essential nevertheless.</p>
<p><em><strong>Elastic is fantastic!</strong></em><br />
As I mentioned earlier, one of the crucial differences between the two types of infrastructure is the flexibility and dynamism provided by the Cloud solution, compared to a traditional physical architecture (whether it is based on virtualization or not). That means the elimination of the time it takes to install and set up the logistics (equipment purchase, installation of the OS, connecting to the network – the physical network and the configuration of the interfaces, etc.). Likewise, when you no longer need an item of hardware (EC2 virtual instance, EBS volume, S3 object, etc.), you return it to the resource pool: it will be reinitialized so that none of your data can be retrieved, and made available again until the next web service call.</p>
<p>You also have complete access to certain elements such as security groups (firewall) set for each instance… And that’s very useful. It’s very practical, particularly compared to a traditional hosting provider: do you remember the last time you had to change the firewall rules?  Would you like a Xanax? Are you sure?  ;ob</p>
<p>But it’s not simply about the pros and cons of purchasing servers versus running instances. AWS are backed by datacenters which are already industrially organized and tested. All the safety standards that need to be met in terms of fire protection, computer cooling, redundant electrical power supply, physical security against break-ins, distributing the hardware across 2 or more physical datacenters for disaster recovery, etc. entail a colossal initial investment and even when everything is installed, you still won’t be able to recreate the same quality within your company (99% of the time, in any case). You can get all that however, or part of it, with a traditional hosting provider.</p>
<p>But there are also all the more software-like services, such as data durability management (redundancy/replication as on the EBS and on S3), accessibility or high availability, monitoring hardware (to be alerted<em> </em>when physical components are showing signs of weakening), procedures for breakdowns, etc. I will let you read <a href="../2009/11/les-9-principes-de-s3/" title="Decrypt, The 9 Principles of S3">The 9 Principles of S3</a> (French version), so you understand just how many concepts are included. You won’t get all that with a traditional hosting provider (and forget about having it @Home ;ob). The quality of the S3 service is effectively a huge advantage, especially compared to current pricing… Let’s talk about prices!</p>
<p><em><strong>The cost</strong></em><strong><em><br />
</em></strong>There are no fixed rules. With Cloud, you pay for the resource by the hour and when you stop using it, you stop paying. Instances (Linux at the time I’am writing the article, but Windows will come soon) can also be reserved on the AWS for one year or for three years: this is known as <a href="http://aws.amazon.com/ec2/#pricing" title="Amazon Web Services, Pricing EC2">Reserved Instances</a>: you pay a one-time fee at the start, and afterwards you pay the hourly usage charge at a discounted rate, which leads you to a tipping point starting from a certain percentage of the resource use over the year (or three years). For more information, click <a href="http://aws.amazon.com/ec2/reserved-instances/" title="Amazon Web Services, Reserved Instances">here</a>. To easily calculate how much your infrastructure will cost you, take advantage of the new calculator provided by Amazon: <a href="http://calculator.s3.amazonaws.com/calc5.html" title="Amazon Web Services, Simple Monthly Calculator">Simple Monthly Calculator</a>. In all cases one part is related to the hourly usage and another to your traffic/volume stored.</p>
<div id="attachment_857" class="wp-caption alignnone" style="width: 586px"><img class="size-full wp-image-857" title="Simple Monthly Calculator" src="http://decrypt.ysance.com/wp-content/uploads/2010/01/SimpleMonthlyCalculator-tiny.png" alt="Simple Monthly Calculator" width="576" height="346" /><p class="wp-caption-text">Simple Monthly Calculator</p></div>
<p>You can do the comparison with the cost of your local infrastructure or with that of your hosting provider. The Cloud set price is particularly attractive in the following cases:</p>
<ul>
<li>The set price is unbeatable for POCs, demonstrations/presentations or architecture load/validation tests.</li>
<li>It is very attractive for applications or APIs mounted on an SaaS-type economic model and for which you need to spend money on their resources only when the clients pay to use the abovementioned APIs.</li>
<li>It is a good price for the social applications found on Facebook, for example, and which can take off overnight thanks to the social media phenomenon and may experience a boom (or a drop) in hits.</li>
<li>It is also cost-effective when you are launching a new company, or a specific project within a larger entity and you do not wish to invest heavily in logistics right at the start.</li>
</ul>
<p>For all the many other specific cases among you, you’ll have to do your own calculations.</p>
<p><strong><em>Slacking off? No, of course not …</em></strong><br />
Usually, no matter what type of infrastructure you have, the same components and mechanisms should be installed. However, it must be acknowledged that often the cosy aspects of “home”-hosted infrastructure can lead to a certain lack of rigor on many issues. The fact that Amazon, with its AWS, offers a dynamic and volatile solution for these EC2s, compels you to install mechanisms (which should be standard) in order to consider failure or disaster recovery plans more seriously, given the volatile nature of the tool, and to identify the important data with the aim of ensuring data durability (EBS, S3 backups, etc).</p>
<p><strong><em>Conclusion</em></strong><br />
The evolving duties of infrastructure management can be clearly seen in this first part: from handling physical resources by means of APIs, underlying mechanisms ensuring data durability, availability of services, etc. right up to server power supply and the physical security of datacenters, all of which are supported transparently. The end result: one should “only” see the API which dialogs with a distant server. That is the difference with physical infrastructures. The virtualization (which is one facet of AWS) that we know and have already been using for some time now, is used by Amazon: it’s not so much a technical revolution  - even though I don’t deny the complexity of the implementation and support that goes into it – as the service offered with it, which provides the real added value.  It is matched with a new ‘pay-as-you-use’ aaS (as a Service) economic model. This has enabled the emergence of some applications (such as the games found on social networks), which only a few years ago would otherwise have been compromised by the initial investment.</p>
<p>We will examine the other aspects differentiating these architectures in my second article on the subject.</p>
<p><em><strong>Frédéric FAURE</strong></em> <a href="http://twitter.com/fredericfaure" title="Frédéric FAURE @Twitter">@Twitter</a> <a href="http://www.ysance.com/" title="Ysance, Simplifions les projets informatiques">@Ysance</a></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2010/06/cloud-aws-infrastructure-vs-physical-infrastructure-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ysance recrute Admin Système Cloud Computing</title>
		<link>http://decrypt.ysance.com/2010/06/ysance-recrute-admin-systeme-cloud-computing/</link>
		<comments>http://decrypt.ysance.com/2010/06/ysance-recrute-admin-systeme-cloud-computing/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 17:07:15 +0000</pubDate>
		<dc:creator>Frédéric Faure</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Offre Emploi]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=1229</guid>
		<description><![CDATA[Je profite de Decrypt pour annoncer qu'Ysance recrute un Administrateur Système "<em>Cloud Computing</em>" . Je joins ci-dessous la fiche descriptive de l'offre d'emploi communiquée. Si vous êtes intéressés pour nous rejoindre, vous pouvez contacter notre Chargée de Recrutement, Soria Boucebaine, à l'adresse <a href="mailto:soria.boucebaine@ysance.com">soria.boucebaine@ysance.com</a> ou bien par téléphone au <em>01 83 62 11 08</em>.

[...]
]]></description>
			<content:encoded><![CDATA[<p>Je profite de Decrypt pour annoncer qu&#8217;Ysance recrute un Administrateur Système &laquo;&nbsp;<em>Cloud Computing</em>&nbsp;&raquo; . Je joins ci-dessous la fiche descriptive de l&#8217;offre d&#8217;emploi communiquée. Si vous êtes intéressés pour nous rejoindre, vous pouvez contacter notre Chargée de Recrutement, Soria Boucebaine, à l&#8217;adresse <a href="mailto:soria.boucebaine@ysance.com">soria.boucebaine@ysance.com</a> ou bien par téléphone au <em>01 83 62 11 08</em>.</p>
<p><em><strong>Missions :</strong></em></p>
<ul>
<li> Installer et administrer des serveurs physiques et virtuels de type Cloud Computing (Amazon Web Services)</li>
<li>Superviser les serveurs</li>
<li>Assurer une continuité de service</li>
<li>Gérer les relations avec Amazon ainsi qu’avec les clients</li>
<li>Assurer une veille R&amp;D sur les nouveautés du marché</li>
<li>Mettre en place des PRA</li>
</ul>
<p><em><strong>Profil :</strong></em></p>
<p>Diplômé(e) d&#8217;un Bac + 2 à Bac + 5 en administration des réseaux, vous avez au minimum 3 ans d’expérience professionnelle sur un poste similaire. Vous démontrez un intérêt certain pour l’applicatif et connaissez obligatoirement Linux. Une expérience des projets soumis à des contraintes de montée en charge est indispensable.</p>
<p>Autonome, rigoureux(se), doté(e) d’un très bon relationnel et de fortes capacités d’adaptation, vous faites preuve d’un goût prononcé pour la technique. Vos qualités rédactionnelles, votre orientation client et votre empathie seront les clés de votre réussite sur ce poste. La maîtrise de l’anglais est impérative (l’ensemble de la documentation est en Anglais).</p>
<p>Pro-actif(ve), apte à travailler en équipe, passionné(e) de nouvelles technologies, vous souhaitez contribuer à la réalisation de projets ambitieux.</p>
<p>Référencés auprès de grands groupes de tous secteurs d&#8217;activités (banque/finance, distribution, services, transport, communication), nous vous proposons dès aujourd&#8217;hui de participer à de grands projets, riches techniquement et fonctionnellement.</p>
<p>En rejoignant Ysance, venez découvrir des projets innovants dans un environnement dynamique, à forte valeur ajoutée, et propice à des opportunités de carrière.</p>
<p><em><strong>A noter :</strong></em></p>
<ul>
<li> Poste basé sur Paris</li>
<li>CDI à pourvoir rapidement</li>
<li>Rémunération selon profil</li>
</ul>
<p>A bientôt !</p>
<p><em><strong>Frédéric FAURE</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2010/06/ysance-recrute-admin-systeme-cloud-computing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Formation AWS le 11 Juin 2010</title>
		<link>http://decrypt.ysance.com/2010/05/formation-aws-le-11-juin-2010/</link>
		<comments>http://decrypt.ysance.com/2010/05/formation-aws-le-11-juin-2010/#comments</comments>
		<pubDate>Thu, 20 May 2010 16:51:38 +0000</pubDate>
		<dc:creator>Frédéric Faure</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Formation]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=1136</guid>
		<description><![CDATA[<img class="size-full wp-image-510 alignleft" title="Logo AWS" src="http://decrypt.ysance.com/wp-content/uploads/2009/08/logo_aws.gif" alt="Logo AWS" width="164" height="60" />

Je profite de Decrypt pour annoncer que je donnerai une <a title="Ysance, Inscription Formation AWS du 11 Juin 2010" href="http://cloudcomputing.ysance.com/formation/inscription/inscription.html">formation</a> sur les <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) destinée aux professionnels le <strong>Vendredi 11 Juin 2010</strong>. Elle se déroulera à <strong>Paris </strong>en <strong>une journée</strong>. Cette formation est éligible au financement par les OPCA (Agefos, FAFIEC  …), peut être intégrée à une période de professionnalisation ou à un  DIF.

La formation sera axée à la fois sur une approche théorique et pratique, avec 30% du temps de formation passé à réaliser des travaux pratiques (sur les composants principaux que sont EC2, EBS et S3, ainsi que manipulation des outils et gestion de compte AWS), et sur une forte interactivité afin de répondre à toutes vos interrogations.

[...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-510 alignleft" title="Logo AWS" src="http://decrypt.ysance.com/wp-content/uploads/2009/08/logo_aws.gif" alt="Logo AWS" width="164" height="60" /></p>
<p>Je profite de Decrypt pour annoncer que je donnerai une <a title="Ysance, Inscription Formation AWS du 11 Juin 2010" href="http://cloudcomputing.ysance.com/formation/inscription/inscription.html">formation</a> sur les <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) destinée aux professionnels le <strong>Vendredi 11 Juin 2010</strong>. Elle se déroulera à <strong>Paris </strong>en <strong>une journée</strong>. Cette formation est éligible au financement par les OPCA (Agefos, FAFIEC  …), peut être intégrée à une période de professionnalisation ou à un  DIF.</p>
<p>La formation sera axée à la fois sur une approche théorique et pratique, avec 30% du temps de formation passé à réaliser des travaux pratiques (sur les composants principaux que sont EC2, EBS et S3, ainsi que manipulation des outils et gestion de compte AWS), et sur une forte interactivité afin de répondre à toutes vos interrogations.</p>
<p><em><strong>Qui peut y participer ? </strong></em><br />
Des chefs de projet, architectes techniques et fonctionnels, administrateurs système, responsables d’équipes de développement, directeur/responsable informatique.</p>
<p><em><strong>Quel est le programme proposé ?</strong></em></p>
<p><span style="color: #800000;"><strong><em><span style="text-decoration: underline;">1ère Demi-journée </span></em></strong><br />
<span style="text-decoration: underline;">Le Cloud Computing</span></span></p>
<ul>
<li><span style="color: #800000;"> De quoi s’agit-il ?</span></li>
<li><span style="color: #800000;"> Les acteurs du marché et leurs différentes approches (Amazon, Microsoft, Google, &#8230;)</span></li>
</ul>
<p><span style="color: #800000;"><span style="text-decoration: underline;">Le cas Amazon</span></span></p>
<ul>
<li><span style="color: #800000;"> De quoi s’agit-il ?</span></li>
<li><span style="color: #800000;"> Comparaison d&#8217;une infrastructure Cloud AWS avec une infrastructure physique classique</span></li>
<li><span style="color: #800000;"> Les cas d&#8217;utilisation</span></li>
<li><span style="color: #800000;"> Les coûts</span></li>
</ul>
<p><span style="color: #800000;"><span style="text-decoration: underline;">Les outils</span></span></p>
<ul>
<li><span style="color: #800000;"> Gestion de son compte (clés, certificats, facturation, support, &#8230;)</span></li>
<li><span style="color: #800000;"> Les consoles d&#8217;administration (Console AWS, ElasticFox, S3 Organiser)</span></li>
<li><span style="color: #800000;"> Les APIs</span></li>
</ul>
<p><span style="color: #800000;"><strong><span style="text-decoration: underline;"><em>2ème Demi-journée </em></span></strong><br />
<span style="text-decoration: underline;"> Les services infrastructure AWS</span></span></p>
<ul>
<li><span style="color: #800000;"> Elastic Compute Cloud (EC2)</span></li>
<li><span style="color: #800000;"> Elastic Block Storage (EBS)</span></li>
<li><span style="color: #800000;"> Simple Storage Service (S3)</span></li>
<li><span style="color: #800000;"> Séance de TP sur EC2, EBS et S3</span></li>
</ul>
<p><span style="color: #800000;"><span style="text-decoration: underline;">AWS&#8230; Encore un peu plus loin</span></span></p>
<ul>
<li><span style="color: #800000;"> Overview automatisation &amp; dynamisme : gestion de la configuration centralisée avec Puppet, déploiement automatisé avec Capistrano, monitoring avec Cacti &amp; Centreon/Nagios, gestion des logs avec Syslog-NG, auto-scalability, LVM, &#8230;</span></li>
</ul>
<p><span style="color: #800000;"><span style="text-decoration: underline;">Les informations utiles</span></span></p>
<ul>
<li><span style="color: #800000;"> Forums, sites, liens, livres blancs (sécurité, extension SI, &#8230;)</span></li>
</ul>
<p><em><strong>Quelles sont les modalités pratiques ?</strong></em><br />
<span style="text-decoration: underline;">Lieu :</span> Mediasites, 42 rue Legendre, 75017 Paris &#8211; Métro : Villiers<br />
<span style="text-decoration: underline;">Date :</span> Vendredi 11 juin 2010<br />
<span style="text-decoration: underline;">Heure :</span> 9h00 à 17h00</p>
<p><span style="text-decoration: underline;">Durée :</span> 1 journée<br />
<span style="text-decoration: underline;">Tarif :</span> 800 euros HT<br />
Toutes les sessions se déroulent dans le centre de Paris. Cette formation est éligible au financement par les OPCA (Agefos, FAFIEC …), peut être intégrée à une période de professionnalisation ou à un DIF. Nous pouvons vous aider à monter votre dossier.</p>
<p><strong>Pour vous inscrire</strong>, veuillez remplir ce <a title="Ysance, Inscription Formation AWS du 11 Juin 2010" href="http://cloudcomputing.ysance.com/formation/inscription/inscription.html">formulaire</a>.</p>
<p>Pour plus d’informations, veuillez contacter Catherine LHUISSIER à <a href="mailto:catherine.lhuissier@ysance.com">catherine.lhuissier@ysance.com</a>.<br />
Tél. : 01 83 62 11 58</p>
<p><strong>En espérant que vous viendrez nombreux. :o)</strong></p>
<p><em><strong>Frédéric FAURE</strong></em> <a title="Frédéric FAURE @Twitter" href="http://twitter.com/fredericfaure">@Twitter</a> <a title="Ysance, Simplifions les projets informatiques" href="http://www.ysance.com/">@Ysance</a></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2010/05/formation-aws-le-11-juin-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Infrastructure Cloud AWS Vs Infrastructure physique (2/2)</title>
		<link>http://decrypt.ysance.com/2010/02/infrastructure-cloud-aws-vs-infrastructure-physique-2/</link>
		<comments>http://decrypt.ysance.com/2010/02/infrastructure-cloud-aws-vs-infrastructure-physique-2/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 17:06:28 +0000</pubDate>
		<dc:creator>Frédéric Faure</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[HaaS]]></category>
		<category><![CDATA[IaaS]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=934</guid>
		<description><![CDATA[Et voici la suite tant attendue de la comparaison entre une infrastructure déployée sur le Cloud via les <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) et une infrastructure physique classique. Pour rappel, concernant l'infrastructure physique, je considère autant l'infrastructure hébergée soi-même que celle prise en charge chez un hébergeur spécialisé. De même, je considère autant les infrastructures reposant directement sur l'OS de la machine que celles reposant sur des environnements virtualisés. Le Cloud repose également sur de la virtualisation, mais ce n'est pas la technologie qui nous intéresse ici, mais la manière de la mettre à disposition des clients (vous).

[...]]]></description>
			<content:encoded><![CDATA[<p>Et voici la suite tant attendue de la comparaison entre une infrastructure déployée sur le Cloud via les <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) et une infrastructure physique classique. Pour rappel, concernant l&#8217;infrastructure physique, je considère autant l&#8217;infrastructure hébergée soi-même que celle prise en charge chez un hébergeur spécialisé. De même, je considère autant les infrastructures reposant directement sur l&#8217;OS de la machine que celles reposant sur des environnements virtualisés. Le Cloud repose également sur de la virtualisation, mais ce n&#8217;est pas la technologie qui nous intéresse ici, mais la manière de la mettre à disposition des clients (vous).</p>
<p><strong><em>Réseau et ressources partagées</em></strong></p>
<p>Un point important que le réseau&#8230; Et à plus d&#8217;un titre ! Effectivement, la configuration sur le Cloud est déjà prête, c&#8217;est commode. Mais cela implique que vous n&#8217;ayez pas la main dessus et par conséquent vous ne pourrez pas le monitorer vous même et donc déceler, par exemple, les causes d&#8217;un ralentissement. On note la même opacité en ce qui concerne les ressources partagées au niveau Cloud : il n&#8217;est pas possible de définir à notre niveau l&#8217;impact que peut avoir l&#8217;utilisation par d&#8217;autres personnes de la ressource que nous partageons (machine physique sur laquelle repose un EC2, partition d&#8217;un disque réseau EBS, bande passante réseau, &#8230;). Le monitoring réseau possible se limite en entrée/sortie de l&#8217;instance (par exemple un EBS est un disque réseau donc&#8230; pas moyen de vérifier l&#8217;état de la connectivité, on se contentera des Disk I/O). Le monitoring possible est concentré sur l&#8217;instance virtuelle EC2 elle-même (instance gérée par un hyperviseur et reposant sur une virtualisation Xen). La visibilité complète de notre infrastructure n&#8217;est donc pas possible au niveau Cloud. Cela est à prendre en compte&#8230; Et à accepter si vous souhaitez implémenter votre architecture sur le Cloud. La même opacité est à prendre en compte pour les autres ressources partagées comme citées précédemment (utilisation EBS, &#8230;).</p>
<div id="attachment_977" class="wp-caption alignnone" style="width: 554px"><img class="size-full wp-image-977" title="AWS : Isolation des Instance EC2 (from aws.amazon.com)" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/AWS_EC2_security.png" alt="AWS : Isolation des Instance EC2 (from aws.amazon.com)" width="544" height="343" /><p class="wp-caption-text">AWS : Isolation des Instance EC2 (from aws.amazon.com)</p></div>
<p>De même, au niveau des protocoles de communication, il n y&#8217;a pas de multicast possible, pensez-y dans le cas de certains clusters. C&#8217;est une limitation qui se comprend du fait de la portée que peut avoir un multicast mal maitrisé.</p>
<p>C&#8217;est le fonctionnement même du Cloud qui veut ça : il y a des facilités qui masquent un certain nombre d&#8217;éléments dont vous n&#8217;avez plus le contrôle.</p>
<p><strong><em>Astreintes, monitoring, PRA et pénalités</em></strong><br />
Une question qui m&#8217;a été posée plusieurs fois : &laquo;&nbsp;Amazon prend-il en charge des astreintes ?&nbsp;&raquo;. La réponse est non. Il faut voir les AWS comme un outil proposé par Amazon qui en assure le fonctionnement et l&#8217;évolution des fonctionnalités. En revanche, l&#8217;utilisation que vous en faite est à votre charge (de toute façon ils ne possèdent pas les clés privées de vos instances EC2, alors&#8230;) : pas monitoring, pas d&#8217;astreinte, pas de PRA (Plan de Reprise d&#8217;Activité) packagés.</p>
<p>Contrairement aux contrats spécifiques que vous pourrez passer avec vos hébergeurs, il faudra assumer vous même ces éléments, ou, pour des astreintes par exemple, les dédier à des sociétés faisant de l&#8217;infogérance. Pour le monitoring idem : le monitoring proposé par Amazon, <a href="http://aws.amazon.com/cloudwatch/" title="Site de Amazon Web Services, Amazon CloudWatch">Amazon CloudWatch</a>, propose des informations (%CPU, bytes read/written sur disque et bytes in/out sur réseau) trop succinctes pour un réel monitoring tel que le ferait un Centreon/Nagios, Cacti, Zabbix ou Munin. Ces informations (celles de CloudWatch) sont utilisées par la fonctionnalité <a href="http://aws.amazon.com/autoscaling/" title="Site de Amazon Web Services, Auto Scaling">Auto Scaling</a>, mais ne remplacent pas un vrai monitoring. Certains hébergeurs classiques proposent du monitoring intégré à leur prestation.</p>
<div id="attachment_974" class="wp-caption alignnone" style="width: 618px"><img class="size-full wp-image-974" title="AWS CloudWatch" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/AWS_cloudwatch.png" alt="AWS CloudWatch" width="608" height="215" /><p class="wp-caption-text">AWS CloudWatch</p></div>
<p>Concernant le PRA et les pénalités, cela revient à un hébergement en interne : vous êtes responsables de vos ressources et gérez les reprises sur incident en fonction des possibilités de l&#8217;outil (les AWS). C&#8217;est là qu&#8217;il est important de comprendre l&#8217;architecture des services Amazon dans leur globalité : si vous ne comprenez pas le fonctionnement de l&#8217;outil, vous ne pourrez mettre en place un PRA efficace. Concernant, les pénalités, rien de notable, il s&#8217;agit d&#8217;un allégement sur la facture du mois quand vous rentrez dans le cadre de l&#8217;indisponibilité du service selon les critères Amazon. Rien à voir avec des pénalités basées sur les montants perdus dûs à l&#8217;indisponibilité.</p>
<p>Il faut voir les services web Amazon comme un outil. Malgré, un support payant accessible, vous n&#8217;aurez pas les possibilités contractuelles que vous pourriez avoir avec un hébergeur plus classique et, de manière générale, serez responsable de votre architecture à tous points de vue (y compris au niveau de la sécurité de vos instances : ne perdez pas vos clés ! ;ob).</p>
<p><em><strong>La sécurité</strong></em><br />
La sécurité&#8230; Un point souvent tabou dès que l&#8217;on commence à parler de Cloud Computing. Je ne parle pas de l&#8217;intégrité des données stockées ou bien de la gestion des accès sur les instances virtuelles à notre charge, je parle de la confidentialité des données stockées sur les différents services (S3, EBS, EC2, SQS, &#8230;) ou qui transitent entre lesdits services.</p>
<p>Tout d&#8217;abord, le premier point à noter est que le niveau de sécurité dans les datacenters d&#8217;Amazon, que ce soit physiquement ou bien informatiquement parlant, sera de toute façon meilleure que dans bons nombres de salles machines d&#8217;entreprises, voire de datacenters d&#8217;hébergeurs plus petits. Tout d&#8217;abord parce que c&#8217;est leur fond de commerce : un problème de sécurité dévoilé sur leur infrastructure aurait des implications immédiates en termes de &laquo;&nbsp;ressenti utilisateur&nbsp;&raquo; (et donc de business ;ob).  C&#8217;est donc un point essentiel, surtout qu&#8217;ils ont tout à prouver dans ce domaine sensible, ils sont donc obligés de faire le maximum pour convaincre. En plus, l&#8217;importance de la taille de leur structure leur permet de mutualiser et de rentabiliser les coûts investis dans ce domaine, ce qui n&#8217;est pas envisageable pour de plus petites entreprises, ou des entreprises dont ce n&#8217;est pas le métier. Amazon a donc la possibilité et l&#8217;obligation de se soucier de la sécurité.</p>
<p>Ce qui amène ce scepticisme, c&#8217;est que le Cloud est difficilement auditable. Il faut faire confiance. Ce n&#8217;est pas plus risqué que de faire confiance à un hébergeur classique ou bien de faire confiance à ses équipes en interne&#8230; Mais c&#8217;est nouveau ! Alors méfiance ! C&#8217;est une réaction normale. Mais c&#8217;est peut-être l&#8217;occasion de travailler justement sur la sécurité au niveau sur lequel nous avons la main, chose qui est parfois laissé de côté par excès de confiance ou désintéressement. La première chose est de crypter les informations, autant celles stockées que celles qui transitent. Attention à prendre en compte le surcoût CPU des traitements liés au cryptage/décryptage. La seconde est de bien comprendre les différents mécanismes de sécurité des services Amazon :</p>
<div id="attachment_971" class="wp-caption alignright" style="width: 149px"><img class="size-full wp-image-971" title="AWS Multi-Factor Authentication" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/mfa.gif" alt="AWS Multi-Factor Authentication" width="139" height="67" /><p class="wp-caption-text">AWS Multi-Factor Authentication</p></div>
<ul>
<li>Access Credentials: Access Keys, X.509 Certificates &amp; Key Pairs</li>
<li> Sign-In Credentials: E-mail Address, Password &amp; AWS Multi-Factor Authentication Device</li>
<li> Account Identifiers: AWS Account ID &amp; Canonical User ID</li>
</ul>
<p>Il faut ensuite identifier les personnes qui pourront avoir accès aux différentes clés de sécurité.</p>
<p><em><strong>Conclusion</strong></em><br />
Les facilités apportées par le Cloud Computing sont obligatoirement accompagnées d&#8217;une maitrise et d&#8217;une visibilité moindres sur certaines parties de l&#8217;infrastructure, surtout au niveau réseau. C&#8217;est le prix à payer qui peut être tout à fait négligeable ou réellement problématique : tout dépend de vos besoins.</p>
<p>Il faut voir les AWS comme un outil complet, mais qui ne vous exemptera pas de toutes les bonnes pratiques et de tous les composants standards d&#8217;une infrastructure : serveur de logs, monitoring, PRA, gestionnaire de configuration, &#8230; Tous ces éléments sont et resteront à votre charge. Il ne faut pas avoir une vision trop naïve : les AWS proposant des services HaaS (Hardware as a Service) et IaaS (Infrastructure as a Service), vous aurez toujours besoin d&#8217;un administrateur système compétent et surtout qui aura bien compris l&#8217;architecture des AWS (ou vous risquez d&#8217;aller vers des déconvenues), si vous passez à GAE (Google App Engine), vous aurez toujours besoin d&#8217;un architecte qui aura bien compris l&#8217;architecture des GAE, &#8230; Le métier évolue.</p>
<p>Concernant la sécurité, je suis plutôt confiant. Il faut souligner d&#8217;abord que les informations sont probablement moins sécurisées chez vous que chez Amazon (enfin bien souvent, pas de généralités ;ob). L&#8217;exposition des AWS sur le Net et l&#8217;engagement d&#8217;Amazon dans ce business impliquent qu&#8217;Amazon prenne ce sujet très au sérieux. De plus, vous êtes responsables d&#8217;une bonne partie de cette sécurité (gestion des clés, &#8230;) et, croyez moi, c&#8217;est sûrement le point qui sera le plus risqué. Concernant le transfert et le stockage des données, pensez chiffrement.</p>
<p><em><strong>Frédéric FAURE</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2010/02/infrastructure-cloud-aws-vs-infrastructure-physique-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Infrastructure Cloud AWS Vs Infrastructure physique (1/2)</title>
		<link>http://decrypt.ysance.com/2010/02/infrastructure-cloud-aws-vs-infrastructure-physique-1/</link>
		<comments>http://decrypt.ysance.com/2010/02/infrastructure-cloud-aws-vs-infrastructure-physique-1/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 15:40:17 +0000</pubDate>
		<dc:creator>Frédéric Faure</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[HaaS]]></category>
		<category><![CDATA[IaaS]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=836</guid>
		<description><![CDATA[Je constate encore beaucoup d'interrogations sur les différences impliquées par le choix d'une infrastructure Cloud de type <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) ou d'une infrastructure physique classique. Tout d'abord, il y a un certain nombre d'idées reçues sur le sujet que je vais tenter de décrypter pour vous. Ensuite, il faut comprendre que chaque infrastructure présente des avantages et des inconvénients : une infrastructure de type Cloud ne correspondra pas forcément à vos besoins dans tous les cas, cependant, elle peut répondre à certains d'entre eux en optimisant ou facilitant ce que propose une infrastructure physique classique. Je vais donc présenter les différences que j'ai notées entre ces 2 infrastructures afin de vous aider à y voir plus clair et que vous puissiez vous faire une idée.

[...]]]></description>
			<content:encoded><![CDATA[<p>Je constate encore beaucoup d&#8217;interrogations sur les différences impliquées par le choix d&#8217;une infrastructure Cloud de type <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">AWS</a> (Amazon Web Services) ou d&#8217;une infrastructure physique classique. Tout d&#8217;abord, il y a un certain nombre d&#8217;idées reçues sur le sujet que je vais tenter de décrypter pour vous. Ensuite, il faut comprendre que chaque infrastructure présente des avantages et des inconvénients : une infrastructure de type Cloud ne correspondra pas forcément à vos besoins dans tous les cas, cependant, elle peut répondre à certains d&#8217;entre eux en optimisant ou facilitant ce que propose une infrastructure physique classique. Je vais donc présenter les différences que j&#8217;ai notées entre ces 2 infrastructures afin de vous aider à y voir plus clair et que vous puissiez vous faire une idée.</p>
<p><em><strong>Déjà un an</strong></em><br />
Je me permets tout d&#8217;abord de vous orientez vers un précédent article que j&#8217;ai écrit il y a maintenant près d&#8217;un an sur le sujet : <a href="http://decrypt.ysance.com/2009/03/cloud-computing-avenir/" title="Decrypt, Un avenir nuageux… Et c’est tant mieux !">Un avenir nuageux… Et c’est tant mieux !</a>. Je ne paraphraserai pas ce que j&#8217;ai déjà expliqué précédemment dans une optique purement DRY (Don&#8217;t Repeat Yourself :o)) et profiterai de cette année d&#8217;expérience supplémentaire sur le sujet (le Cloud Computing en général et AWS &#8211; Amazon Web Services &#8211; en particulier) pour répondre aux interrogations légitimes que j&#8217;ai croisées depuis.</p>
<p><img class="size-full wp-image-510" title="Logo AWS" src="http://decrypt.ysance.com/wp-content/uploads/2009/08/logo_aws.gif" alt="Logo AWS" width="164" height="60" /></p>
<p><em><strong>Le cadre</strong></em><br />
<em><span style="text-decoration: underline;">Le Cloud</span></em><br />
Pour rappel, il y a plusieurs types d&#8217;offres au niveau du Cloud et je vais m&#8217;attacher à celles de type AWS qui sont des offres orientées infrastructures plutôt que des offres de type Google (<a title="Site de Google App Engine" href="http://code.google.com/intl/fr/appengine/">GAE</a> ou Google App Engine), pour ne citer que lui, qui propose un environnement d’exécution pour vos applications web développées avec les APIs mises à disposition (un framework en quelque sorte). En effet, dans le dernier cas, on ne peut pas parler au niveau client (nous qui mettons la carte bleue) de gestion d&#8217;infrastructure puisque nous uploadons notre application utilisant les APIs fournies et laissons l&#8217;intégralité de la gestion de l&#8217;infrastructure au fournisseur du service. Il ne s&#8217;agit pas moins de Cloud Computing, mais simplement d&#8217;une offre de Cloud orientée &laquo;&nbsp;PaaS&nbsp;&raquo; plutôt que infrastructure.</p>
<div id="attachment_919" class="wp-caption alignnone" style="width: 572px"><img class="size-large wp-image-919" title="XaaS" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/XaaS-1024x501.png" alt="XaaS" width="562" height="275" /><p class="wp-caption-text">Plusieurs couches de virtualisation : chaque éditeur oriente son offre vers une ou plusieurs couches.</p></div>
<p><em><span style="text-decoration: underline;">L&#8217;infrastructure physique</span></em><br />
Concernant l&#8217;infrastructure physique, je considère autant l&#8217;infrastructure hébergée soi-même que celle prise en charge chez un hébergeur spécialisé. De même, je considère autant les infrastructures reposant directement sur l&#8217;OS de la machine que celles reposant sur des environnements virtualisés. Le Cloud repose également sur de la virtualisation, mais ce n&#8217;est pas la technologie qui nous intéresse ici, mais la manière de la mettre à disposition des clients (vous). En effet, vous pourrez démarrer simplement des instances via une console, comme pour les EC2, si vous avez un ESX (VMware) par exemple, mais il s&#8217;agit &laquo;&nbsp;uniquement&nbsp;&raquo; d&#8217;un hyperviseur qui partitionne les serveurs physiques en plusieurs machines virtuelles. Vous aurez donc toujours les problématiques d&#8217;achat de matériel (lames, &#8230;), de configuration du réseau, &#8230; Mais nous entrerons dans ces détails plus tard.</p>
<p><em><strong>Le Cloud Computing = Administrateurs Systèmes en solde</strong></em> ?<br />
Et oui, c&#8217;est la période des soldes ! Un pull, une veste, &#8230; Un administrateur système ? Plusieurs fois, j&#8217;ai croisé des gens pensant que le Cloud (dans le cas des AWS) allait permettre de se passer d&#8217;administrateurs systèmes expérimentés et de pouvoir monter une infrastructure avec des connaissances moindre. La réponse est claire : C&#8217;est complètement faux !</p>
<p>Peut-être qu&#8217;un discours commercial mettant en avant la facilité d&#8217;utilisation des différents services laisse envisager cette éventualité et que des AMIs (Amazon Machine Image) déjà prépackagées vont nous faciliter la vie, mais il n&#8217;en reste pas moins que une fois les instances EC2 démarrées, vous vous connectez aux machines (SSH / port 22 pour Linux et TSE / port 3389 pour Windows) et vous devez les paramétrer, les tuner, &#8230;</p>
<p><img class="size-full wp-image-938 alignright" title="Logo Google App Engine" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/google_app_engine.png" alt="Logo Google App Engine" width="70" height="70" /></p>
<p>Ce qui est vrai pour l&#8217;administrateur système dans le cadre des AWS est aussi vrai pour les architectes dans le cadre de services de Cloud Computing proposant l&#8217;accès à des couches plus hautes ( &laquo;&nbsp;PaaS&nbsp;&raquo; comme Google App Engine, &#8230;). Il y a besoin d&#8217;une personne connaissant le métier et pouvant mettre en place le besoin en termes d&#8217;infrastructure : l&#8217;outil change, mais les compétences doivent toujours être là. A noter tout de même que si on utilise les GAE, il ne sera pas nécessaire d&#8217;avoir un administrateur système pour l&#8217;application elle-même. Si l&#8217;éditeur de service Cloud propose un service dans une couche donnée (HaaS, IaaS, PaaS, &#8230;), il n&#8217;y a plus besoin des personnes s&#8217;occupant des couches inférieures. Cependant, on accepte le cadre fournit par l&#8217;éditeur de Cloud.</p>
<p>L&#8217;administrateur système reste incontournable, mais il évolue : il devient de plus en plus un développeur. En effet, la possibilité de lever des ressources à la volée va permettre d&#8217;ordonnancer, d&#8217;automatiser, la gestion de l&#8217;infrastructure via des scripts qui feront appel aux APIs mises à disposition par Amazon permettant de communiquer avec ses services web. Tout est service web chez Amazon : EC2, EBS, SQS, S3, SimpleDB, &#8230;), les seules opérations non SOAP ou REST est lorsque vous vous connectez directement aux instances EC2 que vous avez levées via service web ou que les instances EC2 dialoguent avec les EBS que vous avez levés via&#8230; Je vous laisse deviner.</p>
<p>L&#8217;administrateur peut alors, plutôt que d&#8217;aller en salle machine, ajouter un disque, brancher un serveur, &#8230; (ce qui serait le cas dans une architecture physique) ou bien prendre le téléphone et demander à l&#8217;hébergeur de le faire (prendre un café&#8230; Appeler de nouveau&#8230; Prendre un Xanax ou un Prozac&#8230; ;ob), demander l&#8217;obtention de ressources via un script en Ruby, Python, &#8230; Il est ensuite possible de pousser beaucoup plus loin l&#8217;automatisation d&#8217;une infrastructure Cloud via un ensemble de scripts et d&#8217;outils (Cf. <a href="http://decrypt.ysance.com/2009/05/cloud-computing-mise-en-place-infrastructure-aws-best-practices/" title="Decrypt, Mise en place d’une infrastructure sur AWS : best practices !">Mise en place d’une infrastructure sur AWS : best practices !</a>).</p>
<p><img class="size-full wp-image-890 alignnone" title="Logo Puppet - Reductive Labs" src="http://decrypt.ysance.com/wp-content/uploads/2010/02/puppet-short.png" alt="Logo Puppet - Reductive Labs" width="151" height="44" /> <img class="size-full wp-image-429" title="Logo Capistrano" src="http://decrypt.ysance.com/wp-content/uploads/2009/07/capistrano-logo-big.png" alt="Logo Capistrano" width="200" height="76" /></p>
<p>Le métier de l&#8217;administrateur système évolue donc entre une infrastructure physique et une infrastructure Cloud type AWS : il devient de plus en plus un développeur. Mais il n&#8217;en reste pas moins indispensable.</p>
<p><strong><em>L&#8217;Elastic c&#8217;est fantastique !</em></strong><br />
Comme évoqué précédemment, une des différences cruciales entre les 2 types d&#8217;infrastructures, c&#8217;est la souplesse et le dynamisme apporté par la solution Cloud par rapport à une architecture physique classique (qu&#8217;elle repose sur de la virtualisation ou non). C&#8217;est à dire la suppression du temps de mise en place de la logistique (achat de matériel, installation de l&#8217;OS, raccordement au réseau &#8211; physique et configuration des interfaces -, &#8230;). De même, quand vous n&#8217;avez plus besoin du matériel (instance virtuelle EC2, volume EBS, objet S3, &#8230;), vous le rendez au pool de ressources : il est alors réinitialisé afin qu&#8217;aucune de vos données ne puissent être récupérées et remis à disposition en attendant un autre appel web service.</p>
<p>Vous avez également un accès total à certains éléments comme les security groups (firewall) appliqués pour chaque machine, &#8230; Et c&#8217;est très utile. Cela est très pratique, notamment par rapport à un hébergeur classique : rappelez-vous la dernière fois que vous avez dû faire modifier les règles de firewall&#8230; Un petit Xanax ? Sûr ? ;ob</p>
<p>Mais il ne faut pas s&#8217;arrêter simplement à la notion d&#8217;achat de serveurs Vs démarrage d&#8217;instances. Derrière AWS, il y a des datacenters déjà montés et éprouvés de manière industrielle. Toutes les normes à respecter en terme de protection contre les incendies, le refroidissement des machines, les alimentations électriques redondantes, la sécurité physique contre les intrusions, la répartition des locaux physiques, &#8230; comportent un prix initial colossale et même une fois mises en place, vous ne pourrez reproduire une telle qualité chez vous (en tout cas dans 99% des cas). Vous pourrez cependant retrouver cela pour tout ou partie chez un hébergeur classique.</p>
<p>Mais il y a de plus tous les services plus &laquo;&nbsp;logiciels&nbsp;&raquo; comme la gestion de la durabilité des données (redondance/réplication comme sur les EBS et sur S3), l&#8217;accessibilité ou haute disponibilité, le monitoring hardware (à savoir quand est-ce que les composants physiques montrent des signes de faiblesse), les processus en cas de panne, &#8230; Je vous laisse lire <a href="http://decrypt.ysance.com/2009/11/les-9-principes-de-s3/" title="Decrypt, Les 9 principes de S3">Les 9 principes de S3</a>, pour comprendre l&#8217;exhaustivité des notions que cela regroupe. Tout cela, vous ne le retrouvez pas chez un hébergeur classique (et oubliez cela chez vous ;ob). La qualité du service est en effet un plus incomparable, surtout par rapport aux prix pratiqués&#8230; Les prix parlons-en !</p>
<p><strong><em>Les coûts<br />
</em></strong>Il n&#8217;y a pas de règle figée. Au niveau Cloud, vous payez la ressource à l&#8217;heure et lorsque vous la relâchez, vous ne payez plus. Il y a également la possibilité de réserver des instances (Linux pour l&#8217;instant) sur les AWS à l&#8217;année ou pour 3 ans, c&#8217;est ce que l&#8217;on appelle les <a href="http://aws.amazon.com/ec2/#pricing" title="Site de Amazon Web Services, Pricing EC2">Reserved Instances</a> : vous payez un forfait tout de suite et ensuite vous payez le coût horaire moins cher, ce qui vous amène à une bascule à partir d&#8217;un certain pourcentage d&#8217;utilisation de la ressource sur l&#8217;année (ou les 3 ans). Pour plus de détails, allez <a href="http://aws.amazon.com/ec2/reserved-instances/" title="Site de Amazon Web Services, Reserved Instances">ici</a>. Pour un calcul simple de combien vous coûtera votre infrastructure, profitez de la toute nouvelle calculatrice mise à disposition par Amazon, le <a href="http://calculator.s3.amazonaws.com/calc5.html" title="Site de Amazon Web Services, Simple Monthly Calculator">Simple Monthly Calculator</a>. Dans tous les cas il y a une par liée à l&#8217;utilisation horaire et une autre liée au trafic.</p>
<div id="attachment_857" class="wp-caption alignnone" style="width: 586px"><img class="size-full wp-image-857" title="Simple Monthly Calculator" src="http://decrypt.ysance.com/wp-content/uploads/2010/01/SimpleMonthlyCalculator-tiny.png" alt="Simple Monthly Calculator" width="576" height="346" /><p class="wp-caption-text">Simple Monthly Calculator</p></div>
<p>Vous pouvez effectuer la comparaison avec le coût de votre infrastructure locale ou bien avec ce que vous coûte votre hébergeur. La formule Cloud est notablement intéressante dans ces cas là :</p>
<ul>
<li>La formule est imbattable pour les POCs, les démonstrations/présentations ou bien les tests de charge/validation d&#8217;une architecture.</li>
<li>Elle est très intéressante pour les applications ou APIs montées elles mêmes sur un modèle économique de type SaaS et qui ne nécessitent de dépenser de l’argent pour leurs ressources qu’à partir du moment où des clients paient pour utiliser lesdites APIs.</li>
<li>Elle est intéressante pour les applications sociales que l’on trouve sur FaceBook, par exemple, et qui peuvent connaître un succès du jour au lendemain en profitant de phénomènes de viralité et voir leur fréquentation exploser (ou baisser).</li>
<li>Elle est intéressante également lorsque l&#8217;on lance une société ou que l&#8217;on débute une activité ou un projet spécifique au sein d&#8217;une entité plus importante et que l&#8217;on ne souhaite pas un fort investissement immédiat dans la logistique.</li>
</ul>
<p>Il vous faut pour les nombreux autres cas propres à chacun, faire votre calcul personnel.</p>
<p><em><strong>Laxisme ? Mais noooooooon&#8230;</strong></em><br />
Normalement, quelque soit le type d&#8217;infrastructure, les mêmes composants/mécanismes devraient être mis en place. Cependant, force est de constater que bien souvent le côté plus douillet de l’infrastructure hébergé « à la maison » pousse à une certaine forme de laxisme sur un certain nombre de points. Le fait que Amazon, avec ses AWS, propose une solution volatile et dynamique au niveau de ces EC2 oblige à mettre en place des mécanismes (qui devraient être standards) afin de prendre en compte plus sérieusement, du fait de la volatilité de l’outil, les plans de reprise sur incident et identifier les données importantes afin d’assurer leur durabilité (EBS, backups sur S3, &#8230;).</p>
<p><em><strong>Conclusion</strong></em><br />
On perçoit dans cette première partie l&#8217;évolution du métier de responsable d&#8217;infrastructure : la manipulation des ressources physiques se fait par le biais d&#8217;APIs, les mécanismes sous-jacents assurant la durabilité des données, la disponibilité des services, &#8230; jusqu&#8217;à l&#8217;alimentation électrique des serveurs et la sécurité physique des datacenters sont pris en charge de manière transparente. Au final, on ne voit &laquo;&nbsp;plus que&nbsp;&raquo; l&#8217;API qui dialogue avec un service distant. C&#8217;est là qu&#8217;est la différence avec les infrastructures physiques. La virtualisation (qui est une des facettes des AWS), que nous connaissons et utilisons déjà depuis quelques temps maintenant, est utilisée par Amazon : ce n&#8217;est pas tant une révolution technique, même si je ne doute pas de la complexité de mise en oeuvre derrière, c&#8217;est surtout le service offert qui est la vraie valeur ajoutée. Cela est accompagné d&#8217;un nouveau modèle économique aaS (as a Service) qui nous fait payer à l&#8217;utilisation. Cela permet à des applications (par exemple de type jeux que l&#8217;on retrouve sur les réseaux sociaux) de voir le jour, alors qu&#8217;il y a quelques années, leur émergence aurait été compromise par l&#8217;investissement initial.</p>
<p>Nous verrons les autres aspects différenciant ces architectures dans un second article sur le sujet.</p>
<p><em><strong>Frédéric FAURE</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2010/02/infrastructure-cloud-aws-vs-infrastructure-physique-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Le Cloud et Microsoft Windows Azure</title>
		<link>http://decrypt.ysance.com/2009/11/cloud-microsoft-windows-azure/</link>
		<comments>http://decrypt.ysance.com/2009/11/cloud-microsoft-windows-azure/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 17:35:09 +0000</pubDate>
		<dc:creator>Freddy Trancart</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=702</guid>
		<description><![CDATA[Fin octobre 2008, Microsoft avait annoncé officiellement son offre de Cloud : la <a title="Site de Windows Azure platform" href="http://www.microsoft.com/windowsazure/">plateforme Windows Azure</a>. Initialement prévue pour 2009, la sortie commerciale de Windows Azure a été repoussée à février 2010 et deviendra alors accessible aux entreprises moyennant finance. La plateforme Windows Azure regroupe un ensemble de services disponibles sur le nuage. Ces services sont physiquement hébergés dans les différents datacenters de Microsoft. Pour l'instant il existe deux datacenters aux Etats-Unis, un autre étant prévu prochainement en Europe. Les datacenters hébergeant les services et l'architecture de la plateforme Windows Azure sont conçus pour assurer une haute disponibilité et une forte scalabilité. Microsoft assure que la plateforme peut garantir une disponibilité de service sans interruption car les serveurs sont tous repliqués au moins deux fois. Le transfert vers le serveur de remplacement est automatique si le serveur principal a un problème. Les trois grands services proposés sont : <a title="Site de Windows Azure platform, Rubrique Windows Azure" href="http://www.microsoft.com/windowsazure/windowsazure/">Windows Azure</a>, <a title="Site de Windows Azure platform, Rubrique SQL Azure" href="http://www.microsoft.com/windowsazure/sqlazure/">SQL Azure</a> et <a title="Site de Windows Azure platform, Rubrique .NET Services" href="http://www.microsoft.com/windowsazure/dotnetservices/">.NET Services</a>.

[...]
]]></description>
			<content:encoded><![CDATA[<p>Fin octobre 2008, Microsoft avait annoncé officiellement son offre de Cloud : la <a title="Site de Windows Azure platform" href="http://www.microsoft.com/windowsazure/">plateforme Windows Azure</a>. Initialement prévue en 2009, la sortie commerciale de Windows Azure a été repoussée à février 2010 et deviendra alors accessible aux entreprises moyennant finance. La plateforme Windows Azure regroupe un ensemble de services disponibles sur le nuage. Ces services sont physiquement hébergés dans les différents datacenters de Microsoft. Pour l&#8217;instant il existe deux datacenters aux Etats-Unis, un autre étant prévu prochainement en Europe. Les datacenters hébergeant les services et l&#8217;architecture de la plateforme Windows Azure sont conçus pour assurer une haute disponibilité et une forte scalabilité. Microsoft assure que la plateforme peut garantir une disponibilité de service sans interruption car les serveurs sont tous repliqués au moins deux fois. Le transfert vers le serveur de remplacement est automatique si le serveur principal a un problème. Les trois grands services proposés sont : <a title="Site de Windows Azure platform, Rubrique Windows Azure" href="http://www.microsoft.com/windowsazure/windowsazure/">Windows Azure</a>, <a title="Site de Windows Azure platform, Rubrique SQL Azure" href="http://www.microsoft.com/windowsazure/sqlazure/">SQL Azure</a> et <a title="Site de Windows Azure platform, Rubrique .NET Services" href="http://www.microsoft.com/windowsazure/dotnetservices/">.NET Services</a>.</p>
<p><strong><em>Windows Azure, un système d&#8217;exploitation sur le cloud</em></strong><br />
<img class="size-full wp-image-707" title="Logo Windows Azure" src="http://decrypt.ysance.com/wp-content/uploads/2009/11/windows-azure-logo-lg.jpg" alt="Logo Windows Azure" width="359" height="66" /><br />
<a title="Site de Windows Azure platform, Rubrique Windows Azure" href="http://www.microsoft.com/windowsazure/windowsazure/">Windows Azure</a> est un système d&#8217;exploitation pour le cloud aux fonctionnalités limitées. Il permet de faire tourner des applications et de stocker des données. Il est facile d&#8217;augmenter une capacité de stockage ou d&#8217;exécution d&#8217;une application : bien entendu, le code de l&#8217;application doit aussi être prévu pour. Windows Azure prend en chargre la répartition de charge si il y a plusieurs instances de l&#8217;application.</p>
<p style="padding-left: 30px;"><em><strong>L&#8217;environnement d&#8217;exécution de Windows Azure : la Fabric</strong></em><br />
La Fabric est le nom donné à l&#8217;environnement d&#8217;exécution. Elle peut héberger deux types d&#8217;applications, nommés &laquo;&nbsp;roles&nbsp;&raquo; : les web roles et les worker roles. Les web roles sont des applications à l&#8217;écoute de requêtes, comme les sites web ou autres applications web traditionnelles. Ceux-ci tournent sous IIS 7. Les worker roles sont des applications qui tournent en tâche de fond. Les instances des différents rôles sont gérés par la Fabric. La Fabric suit les indications fournies par l&#8217;utilisateur dans le fichier de configuration du service.</p>
<p style="padding-left: 30px;"><strong><em>Le système de stockage de Windows Azure : Azure Storage Services</em></strong><br />
Azure Storage Services regroupe trois services de stockage de données : le blob storage service, le table storage service et le queue storage service. Le blob storage est l&#8217;équivalent du système de fichier. Il permet de stocker des fichiers. Pour les fichiers volumineux, il est prévu de pouvoir envoyer ou de récupérer les fichiers par parties. Il est possible d&#8217;associer des métadonnées à ces fichiers. Un service de cache (CDN), améliorant la rapidité d&#8217;accès partout dans le monde, est aussi proposé: c&#8217;est le <a title="Windows Azure Content Delivery Network" href="http://blogs.msdn.com/windowsazure/archive/2009/11/05/introducing-the-windows-azure-content-delivery-network.aspx">Windows Azure Content Delivery Network</a>. Ce service ne peut par contre être appliqué qu&#8217;aux fichiers publics puisque leur accès n&#8217;est soumis à aucune authentification. L&#8217;<a title="Azure Blob explorer" href="http://blobexplorer.codeplex.com/">Azure Blob explorer</a> offre une interface assez proche de l&#8217;explorateur de fichiers de Windows. Le table storage permet de stocker des données structurées, mais pas de manière relationnelle. Les tables contiennent des entités qui elles-mêmes contiennent des propriétés. Une table peut contenir des millions d&#8217;entités réparties physiquement sur plusieurs serveurs. Le queue storage est l&#8217;équivalent de Microsoft Message Queuing. Il permet de gérer une queue de messages, et donc une transmission asynchrone de messages. Ces trois moyens de stockage supportent une API REST, ce qui assure une large interopérabilité. L&#8217;intégrité des données est garantie par une triple sauvegarde des fichiers. L&#8217;accès est sécurisé grâce à une clé à fournir au moment de la requête.</p>
<p style="padding-left: 30px;"><strong><em>Développer pour Windows Azure</em></strong><br />
Chaque compte sur Windows Azure offre un environnement de test et un environnement de production. Pour déployer une application, il faut uploader un fichier .cspkg et le fichier xml de configuration du service .cscfg sur le portail d&#8217;administration de son compte Windows Azure. Le fichier .cspkg est en fait un répertoire encrypté et zippé contenant le code de l&#8217;application. Le déploiement se fait d&#8217;abord sur l&#8217;environnement de test. Le passage du test à la production se fait grâce à un bouton sur la page d&#8217;administration. Le fichier de configuration est accessible et modifiable en ligne après le déploiement. Une <a title="Service Management API" href="http://msdn.microsoft.com/en-us/library/ee460807.aspx">API REST</a> est dipsonible pour gérer certaines opérations de déploiement.</p>
<p style="padding-left: 30px;">Le développement pour Windows Azure est particulièrement bien intégré avec les outils Microsoft existants, et notamment Visual Studio. Il existe déjà des templates de projet pour le cloud. Microsoft fournit un SDK de développement pour le cloud. Le framework .NET de développement reste le même. Ce SDK ajoute simplement quelques classes et facilite l&#8217;intégration dans Visual Studio. Associé à Visual Studio, il permet de simuler plusieurs instances de l&#8217;application tournant simultanément et de simuler l&#8217;accès à l&#8217;Azure Storage. Le développement en .NET pour Windows Azure impose cependant quelques contraintes : le code doit être compilé et ne doit pas faire appel au système de fichier traditionnel.</p>
<p style="padding-left: 30px;">Windows Azure est ouvert aux applications écrites dans d&#8217;autres langages, tant que ceux-ci supportent le FastCGI, comme par exemple PHP, Ruby, Perl ou Python. Il faut pour cela activer l&#8217;utilisation de FastCGI, indiquer l&#8217;interpréteur utilisé dans le webrole.config et configurer le module de FastCGI de IIS 7 dans le web.config. Voici un <a title="Hosting FastCGI Applications" href="http://msdn.microsoft.com/en-us/library/dd573352.aspx">lien</a> indiquant la procédure à suivre.</p>
<p><em><strong>SQL Azure</strong></em><br />
<img class="size-full wp-image-708" title="Logo SQL Azure" src="http://decrypt.ysance.com/wp-content/uploads/2009/11/sql-azure-logo-lg.jpg" alt="Logo SQL Azure" width="261" height="72" /><br />
<a title="Site de Windows Azure platform, Rubrique SQL Azure" href="http://www.microsoft.com/windowsazure/sqlazure/">SQL Azure</a> est un service de base de données sur le cloud qui s&#8217;appuie largement sur les technologies de Microsoft SQL Server 2008, mais n&#8217;assure pas de compatiblité ascendante au niveau des types de données. C&#8217;est à dire que les types de données et instructions dépréciés (deprecated) dans SQL Server 2008 ne sont pas supportés : ce sont des instructions et surtout des types SQL qui existaient en SQL 2005 ou 2000 et qui ne pourront plus être utilisés avec Azure. Pratiquement toutes les opérations autorisées sur une base de données classiques sont disponibles, à l&#8217;exception des fonctionnalités ne relevant pas de l&#8217;objet base de données lui-même, mais plutôt de l&#8217;administration de serveur. Ainsi, il n&#8217;est pas possible de synchroniser ou de répliquer des bases de données, ce qui aurait d&#8217;ailleurs peu d&#8217;intérêt puisque Microsoft assure qu&#8217;il ne peut y avoir de rupture de service (haute disponibilité), les instances de base de données étant toutes répliquées (assurant ainsi également la durabilité de l&#8217;information). Le relais s&#8217;effectue automatiquement en cas de crash d&#8217;un serveur. L&#8217;accès à SQL Azure se fait grâce à un driver ODBC, le framework ADO .NET ou pour PHP via le driver PHP SQL Server. L&#8217;appel à la base de données reste assez classique, moyennant quelques contraintes. Par exemple, l&#8217;authentification Windows n&#8217;est pas acceptée, ni l&#8217;utilisation du MultipleActiveResultSet de SQL Server. Des outils d&#8217;administration apparaissent, tel qu&#8217;un <a title="Assistant à la migration de SQL Server vers SQL Azure" href="http://sqlazuremw.codeplex.com/">Assistant à la migration de SQL Server vers SQL Azure</a> ou un <a title="Outil de visualisation de données" href="http://hanssens.org/post/SQL-Azure-Manager.aspx">Outil de visualisation de données</a>.</p>
<p><em><strong>.NET Services</strong></em><br />
<img class="size-full wp-image-709" title="Logo App Fabric" src="http://decrypt.ysance.com/wp-content/uploads/2009/11/appfabric-logo.jpg" alt="Logo App Fabric" width="365" height="72" /><br />
Les <a title="Site de Windows Azure platform, Rubrique .NET Services" href="http://www.microsoft.com/windowsazure/dotnetservices/">.NET Services</a> offrent des fonctionnalités standards mais avec un large scope d&#8217;application : le Service Bus et le Access Control Service.</p>
<p style="padding-left: 30px;"><em><strong>Le Service Bus</strong></em><br />
Le Service Bus permet de connecter de manière sécurisée des services ou des applications Windows Azure et des bases SQL Azure avec d&#8217;autres applications et bases existantes, selon différents modèles de communication au travers du cloud, et de s&#8217;affranchir ainsi d&#8217;un certain nombre de problématiques réseau. Il s&#8217;agit du fonctionnement standard d&#8217;un bus de communication où l&#8217;application émettrice s&#8217;enregistre auprès du Service Bus avec une adresse de service du type</p>
<blockquote><p>sb://MyApp.servicebus.windows.net/Services/MyFirstService</p></blockquote>
<p style="padding-left: 30px;">Ainsi, tous les messages envoyés sur cette adresse seront redirigés vers les applications qui y auront souscrit. Vous pourrez trouver les différents modèles de communication (unicast et multicast, connexions bi-directionnelles, émetteurs et récepteurs multiples, &#8230;) sur la page du service.</p>
<p style="padding-left: 30px;"><em><strong>L&#8217;Access Control Service</strong></em><br />
L&#8217;Access Control Service permet de sécuriser l&#8217;utilisation d&#8217;applications par la mise en place de règles d&#8217;authentification et d&#8217;autorisation. C&#8217;est un système d&#8217;identité fédérée basé le projet <a title="Geneva" href="http://www.microsoft.com/forefront/geneva/en/us/overview.aspx">Geneva</a> de Microsoft. L&#8217;application demande une créance ( &laquo;&nbsp;claim&nbsp;&raquo; ) à son utilisateur, si celui-ci ne l&#8217;a pas il ne peut pas utiliser l&#8217;application.</p>
<p style="padding-left: 30px;">La séquence d&#8217;obtention est la suivante :</p>
<ol>
<li>l&#8217;application cliente demande à utiliser une fonctionnalité du service</li>
<li>le service lui demande le claim correspondant</li>
<li>l&#8217;application cliente demande le claim à un identity provider</li>
<li>l&#8217;identity provider vérifie son identité et lui fournit le claim</li>
<li>l&#8217;application cliente présente le claim au service</li>
<li>le service vérifie le claim et donne accès à la fonctionnalité</li>
</ol>
<p style="padding-left: 30px;">L&#8217;identity provider est un service tiers de confiance qui sait qui a droit à quel claim. L&#8217;avantage de ce fonctionnement est que l&#8217;application ne gère pas des accès selon des utilisateurs, mais selon des claim. La mise en place de ces règles se fait de manière déclarative grâce à des formulaires de saisie dans l&#8217;interface d&#8217;administration des .NET Services.</p>
<p><em><strong>Conclusion</strong></em><br />
Toutes les fonctionnalités proposées sur la plateforme peuvent être utilisées conjointement ou séparément, avec des applications elles-même hébergées dans le cloud ou bien sur votre propre infrastructure physique. Par exemple, pour une application hébergée sur un serveur physique de l&#8217;entreprise, il est possible de sauvegarder des données sur SQL Azure et les gros fichiers sur un blob dans le cloud. Il serait également possible d&#8217;enregistrer cette application sur le Service Bus et de la rendre accessible uniquement par ce biais qui serait soumis à des règles d&#8217;accès.</p>
<p>Il faut signaler que Microsoft a bien préparé son lancement en proposant des versions gratuites de test auprès d&#8217;utilisateurs intéressés, ce qui a permis un premier recadrage des fonctionnalités attendues. Il y a déjà un certain nombre de projets autour d&#8217;Azure et d&#8217;applications de démonstration et de test, et surtout une communauté d&#8217;utilisateurs plutôt active. A noter aussi l&#8217;existence d&#8217;un assez grand nombre de webcasts techniques sur la question. Le <a title="Windows Azure Platform Training Kit" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;displaylang=en">Windows Azure Platform Training Kit</a> contient des présentations techniques et des exemples assez éclairants.</p>
<p><strong><em>Freddy TRANCART</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2009/11/cloud-microsoft-windows-azure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
