<?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; IaaS</title>
	<atom:link href="http://decrypt.ysance.com/tag/iaas/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>Fri, 03 Feb 2012 08:25:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Le Web accélère avec Varnish !!!</title>
		<link>http://decrypt.ysance.com/2012/02/le-web-accelere-avec-varnish/</link>
		<comments>http://decrypt.ysance.com/2012/02/le-web-accelere-avec-varnish/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 19:42:44 +0000</pubDate>
		<dc:creator>Laurent Roux</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Haute Disponibilité]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Load Balancing]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[NCSA]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[Syslog-NG]]></category>
		<category><![CDATA[Varnish]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=2756</guid>
		<description><![CDATA[<img class="size-full wp-image-2795 alignright" title="Varnish Cache" src="http://decrypt.ysance.com/wp-content/uploads/2012/01/varnish_cache.jpg" alt="Varnish Cache" width="192" height="192" /><a title="Site de Varnish Cache" href="http://www.varnish-cache.org/" target="_blank">Varnish</a> est un outil fabuleux à bien des égards. C’est une boite à outils qui permet de simplifier, harmoniser, sécuriser et accélérer les architectures web. Nous allons aborder dans cet article certaines fonctionnalités de Varnish pour commencer à en tirer le maximum. Il se positionne comme un reverse proxy cache. En gros nous allons le placer en amont des serveurs Web pour intercepter les requêtes, mettre en cache ce qui est généré par les backends et resservir le contenu généré depuis son cache. Mais son fonctionnement peut aller plus loin.

<em><strong>Le fonctionnement</strong></em>
Varnish se configure simplement grâce à deux types de fichiers. Le fichier de configuration de Varnish où nous allons définir certains paramètres internes et les fichiers VCL qui permettent de configurer le comportement de Varnish via une sorte de langage de programmation.

[...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2795 alignright" title="Varnish Cache" src="http://decrypt.ysance.com/wp-content/uploads/2012/01/varnish_cache.jpg" alt="Varnish Cache" width="192" height="192" /><a title="Site de Varnish Cache" href="http://www.varnish-cache.org/" target="_blank">Varnish</a> est un outil fabuleux à bien des égards. C’est une boite à outils qui permet de simplifier, harmoniser, sécuriser et accélérer les architectures web. Nous allons aborder dans cet article certaines fonctionnalités de Varnish pour commencer à en tirer le maximum. Il se positionne comme un reverse proxy cache. En gros nous allons le placer en amont des serveurs Web pour intercepter les requêtes, mettre en cache ce qui est généré par les backends et resservir le contenu généré depuis son cache. Mais son fonctionnement peut aller plus loin.</p>
<p>&nbsp;</p>
<h3>Le fonctionnement</h3>
<p>Varnish se configure simplement grâce à deux types de fichiers. Le fichier de configuration de Varnish où nous allons définir certains paramètres internes et les fichiers VCL qui permettent de configurer le comportement de Varnish via une sorte de langage de programmation.</p>
<p><a title="Le principe de Varnish" href="https://www.varnish-cache.org/trac/wiki/VCLExampleDefault" target="_blank">Le principe de Varnish</a> s’appuie sur la machine à état suivante :</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-2761" title="VCL" src="http://decrypt.ysance.com/wp-content/uploads/2012/01/vcl-649x1024.png" alt="VCL" width="649" height="1024" /></p>
<p>&nbsp;</p>
<p>Varnish permet d’intervenir au niveau de chacun des états pour effectuer des opérations sur HTTP ou sur lui-même. C’est cette finesse d’intervention qui permet à Varnish d’être véloce et complet.</p>
<p>Un client effectue une requête sur une ressource qui n’est pas en cache suivra le cheminement suivant :<br />
<img class="size-full wp-image-2804" title="Varnish cache miss" src="http://decrypt.ysance.com/wp-content/uploads/2012/01/cache_miss.png" alt="Varnish cache miss" width="532" height="109" /><br />
Si cette ressource est demandée à nouveau, le chemin suivi change car la ressource est maintenant en cache :<br />
<img class="size-full wp-image-2806" title="Varnish cache hit" src="http://decrypt.ysance.com/wp-content/uploads/2012/01/cache_hit.png" alt="Varnish cache hit" width="404" height="116" /></p>
<p>Toutes ces étapes sont symbolisées en VCL par des “procédures standards” (vcl_recv, vcl_fetch, vcl_deliver&#8230; etc). Toutes ces procédures sont surchargables et nous pouvons aussi déclarer les nôtres qui seront appelées dans les procédures standards. Le langage VCL ne tolère aucun code orphelin, tout ce qui est déclaré doit être utilisé.</p>
<p>&nbsp;</p>
<h3>Le Cache</h3>
<p>Varnish propose un cache en mémoire et un cache sur disque. Mais il faut faire un choix, les deux ne sont pas cumulables. Le cache accepte à peu près tout ce qui passe dans les mains de Varnish (pages HTML, fichiers statics, flux de données en JSON&#8230; etc), à partir du moment où l’on déclare l’objet cachable et qu’il a une TTL.<br />
Le cache est alimenté juste après l’étape “Fetch”, en réalité c’est juste après la récupération de la donnée sur le backend. C’est à cet endroit que l’on va faire toutes les modifications de l’entête HTTP de la ressource cachée. Faire ces modifications au niveau du “Fetch” va permettre de garantir une entrée cache propre (ne pas avoir plusieurs entrées cache car une même ressource va avoir un payload différent). De plus l’objet est stocké dans le cache avec son entête HTTP, il est donc plus efficace de traiter une fois pour toute l’entête et la resservir avec l’objet.<br />
Comme nous le verrons plus loin, la compression d’objet influe aussi sur les performances du cache. Il est préférable de stocker un objet compressé et laisser Varnish le délivrer compressé ou non suivant l’entête “Accept-Encoding”.</p>
<p>La définition correct de la TTL d’un objet pour manager le cache-control est un élément important de Varnish. Nous pouvons contrôler le cache de façon précise en définissant la TTL pour un type de ressource ou pour une url par exemple :</p>
<blockquote>
<pre>if(beresp.ttl &gt; 0s){
  unset beresp.http.Expires;
  if ( req.backend == backend_S3 ) {
     set beresp.http.Cache-Control = "public, max-age=60";
     set beresp.ttl = 60s;
  } else {
     set beresp.http.Cache-Control = "public, max-age=7200";
     set beresp.ttl = 2h;
  }
}</pre>
</blockquote>
<p>Ici nous demandons à Varnish de cacher sur 60 secondes tout ce qui vient de le backend “backend_S3” et le reste sera caché deux heures.</p>
<p>Le cache peut se manager de deux façons différentes :</p>
<li>Via des appels HTTP par la méthode PURGE et en gérant des ACLs pour sécuriser l’appel.</li>
<li>Via les “Bans” que l’on peut inclure dans le VCL ou effectuer via varnishadm.</li>
<p>&nbsp;</p>
<h3>La Compression</h3>
<p>Depuis la version 3.0, Varnish a la possibilité de compresser et décompresser des ressources. Cette fonctionnalité est importante pour 3 raisons :</p>
<li>Économiser de la bande passante entre le backend et Varnish.</li>
<li>Économiser de la place dans le cache de Varnish surtout quand il est en mémoire.</li>
<li>Économiser de la bande passante entre Varnish et le Client.</li>
<p>Elle peut être activée simplement en harmonisant l’entête “Accept-Encoding” et en positionnant la variable “do_gzip” au niveau du backend ou de la réponse du backend. Pour le reste Varnish va adapter la réponse (objet compressé ou non) au client en s’appuyant sur le “Accept encoding” de la requête.<br />
Il est bien sûr évident que la stratégie de compression doit être adaptée au type d’objet. On ne compressera pas un objet déjà compressé (gif, jpg&#8230;etc) :).</p>
<p>&nbsp;</p>
<h3>Le Loadbalancing</h3>
<p>Varnish peut gérer des backends de tous horizons. Avec des sites de plus en plus chargés, il est capable d’offrir la possibilité de faire du loadbalancing. Varnish dispose de 3 types de loadbalancing qui sont appelés “Director” :</p>
<li>RoundRobin.</li>
<li>Client (permet de faire du sticky session sur n’importe quel élément du header).</li>
<li>Random (disponible&#8230; utile c’est une autre histoire).</li>
<p>Varnish sait gérer l’éviction d’un backend lorsqu’il est indisponible. Cette fonctionnalité est d’autant plus utile quand nous activons le “probe” sur les backends.</p>
<blockquote>
<pre>backend server1 {
   .host = "server1.example.com";
   .probe = {
     .url = "/";
     .interval = 5s;
     .timeout = 1s;
     .window = 5;
     .threshold = 3;
   }
}</pre>
</blockquote>
<p>Varnish dispose aussi d’un mécanisme pour palier complètement à la défaillance d’un backend ou d’un Director. Nous appelons cela “Grace mode” ou “Saint mode”. Ces termes cachent la possibilité de servir un contenu caché même x minutes après la TTL en cas de non réponse d&#8217;un serveur. Il est aussi capable d’aiguiller une requête vers un autre serveur répondant correctement quand le serveur cible initial donne des réponses HTTP 500 à cause d’une trop grande charge par exemple.</p>
<p>&nbsp;</p>
<h3>Reverse Proxy</h3>
<p>Nous avons vu que Varnish se place devant toute notre infrastructure. Il va permettre de masquer complètement l’architecture déployée en utilisant toute la puissance de Reverse Proxy qu’il met à notre disposition.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2765" title="Reverse Proxy" src="http://decrypt.ysance.com/wp-content/uploads/2012/01/Varnish1.png" alt="Reverse Proxy" width="382" height="370" /></p>
<p>En fait, il nous permet de faire un découplage complet entre l’organisation des URIs d’appels et l’organisation de leurs traitements sur l’infrastructure.</p>
<p>Voici un exemple d’une requête cliente que nous arrivons à aiguiller avec Varnish vers un bucket S3 public du nom de “ressources” et l’aiguillage prend en compte ce qu’il y a dans le nom du host de la requete :</p>
<blockquote>
<pre>set req.backend = backend_s3;
if(req.url == "/ressources1.xml") {
  set req.url = regsuball(req.http.host,
              "^(?:.*[.])?([a-z]+)[.](?:net|com)$", "/ressource1.\1.xml");
}else if(req.url == "/ressource2.txt") {
  set req.url = regsuball(req.http.host,
              "^(?:([a-z]+)[0-9]*[.])(?:([a-z]+)*[.])[a-z]+$","/ressources.\1.\2.txt");
}
set req.http.host = "resources.s3.amazonaws.com";

backend  backend_s3 {
  .host = "ressources.s3.amazonaws.com";
  .port = "80";
  .connect_timeout = 5s;
  .first_byte_timeout = 3s;
  .between_bytes_timeout = 2s;
  .max_connections = 1000;
}</pre>
</blockquote>
<p>&nbsp;</p>
<h3>Sécuriser et nettoyage HTTP</h3>
<p>Le protocole HTTP permet d’utiliser plusieurs types de méthodes (GET, POST, DELETE&#8230; etc). Ces méthodes peuvent être utilisées de différentes manières pour déclencher des actions spécifiques (cas de services REST) sur les services abrités sur les backends. Or la protection au niveau HTTP de ce genre de services est assez fastidieuse côté serveurs d’applications. Varnish va permettre de filtrer précisément ce qui doit passer et pour quelle utilisation. Nous allons donc limiter les effets de bords.<br />
Imaginons que nous avons un service accessible uniquement en GET /service1/ et un deuxième /service2/ accessible lui en GET et POST nous allons écrire quelque chose comme ceci :</p>
<blockquote>
<pre>if (req.request != "GET" &amp;&amp; req.request != "POST"){
  call error;
}

if (req.url ~ "^/service2"){
call service2;
}

if(req.request == "POST"){
  call error;
}

if (req.url ~ "^/service1"){
  call service1;
}

call error;</pre>
</blockquote>
<p>Dans cet exemple nous interdisons systématiquement tout ce qui n’est pas méthode GET ou POST. Ensuite pour une url qui commence par /service2 nous allons vers la routine qui va traiter le payload pour ce service. Puis nous bannissons la méthode POST et nous traitons les urls avec /service1 et enfin nous bannissons le reste.</p>
<p>Avec cette méthode aucune requête non prévue peut remonter vers un backend. Nous avons deux avantages :</p>
<li>Le code pour traiter les cas aux limites sera plus simple.</li>
<li>Une majorité d’erreurs ne remonteront pas vers le backend, celles-ci ne provoqueront donc aucune exception ni saturation.</li>
<p>Dans un deuxième cas de figure il peut être intéressant de normaliser les entêtes HTTP. Prenons l’exemple de l’Accept-Encoding. Varnish préconise de le normaliser ainsi :</p>
<blockquote>
<pre>if (req.http.Accept-Encoding) {
  if (req.http.Accept-Encoding ~ "gzip") {
    set req.http.Accept-Encoding = "gzip";
  } elsif (req.http.Accept-Encoding ~ "deflate") {
    set req.http.Accept-Encoding = "deflate";
  } else {
    remove req.http.Accept-Encoding;
  }
}</pre>
</blockquote>
<p>Tout simplement pour éviter de créer des entrées cache différentes pour un même payload uniquement parce que tous les clients n’écrivent pas cet entête de la même façon.</p>
<p>Nous pouvons aussi enlever certains headers qui peuvent donner trop d’informations sur l’infrastructure. Pour S3 par exemple nous allons passer ces commandes dans le fetch :</p>
<blockquote><p>unset beresp.http.x-amz-id-2;<br />
unset beresp.http.x-amz-request-id;<br />
unset beresp.http.x-amz-meta-s3cmd-attrs;<br />
unset beresp.http.x-amz-meta-s3fox-filesize;<br />
unset beresp.http.x-amz-meta-s3fox-modifiedtime;</p></blockquote>
<p>Ou positionner des entêtes plus personnelles :</p>
<blockquote><p>set beresp.http.Server = &laquo;&nbsp;ServeurPerso&nbsp;&raquo;;</p></blockquote>
<p>La dernière petite chose à penser pour le nettoyage réside dans le positionnement d’un content-type correct pour toutes des ressources. Cette opération se fait de la même manière que pour le nettoyage des headers en positionnant “set beresp.http.Content-Type” par groupe de ressources.</p>
<p>De par ces fonctionnalités, Varnish est capable d&#8217;assurer l&#8217;orchestration de la haute disponibilité d&#8217;une architecture. Il est capable de détecter les backends défaillants et même de les remplacer en s&#8217;appuyant sur son cache. Il va les protéger en prenant en compte une grande partie de la gestion des erreurs 404.</p>
<p>&nbsp;</p>
<h3>Uniformisation des Logs d’accès</h3>
<p>Le process “varnishd” ne produit aucun log. Il se contente d’écrire les informations dans des segments de mémoire partagée. Ces segments sont consommés par des outils comme varnishadm, varnishlog ou encore varnishncsa. C’est principalement varnishncsa qui nous intéresse. C’est ce process qui va lire les informations et créer un fichier de log au format NCSA. L’avantage ici est énorme. Nous pouvons décharger les serveurs d’applications et front http de la production de ces logs. De plus ces logs seront moins éparpillés (quoi que, avec l’utilisation de <a title="syslog-ng" href="http://www.balabit.com/sites/default/files/documents/syslog-ng-v3.0-guide-admin-en.html/bk01-toc.html" target="_blank">syslog-ng</a> ça ne soit pas un problème). Enfin les logs seront tous normalisés qu&#8217;ils soient sur Apache, Tomcat, JBoss ou encore lighttp et NginX. Nous pouvons donc penser uniquement aux traitements que nous allons bien pouvoir leur faire subir et ne plus passer du temps à tout reformater. Cette considération prend tout son sens quand on commence à atteindre plusieurs gigas de logs d’accès par jour.<br />
Depuis la version 3.0, Varnishncsa permet de ne pas suivre la norme NCSA et nous laisse le choix du format de sortie.</p>
<p><em><strong>Laurent ROUX</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2012/02/le-web-accelere-avec-varnish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plus loin dans l’automatisation avec le DNS</title>
		<link>http://decrypt.ysance.com/2012/01/plus-loin-dans-l%e2%80%99automatisation-avec-le-dns/</link>
		<comments>http://decrypt.ysance.com/2012/01/plus-loin-dans-l%e2%80%99automatisation-avec-le-dns/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 08:55:31 +0000</pubDate>
		<dc:creator>Laurent Roux</dc:creator>
				<category><![CDATA[Automatisation]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Haute Disponibilité]]></category>
		<category><![CDATA[Industrialisation]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Capistrano]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[Scalability]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=2727</guid>
		<description><![CDATA[Dans le monde élastique du Cloud et plus précisément en ce qui concerne l’IaaS, nous nous heurtons souvent au problème : “quelle est l’adresse de telle machine, quel est son mode d’accès...”. A ces questions peuvent s’ajouter la problématique du tout automatique via un <a title="Site de Capistrano" href="http://www.capify.org/">Capistrano</a> par exemple. Vous me direz qu’il existe une console Web et des API. Oui mais la console n’est pas réellement exploitable pour l’automatisation et les API ont besoin de crédentials que l’on ne préfère pas disséminer partout sur les serveurs.

Le but de cet article est de montrer comment avoir un référentiel des instances disponibles sur un compte Amazon (ou autre) avec toutes les informations qui vont bien sans devoir utiliser la console web Amazon. Cette solution permet de pousser l’automatisation un cran plus loin en proposant une liste exhaustive que l’on peut automatiser et la possibilité d’avoir une liste des serveurs disponibles en une ligne de commande pour n’importe quel Devops allergique aux opérations sur navigateur web.

[...]
]]></description>
			<content:encoded><![CDATA[<p>Dans le monde élastique du Cloud et plus précisément en ce qui concerne l’IaaS, nous nous heurtons souvent au problème : “quelle est l’adresse de telle machine, quel est son mode d’accès&#8230;”. A ces questions peuvent s’ajouter la problématique du tout automatique via un <a title="Site de Capistrano" href="http://www.capify.org/">Capistrano</a> par exemple. Vous me direz qu’il existe une console Web et des API. Oui mais la console n’est pas réellement exploitable pour l’automatisation et les API ont besoin de crédentials que l’on ne préfère pas disséminer partout sur les serveurs.</p>
<p>Le but de cet article est de montrer comment avoir un référentiel des instances disponibles sur un compte Amazon (ou autre) avec toutes les informations qui vont bien sans devoir utiliser la console web Amazon. Cette solution permet de pousser l’automatisation un cran plus loin en proposant une liste exhaustive que l’on peut automatiser et la possibilité d’avoir une liste des serveurs disponibles en une ligne de commande pour n’importe quel Devops allergique aux opérations sur navigateur web.</p>
<p>Dans le but de rester élastique dans la démarche, nous allons utiliser deux fonctionnalités DNS des plus intéressantes qui sont :</p>
<li>les requêtes nsupdate</li>
<li>les requêtes AXFR</li>
<p>Nous allons aussi nous aider des API Amazon et tout ça dans un environnement Linux. Notre DNS va donc servir de base de données pour référencer les machines via leurs IP privées.</p>
<h4>Liste des pré-requis</h4>
<p>Un serveur T1-Micro sur Amazon servant de DNS est largement suffisant. Le package BIND9 doit être installé. Sachant que sur une infrastructure nous préférons utiliser des noms à la place des IP, l’utilisation d’un DNS est fortement conseillée. De plus, la configuration des différents éléments techniques d’une plate-forme est nettement plus souple en utilisant des noms.</p>
<h4>Configuration</h4>
<p>Pour effectuer des requêtes nsupdate sur un DNS il faut autoriser les IP des machines qui ont le droit d&#8217;émettre ces requêtes vers notre DNS (nsupdate et axfr). Ensuite il faut placer les bases du DNS (fichiers db.xxx) dans un endroit ou le process bind a le droit d’écrire. Pour des raisons de sécurité, il est hors de question que ce process puisse avoir un accès en écriture dans le répertoire /etc/ nous allons donc déplacer ces fichiers dans /var/cache/bind/.</p>
<h4>Elements de Configuration DNS</h4>
<p>Dans le fichier named.conf.local dans la section de la zone que nous voulons contrôler il faut ajouter l’ip de la machine autorisée à faire les requêtes nsupdate :</p>
<blockquote><p>allow-update { xxx.xxx.xxx.xxx; };</p></blockquote>
<p>Les requêtes AXFR sont autorisées dans ce même fichier de configuration en ajoutant l’ip des serveurs autorisés dans la sections “allow-transfer” de la zone.<br />
Dans cette même section nous allons déplacer le fichier de la zone en modifiant son chemin :</p>
<blockquote><p>file &laquo;&nbsp;/var/cache/bind/db.xxxx.yyyy&nbsp;&raquo;;</p></blockquote>
<h4>Démarche</h4>
<p>Une fois cette opération réalisée nous pouvons utiliser les API Amazon pour récupérer les informations qui concernent une instance (par exemple, nous utiliserons ec2-describe-instances dont la documentation est à l’adresse suivante :  <a title="Site de Amazon Web Services, AWS Documentation - ec2-describe-instances" href="http://docs.amazonwebservices.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-DescribeInstances.html">DOC API</a>).<br />
Les informations que nous allons récupérer (security groupes, Key, EBS ID&#8230;..), vont être réorganisées pour ensuite être injectées dans le DNS sous la forme d’enregistrements TXT en plus de l’enregistrement A utilisé pour référencer une adresse.<br />
Pour réaliser une mise à jour automatique du DNS il est préférable d’exécuter une instruction de “delete” avant l’ajout d’un enregistrement. Vu que nous sommes sur un DNS qui sera utilisé pour les zones de notre infrastructure nous allons prendre en compte les trois enregistrements suivants :</p>
<li>le forward record, qui fait correspondre un nom à une ip.</li>
<li>le reverse record, qui fait correspondre une ip à un nom.</li>
<li>le text record, qui va nous permettre d’enregistrer les informations sur l’instance.</li>
<p>Pour enlever les enregistrements précédents (dans le cas ou le serveur est déjà référencé ou pour enlever le serveur).</p>
<blockquote><p>nsupdate<br />
&gt; server monserverdns.domain.com<br />
&gt; zone domain.net<br />
&gt; update delete monserver.domain.net A<br />
&gt; update delete monserver.domain.net TXT<br />
&gt; update delete zzz.yyy.xxx.www.in-addr.arpa. PTR<br />
&gt; send</p></blockquote>
<p>Ensuite on enregistre le serveur.</p>
<blockquote><p>nsupdate<br />
&gt; server monserverdns.domain.com<br />
&gt; zone domain.net<br />
&gt; update add monserver.domain.net 86400 IN A www.xxx.yyy.zzz<br />
&gt; update add monserver.domain.net 86400 IN TXT informations sur le serveur<br />
&gt; update add zzz.yyy.xxx.www.in-addr.arpa 86400 IN PTR monserver.domain.net.<br />
&gt; send</p></blockquote>
<p>Nous partons du principe que le DNS est bien déclaré au niveau du fichier /etc/resolv.conf.</p>
<p>Une fois tous les enregistrements en place il suffit de passer la commande suivante pour que la liste apparaisse :</p>
<blockquote><p>dig @ip_du_dns axfr domain.net</p>
<p>sh-3.2# dig @10.211.55.5 axfr test.net<br />
; &lt;&lt;&gt;&gt; DiG 9.7.3-P3 &lt;&lt;&gt;&gt; @10.211.55.5 axfr test.net;<br />
(1 server found)<br />
;; global options: +cmd<br />
test.net.		604800	IN	SOA	dns. root.test.net. 4 604800 86400 2419200 604800<br />
test.net.		604800	IN	NS	dns.<br />
test.net.		604800	IN	A	10.211.55.5<br />
test.net.		604800	IN	AAAA	::1<br />
s1.test.net.		86400	IN	A	1.2.3.4<br />
s1.test.net.		86400	IN	TXT	&laquo;&nbsp;tout&nbsp;&raquo; &laquo;&nbsp;ce&nbsp;&raquo; &laquo;&nbsp;que&nbsp;&raquo; &laquo;&nbsp;l&nbsp;&raquo; &laquo;&nbsp;on&nbsp;&raquo; &laquo;&nbsp;peut&nbsp;&raquo; &laquo;&nbsp;dire&nbsp;&raquo; &laquo;&nbsp;sur&nbsp;&raquo; &laquo;&nbsp;un&nbsp;&raquo; &laquo;&nbsp;serveur&nbsp;&raquo;<br />
test.net.		604800	IN	SOA	dns. root.test.net. 4 604800 86400 2419200 604800<br />
;; Query time: 19 msec<br />
;; SERVER: 10.211.55.5#53(10.211.55.5)<br />
;; WHEN: Mon Jan  9 16:03:56 2012<br />
;; XFR size: 7 records (messages 1, bytes 237)</p></blockquote>
<p>Nous touchons au but. Il suffit maintenant d&#8217;exécuter la même commande avec un grep sur “TXT” pour récupérer la liste qui nous intéresse.</p>
<p>Avec la commande suivante nous allons enlever l’enregistrement TXT du DNS :</p>
<blockquote><p>nsupdate<br />
&gt; server monserverdns.test.com<br />
&gt; zone test.net<br />
&gt; update delete monserver.test.net TXT<br />
&gt; send</p></blockquote>
<blockquote><p>sh-3.2# dig @10.211.55.5 axfr test.net<br />
; &lt;&lt;&gt;&gt; DiG 9.7.3-P3 &lt;&lt;&gt;&gt;<br />
@10.211.55.5 axfr test.net;<br />
(1 server found);;<br />
global options: +cmd<br />
test.net.		604800	IN	SOA	dns. root.test.net. 5 604800 86400 2419200 604800<br />
test.net.		604800	IN	NS	dns.<br />
test.net.		604800	IN	A	10.211.55.5<br />
test.net.		604800	IN	AAAA	::1<br />
s1.test.net.		86400	IN	A	1.2.3.4<br />
test.net.		604800	IN	SOA	dns. root.test.net. 5 604800 86400 2419200 604800<br />
;; Query time: 2 msec<br />
;; SERVER: 10.211.55.5#53(10.211.55.5)<br />
;; WHEN: Mon Jan  9 16:15:30 2012<br />
;; XFR size: 6 records (messages 1, bytes 183)</p></blockquote>
<p>Nous avons donc une base de données (le serveur DNS) qui va nous servir de référence pour y placer toutes les informations des instances tirées des API Amazon.<br />
Cet article n’aborde pas le côté sécurité de bind et ne fait donc pas référence à la gestion de clé pour les requêtes nsupdate.</p>
<p><em><strong>Laurent ROUX</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://decrypt.ysance.com/2012/01/plus-loin-dans-l%e2%80%99automatisation-avec-le-dns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automation on AWS with Ruby and Puppet</title>
		<link>http://decrypt.ysance.com/2011/06/automation-on-aws-with-ruby-and-puppet/</link>
		<comments>http://decrypt.ysance.com/2011/06/automation-on-aws-with-ruby-and-puppet/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 15:33:57 +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[Scalability]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Capistrano]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[UrbanDive]]></category>
		<category><![CDATA[XTR-Lucid]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=2459</guid>
		<description><![CDATA[<img class="size-full wp-image-2465 alignright" title="Logo UrbanDive" src="http://decrypt.ysance.com/wp-content/uploads/2011/06/urbandive.png" alt="Logo UrbanDive" width="141" height="141" />

<a title="UrbanDive" href="http://www.urbandive.com">Urbandive</a> is an immersive view service launched by the <a title="Groupe Pages Jaunes" href="http://www.pagesjaunesgroupe.com/">French YellowPages</a> which allows you to travel in cities in France thanks to a 360° view. Urbandive focuses on providing high definition pictures and accurate professional and social content. One of the biggest jobs was to enable a fast scalable architecture, because it was really difficult to forecast the traffic load at production time. Traffic load may be influenced if the service receives attention from users as a result of advertising.

Below you will find a summary of the goals we achieve by using a Ruby scheduler built on top of <a title="Puppet Labs" href="http://www.puppetlabs.com/">Puppet</a> on <a title="Amazon Web Services" href="http://aws.amazon.com/">AWS</a> to create a complete infrastructure.

<strong><em>Workflow &#38; XTR-Lucid</em></strong>
Our scalability combo is : a home-made Ruby scheduler (<em>XTR-Lucid</em>) to deal with AWS APIs + the Puppet Master to install services and configure EC2 instances and keep them up-to-date during all the production time. This leads to full automation.

Here is the workflow (for the <span style="text-decoration: underline;">creation step</span>, there are other workflows for stop/reboot/health-check/...) of our automation tool. The dashboard allows you to select a template (which contains the following informations : AMI id, instance type, availability zone, key, list of security groups, list of EBS - from snapshots or not -, ...) and to set a name for the instance in the "create" workflow.

[...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2465 alignright" title="Logo UrbanDive" src="http://decrypt.ysance.com/wp-content/uploads/2011/06/urbandive.png" alt="Logo UrbanDive" width="141" height="141" /></p>
<p><a title="UrbanDive" href="http://www.urbandive.com">Urbandive</a> is an immersive view service launched by the <a title="Groupe Pages Jaunes" href="http://www.pagesjaunesgroupe.com/">French YellowPages</a> which allows you to travel in cities in France thanks to a 360° view. Urbandive focuses on providing high definition pictures and accurate professional and social content. One of the biggest jobs was to enable a fast scalable architecture, because it was really difficult to forecast the traffic load at production time. Traffic load may be influenced if the service receives attention from users as a result of advertising.</p>
<p>Below you will find a summary of the goals we achieve by using a Ruby scheduler built on top of <a title="Puppet Labs" href="http://www.puppetlabs.com/">Puppet</a> on <a title="Amazon Web Services" href="http://aws.amazon.com/">AWS</a> to create a complete infrastructure.</p>
<p><strong><em>Workflow &amp; XTR-Lucid</em></strong><br />
Our scalability combo is : a home-made Ruby scheduler (<em>XTR-Lucid</em>) to deal with AWS APIs + the Puppet Master to install services and configure EC2 instances and keep them up-to-date during all the production time. This leads to full automation.</p>
<p>Here is the workflow (for the <span style="text-decoration: underline;">creation step</span>, there are other workflows for stop/reboot/health-check/&#8230;) of our automation tool. The dashboard allows you to select a template (which contains the following informations : AMI id, instance type, availability zone, key, list of security groups, list of EBS &#8211; from snapshots or not -, &#8230;) and to set a name for the instance in the &laquo;&nbsp;create&nbsp;&raquo; workflow.</p>
<p><img class="size-full wp-image-2472" title="Automatisation AWS XTR-Lucid Puppet" src="http://decrypt.ysance.com/wp-content/uploads/2011/06/Automatisation-AWS-PuppetLabs.png" alt="Automatisation AWS XTR-Lucid Puppet" width="960" height="720" /></p>
<p>This schema gives the general idea of how it works.</p>
<p>To be more accurate and to explain the workflow just a bit :</p>
<ul>
<li>The scheduler can be outside or inside of AWS.</li>
<li>First an <em>action file</em> is put into the <em>TODO </em>directory, by the web application (simple <em>rhtml </em>dashboard) or by the monitoring tool directly. For posting files from the monitoring tool, we will have to define thresholds after some weeks of use of the application. At this time, we have not enough data feedback as we just commenced production.</li>
<li>The action file is then processed by the scheduler :</li>
</ul>
<ol>
<li>Connection to AWS and request to start an EC2 instance from the AMI.</li>
<li>Scheduler checks that instance is running, EBS (Elastic Block Store) are <em>available</em>, then <em>in-use</em>, and eventually that EC2 TCP stack is up and SSH is OK. Then it connects to the brand-new instance.</li>
<li>Puppet client is installed and started, so it sends a certificate request to the master.</li>
<li>Puppet client is stopped to avoid any interaction.</li>
<li>Connection to the PuppetMaster : update the main files (nodes files of PuppetMaster, &laquo;&nbsp;/etc/hosts&nbsp;&raquo; file, roles file of Capistrano) and then accept the certificate request of the client.</li>
<li>Capistrano updates the &laquo;&nbsp;/etc/hosts&nbsp;&raquo; file on all instances of our infrastructure as soon as a new EC2 instance comes up (or down), without having to trigger (<em>puppetrun</em>) the simultaneous &laquo;&nbsp;pull configuration&nbsp;&raquo; of all the Puppet clients.</li>
<li>Connection to the new instance.</li>
<li>Puppet client is started.</li>
<li>Puppet client connects to the master and authenticate. Then it gets what it needs to install and configure the new instance.</li>
<li>The installation occurs on the new instance that will be soon available.</li>
</ol>
<ul>
<li>The scheduler doesn&#8217;t wait until the instance is fully configured to end the task : installation by Puppet is asynchronous. The scheduler just ends by updating its repository and the monitoring tool.</li>
</ul>
<p><span style="text-decoration: underline;">Technical note 1 :</span> we use <a title="Capistrano" href="http://www.capify.org/">Capistrano</a> mainly for application deployment. In the above case (<em>create instance</em>), we use it to update the &laquo;&nbsp;/etc/hosts&nbsp;&raquo; file on all instances of our infrastructure as soon as a new EC2 instance comes up (or down &#8211; it is the same use for <em>stop instance</em>), without having to trigger (<em>puppetrun</em>) the simultaneous &laquo;&nbsp;pull configuration&nbsp;&raquo; of all the Puppet clients (bad idea ;ob). That&#8217;s just a little tip for this workflow.</p>
<p><span style="text-decoration: underline;">Technical note 2 :</span> the Ruby scheduler works in asynchronous mode (for security reasons &amp; to be called by other tools &#8211; like a monitoring one) by creating <em>action files</em> from the web application in the <em>TODO </em>directory (which can be filled by the monitoring tool for auto-scalability) checked every minute by a CRON which calls the heart of the automation tool.</p>
<p><strong><em>Technical facts</em></strong></p>
<ul>
<li>We have actually 40 &#8211; 50 servers, that&#8217;s our base, but we probably will go higher when the traffic will come with marketing campaigns.</li>
<li>We use Lucid Lynx Ubuntu OS (from a standard AMI powered by <a title="Canonical" href="http://www.canonical.com/">Canonical</a>).</li>
<li>We use the PuppetMaster installed on <a title="Apache" href="http://httpd.apache.org/">Apache</a> with <a title="Phusion Passenger" href="http://www.modrails.com/">Phusion Passenger</a> to increase performances.</li>
<li>We took Puppet (standard version) right from the Ubuntu repositories packaged in the AMI.</li>
</ul>
<p><strong><em>Why using Puppet (and especially on AWS) ?</em></strong><br />
<span style="text-decoration: underline;"> Consistency &amp; Flexibility</span><br />
We have multiple services, so we need to be sure that each group of servers is consistent in terms of configuration. If we need to push a quick change on all nodes of a type at a given time, we can even push (trigger &laquo;&nbsp;pull&nbsp;&raquo;, to be more accurate, with <em>puppetrun</em>) this new setting from the PuppetMaster without waiting the pull of Puppet client (30min period) and we are sure that this one is pushed everywere it is needed.<br />
AWS offer AMIs to &laquo;&nbsp;snapshot&nbsp;&raquo; an instance and clone this one as many as we want. This is very good for developpement, load tests, .. But when we come into production, we cannot build another AMI each time we do a change on a setting and deploy again EC2 instances from the new AMI. We need something flexible to patch our configurations quickly, keeping consistency at all times.</p>
<p><span style="text-decoration: underline;">Scalability &amp; Ease</span><br />
This is a new Internet service which can have a load peak at anytime depending on marketing campaigns. But we have to deal with financial things too. So we keep a base and have to start quickly full configured up-to-date instances within a few minutes. We achieve this by writing a home-made ruby-script-based scheduler (<em>XTR-Lucid</em>) that deals with AWS APIs to launch/stop EC2, add EBS (empty or from snapshot), add/remove to/from ELB, add/delete the new/old host to/from our monitoring tool, &#8230; AWS EC2 instances are kept in a repository on our Ruby scheduler. Then our tool lets Puppet take over which ensures for each brand-new instance started from a standard Lucid Lynx AMI that all services, configurations, security rules are installed/applied. So with the feedback of our monitoring tool, the infrastructure can grow and decrease alone (depending on the thresholds set) or we can deploy and stop instances in just one click on our web dashboard.</p>
<p><span style="text-decoration: underline;">Operating</span><br />
In such a project, there is a lot of various services to monitor for the Ops team (And&#8230; Yes ! Ops team is always essential, even with automated infrastructure ! :o)). So this is important to capitalize upon knowledge in Puppet descriptors and XTR-Lucid repository and templates, so that by simply reading the descriptors/repository/templates, the whole team knows all what it needs to know at a glance (no need to look everywhere). Things become a lot easier.</p>
<p><span style="text-decoration: underline;">Portable Infrastructure</span><br />
Because of the diversity of services run in the project, maybe not all will fit into AWS in a long term experience (over one year). Once we have real-life feedback on traffic, some services will stay on AWS, others, maybe, will migrate into our physical datacenter. So it will be easier to migrate because all the configuration is concentrated in Puppet descriptors. This enables us to re-deploy easily a brand-new infrastructure on another plateform (even if it is not in the Cloud).</p>
<p>I hope you enjoyed this. You can find here some more information on the way the Ops job is evolving, based on this experience (among others) : <a title="Decrypt, Solutions Linux / Open Source 2011 – Le métier de l’Administration Système avec le Cloud Computing" href="http://decrypt.ysance.com/2011/05/solutions-linux-open-source-2011-le-metier-de-l-administration-systeme-avec-le-cloud-computing/">Solutions Linux / Open Source 2011 – Le métier de l’Administration Système avec le Cloud Computing</a> (FR). These slides are the ones used for a talk I gave at Solution Linux 2011 (France).</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/2011/06/automation-on-aws-with-ruby-and-puppet/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Solutions Linux / Open Source 2011 &#8211; Le métier de l&#8217;Administration Système avec le Cloud Computing</title>
		<link>http://decrypt.ysance.com/2011/05/solutions-linux-open-source-2011-le-metier-de-l-administration-systeme-avec-le-cloud-computing/</link>
		<comments>http://decrypt.ysance.com/2011/05/solutions-linux-open-source-2011-le-metier-de-l-administration-systeme-avec-le-cloud-computing/#comments</comments>
		<pubDate>Thu, 12 May 2011 16:10:57 +0000</pubDate>
		<dc:creator>Frédéric Faure</dc:creator>
				<category><![CDATA[Automatisation]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Administration Système]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[Capistrano]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Solutions Linux 2011]]></category>
		<category><![CDATA[UrbanDive]]></category>

		<guid isPermaLink="false">http://decrypt.ysance.com/?p=2322</guid>
		<description><![CDATA[<img class="size-full wp-image-2408 alignright" title="Solutions Linux / Open Source 2011" src="http://decrypt.ysance.com/wp-content/uploads/2011/05/SolutionsLinux2011.png" alt="Solutions Linux / Open Source 2011" width="260" height="68" />

De retour du <a title="Solutions Linux / Open Source" href="http://www.solutionslinux.fr/">salon Solutions Linux / Open Source 2011</a> (salon professionnel annuel dédié aux logiciels et solutions libres pour les entreprises), je publie les slides que j'ai présentés en compagnie d'Omer SHALA (Mappy) lors d'une des conférences du salon ayant pour sujet le Cloud Computing. Cette présentation porte sur l'évolution du métier de l'Administration Système avec l'utilisation du Cloud Computing. Nous avons pris comme support notre expérience du projet <a title="UrbanDive" href="http://www.urbandive.com/">UrbanDive</a>, le nouveau service de vue immersive en zone urbaine du groupe PagesJaunes.

Omer SHALA, responsable de l'infrastructure du projet, a tout d'abord exposé le contexte du projet, puis a expliqué les éléments de décision qui nous ont amené à choisir le Cloud Computing (et en l'occurrence les <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">Amazon Web Services</a> - AWS) pour mettre en place nos services. Il a finalement fait une synthèse de son expérience de la mise en place de cette infrastructure avec les services d'Amazon (de type IaaS - Infrastructure as a Service), par rapport à ses expériences avec des infrastructures plus classiques (en datacenter) au sein du groupe PagesJaunes.

J'ai repris la seconde partie de la conférence et ai exposé ma vision de l'évolution de l'administration système avec l'utilisation de solutions de type Iaas. Pour finir, j'ai présenté ce que nous avons mis en place pour optimiser le potentiel des services Amazon, notamment via l'automatisation :
<ul>
	<li>avec le développement d'un ordonnanceur Ruby (<em>XTR-Lucid</em>) pour interfacer les APIs proposées par Amazon et gérer les cinématiques de communication (création/suppression d'instances métier EC2 et disque réseaux EBS, déploiement des services, ...) avec les AWS,</li>
	<li>avec l'utilisation d'outils Open Source comme le gestionnaire de configuration centralisé <a title="Site de PuppetLabs" href="http://www.puppetlabs.com/">Puppet</a> ou bien le scripteur/exécuteur de tâches <a title="Site de Capistrano" href="http://www.capify.org/">Capistrano</a>.</li>
</ul>

[...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-2408 alignright" title="Solutions Linux / Open Source 2011" src="http://decrypt.ysance.com/wp-content/uploads/2011/05/SolutionsLinux2011.png" alt="Solutions Linux / Open Source 2011" width="260" height="68" /></p>
<p>De retour du <a title="Solutions Linux / Open Source" href="http://www.solutionslinux.fr/">salon Solutions Linux / Open Source 2011</a> (salon professionnel annuel dédié aux logiciels et solutions libres pour les entreprises), je publie les slides que j&#8217;ai présentés en compagnie d&#8217;Omer SHALA (Mappy) lors d&#8217;une des conférences du salon ayant pour sujet le Cloud Computing. Cette présentation porte sur l&#8217;évolution du métier de l&#8217;Administration Système avec l&#8217;utilisation du Cloud Computing. Nous avons pris comme support notre expérience du projet <a title="UrbanDive" href="http://www.urbandive.com/">UrbanDive</a>, le nouveau service de vue immersive en zone urbaine du groupe PagesJaunes.</p>
<p>Omer SHALA, responsable de l&#8217;infrastructure du projet, a tout d&#8217;abord exposé le contexte du projet, puis a expliqué les éléments de décision qui nous ont amené à choisir le Cloud Computing (et en l&#8217;occurrence les <a title="Site de Amazon Web Services" href="http://aws.amazon.com/">Amazon Web Services</a> &#8211; AWS) pour mettre en place nos services. Il a finalement fait une synthèse de son expérience de la mise en place de cette infrastructure avec les services d&#8217;Amazon (de type IaaS &#8211; Infrastructure as a Service), par rapport à ses expériences avec des infrastructures plus classiques (en datacenter) au sein du groupe PagesJaunes.</p>
<p>J&#8217;ai repris la seconde partie de la conférence et ai exposé ma vision de l&#8217;évolution de l&#8217;administration système avec l&#8217;utilisation de solutions de type Iaas. Pour finir, j&#8217;ai présenté ce que nous avons mis en place pour optimiser le potentiel des services Amazon, notamment via l&#8217;automatisation :</p>
<ul>
<li>avec le développement d&#8217;un ordonnanceur Ruby (<em>XTR-Lucid</em>) pour interfacer les APIs proposées par Amazon et gérer les cinématiques de communication (création/suppression d&#8217;instances métier EC2 et disque réseaux EBS, déploiement des services, &#8230;) avec les AWS,</li>
<li>avec l&#8217;utilisation d&#8217;outils Open Source comme le gestionnaire de configuration centralisé <a title="Site de PuppetLabs" href="http://www.puppetlabs.com/">Puppet</a> ou bien le scripteur/exécuteur de tâches <a title="Site de Capistrano" href="http://www.capify.org/">Capistrano</a>.</li>
</ul>
<p>Je vous laisse visionner cette présentation en dessous !</p>
<p>Nous avons également inclus dans cette présentation la <strong>matrice de décision</strong> sur laquelle nous nous sommes basés <strong>pour décider de l&#8217;adoption du Cloud Computing</strong> pour la mise en place de l&#8217;infrastructure.</p>
<div style="width:595px" id="__ss_7936569"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/fredericfaure/solutions-linux-2011-evolution-mtier-admin-sys-avec-le-cloud-computing" title="Solutions Linux 2011 - Evolution Métier Admin Sys avec le Cloud Computing">Solutions Linux 2011 &#8211; Evolution Métier Admin Sys avec le Cloud Computing</a></strong> <object id="__sse7936569" width="595" height="497"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=solutionslinux2011-evolutionadminsyscloudcomputing-ffa-osh-110512045127-phpapp01&#038;stripped_title=solutions-linux-2011-evolution-mtier-admin-sys-avec-le-cloud-computing&#038;userName=fredericfaure" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse7936569" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=solutionslinux2011-evolutionadminsyscloudcomputing-ffa-osh-110512045127-phpapp01&#038;stripped_title=solutions-linux-2011-evolution-mtier-admin-sys-avec-le-cloud-computing&#038;userName=fredericfaure" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="595" height="497"></embed></object></div>
<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/2011/05/solutions-linux-open-source-2011-le-metier-de-l-administration-systeme-avec-le-cloud-computing/feed/</wfw:commentRss>
		<slash:comments>0</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>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>
	</channel>
</rss>

