[Summer Camp] Etape 5 : Mise en cache avec Varnish

October 19th, 2011 | by | tuto, unix

Oct
19

varnish

On a une infra haute dispo, mais pas encore vraiment haute perf. Pour y passer, on va utiliser Varnish qui mettra en cache les pages de notre site ! Ce n’était pas prévu au planning initial que j’ai posé une nuit très tard… Mais c’est un MUST !

Varnish sera situé entre le load balancer et les frontaux (qu’il load balancera). Sont fonctionnement est simple :

  1. Je reçois une requête pour la page X
  2. L’ai-je dans mon cache ?
  3. Si oui je fournis == je soulage un frontal et les bases de X requêtes
  4. Si non je récupère et je la cache si possible (on ne peut pas cacher les pages d’utilisateur logé par exemple)

Il est cependant vrai qu’en environnement de production, on mettra les caches devant les load balancer afin d’éviter de charger les load balancer pour rien. Leur load balancing se fera alors en Round-Robin DNS.

Vous allez voir, c’est simple et efficace ! Je vais montrer pour une des deux VM, la deuxième sera une copie conforme.

Read full story

1 Comment »

[Summer Camp] Etape 4 – Load balancing HAPROXY et stunnel

October 18th, 2011 | by | tuto, unix

Oct
18

haproxy

On continu d’avancer et on touche presque à la fin. A la fin de ce tuto, on aura une plateforme web fonctionnelle. Aujourd’hui nous allons mettre en place le load balancer HAPROXY qui aura pour objectif de répartir la charge entre les deux frontaux web installés mais aussi stunnel qui s’occupera de gérer la couche SSL (HAPROXY en étant dépourvu). Cette machine portera l’IP publique de notre site.

Le flux passera donc par HAProxy pour les connexions HTTP qui répartira la charge sur les frontaux web. Dans le cas du HTTPS, stunnel reçoit la connexion, la forward à HAProxy qui la forward au frontaux web.

J’entend d’ici : mais c’est un SPOF ! On se calme, l’étape 5 va nous permettre de clusteriser cette brique (et le MySQLProxy aussi ;) ) .

Sans plus attendre, on attaque !

Read full story

1 Comment »

[Summer Camp] Etape 3.2 – MySQLProxy : Split Read/Write

October 8th, 2011 | by | tuto, unix

Oct
08

Mysql-proxy

Poursuivons le Summer Camp qui devient plus au Autumn Camp… Après la mise en réplication de nos bases de données, on va mettre en place le slipt Read/Write sur nos bases. La base maitre servira pour l’écriture de données et la base slave pour la lecture. Il est à noter que l’on peut ajouter autant e slave que l’on veut. Il suffit de rajouter quelque ligne à la configuration de MySQLProxy. On attaque donc la dernière brique MySQL de la série !

Read full story

2 Comments »

[Summer Camp] Etape 3.1 – MySQL Réplication

October 8th, 2011 | by | tuto, unix

Oct
08

mysql-repl

C’est plus trop l’été mais bon… On va le faire perdurer ici ! On a donc les frontaux… sur lesquels on a monté les partages de fichiers statiques. Mon PHP est bien fonctionnel… mais j’ai pas encore de bases pour stocker ma donnée.

Contrairement à ce que j’ai annoncé, nous n’allons pas utiliser un MySQL Cluster. Ce choix est justifié par la spécificité de MySQL Cluster qui demande un développement spécifique. En effet, le moteur de base est différent et n’est que très rarement supporté par des CMS ou même des développement spécifique. à la place, je vous propose de faire un Split Read/Write via MySQL Proxy. Il s’agit donc de répartir la lecture sur plusieurs bases (répliqués entre elles) mais de faire les insertions que sur une seule. Typiquement on écrit sur un serveur et on lit sur l’autre.

On attaque donc cette partie qui nous amènera un peu plus près de la fin du projet. Aujourd’hui on va faire de la réplication MySQL.

Read full story

2 Comments »

[Summer Camp] Etape 2 – Serveur de Fichiers NFS + ZFS

August 19th, 2011 | by | tuto, unix

Aug
19

static

Dans le post précédent du Summer Camp, nous avons vu comment monter les frontaux web. Aujourd’hui, nous allons voir comment mettre en place le serveur de fichier. Mais avant de commencer, pourquoi mettons nous en place des serveurs de fichiers ? Pourquoi le frontal ne porte-t-il pas la donnée directement.

La réponse est simple : un frontal est une machine “jetable”. Elle a pour but d’être déployée rapidement et simplement. Si un frontal porte 250Go de données, il sera lent à répliquer et gourmand en espace disque. Sans compter les problèmes de réplications de données entre les frontaux. Pour répondre à tout cela, nous allons mettre en place un serveur de fichier avec un partage réseau NFS qui sera monté sur les frontaux. Le système de fichier utilisé sera ZFS sous FreeBSD. En effet il offre des possibilités de réplication et de sauvegarde très interessantes, mais là n’est pas l’objet du billet, nous y reviendrons.
Read full story

5 Comments »

#OpSyria – Vu que ça devient public…

August 16th, 2011 | by | edito

Aug
16

ANONYMOUS-540x200

J’en ai déjà parlé à plusieurs reprises (ici, ici, et ), mais je ne faisant qu’en parler. Maintenant que mes amis de Reflets en parle, je vais devenir un peu plus… verbeux (pardonnez moi l’expression…).

Depuis le 15 mars, des gens meurs dans les rues Syriennes, et une resistance s’organise. Parmi cette resistance, une cyber resistance. En effet, la dictature en place à Damas est la première au monde à avoir une cyber armée, avec ses objectifs, ces cibles. Mais qu’à cela ne tienne… en face il y a une resistance électronique.

On peut citer les plus connues comme Anonymous ou Telecomix. Sous ces noms, se cache en réalité d’autres groupes, plus fins, plus organisés, plus influents, plus puissants. Ces groupes ont monté #OpSyria. L’objectif est simple : anéantir la présence de la dictature sur le net, mais aussi redonner la liberté numérique aux Syriens.

Aujourd’hui, je revendique publiquement (oui, c’est contraire à l’éthique du groupe) mon appartenance à #OpSyria. J’y ai organisé et executé un certain nombre d’actions, du simple DoS, à l’action plus poussée sur les Internet Ground Services de la Syrie en passant par des actions ultra médiatisés.

Mes actions m’ont en particulier permis de documenter une partie du backbone Syrien ainsi de que l’architecture du réseau Internet. Je ne possède à l’heure actuelle plus aucune des données critiques sur moi, je ne suis pas assez fou pour ça. Tout est en sécurité sur des systèmes sur lesquels je n’ai aucunement la main.

Si je commence à parler en publique c’est parce que d’une part mon rôle dans cette resistance n’est plus mon rôle initial : je vais plus travailler sur la documentation et l’aide aux citoyens censurés. D’autre part, j’avoue ne plus me sentir entièrement en sécurité ou entièrement caché. Je préfère publier ce billet haut et fort plutôt que me retrouver dans une situation inconfortable sans avoir pu parler.

Grace aux aides fournis par Reflets (et donc Telecomix), sachez que de grande actions se prépare et à des dates symboliques.

Je suis ouvert à toute question soit via les commentaires, soit via le formulaire de contact.

Nous sommes Légion, Nous ne pardonnons pas, Nous n’oublions pas, attendez-vous à nous.

6 Comments »

#OpSyria – Let it be public…

August 16th, 2011 | by | edito

Aug
16

ANONYMOUS-540x200

I already talked about the Syrian Revolution sevral times (here, here and also here - french only sorry), but it was just a some posts. Now that my friends at Reflets are talking about it and giving information about the Syrian censorship, I feel like it’s my duty to also go public.

Since Mach 15th, people in Syria have been dying, but a resistance is also growing. The resistance I want to talk about, is of course, the electronic one. What you should know is that the Syrian dictatorship is the first one to have a Cyber Army with objectives, targets, and to be honest, results. Of course, armies fight one another.

The most famous enemies of the Syrian cyber army, are Anonymous and Telecomix. Actually, smaller groups are hidding behind those names. They are more organized, more powerful and more influential : they are the ones who created #OpSyria. They have a very simple goal : destroy the Syrian dictatorship presence online and bring electronic liberty to Syria.

Today, I would like to make public (which is the opposite of the group’s ethic) the fact that I’m part of #OpSyria. I’ve organized and/or executed several actions from the highly covered DoS’s to the heavy actions on the Syrian Internet Ground Services.

My actions made me able to dress a good card of the Syrian internet backbone and to gain good access to a part of it. I currently don’t have any information on any of my electronic/paper devices. I’m not that stupid : everything is in a safe place on systems I don’t have access to.

I am going public today because firstly my role in this war is not same anymore : I will work on helping people to protect themselves and on covering their actions. Secondly, I don’t feel safe and anonymous like I used to. I prefer to make everything public before I can’t do it anymore.

Expect some heavy actions in the next days/week. The war has just begun and is almost finished.

I’m open to any questions/comments. You can use the comments or the contact form.

We are Legion. We do not forget. We do not forgive. Expect Us.

6 Comments »

[Summer Camp] Étape 1 – Frontaux Web (Nginx + PHP5)

August 7th, 2011 | by | tuto, unix

Aug
07

Frontaux

C’est partie ! On commence le summer camp de façon technique avec la mise en place de la première brique de notre Infra Web Haute Dispo (http://madeinsyria.fr/2011/08/summer-camp-infra-web-haute-disponibilite/), les frontaux Web. Ils porteront principalement : Nginx et PHP5.

Pour rappel, j’ai choisis Nginx pour sa capacité à tenir, avec les même resources, une charge en moyenne dix fois superieur à celle d’un Apache2. De plus, il s’agit d’un serveur web qui gagne énormément en popularité, maitriser sa mise en place ne peut être qu’un plus !

Read full story

7 Comments »

[Summer Camp] Infra Web Haute Disponibilité

August 1st, 2011 | by | tuto, unix

Aug
01

summer

Bonsoir à tous !

Pour occuper votre temps cet été (on sait tous que c’est plus calme en juillet/août), je vous propose de monter ensemble et en plusieurs étapes une palteforme Web Haute Disponibilité basée uniquement sur des technologies OpenSource. HAPROXY, Nginx, MySQL, NFS, Puppet, tout y passera. Faites chauffer les VM, faites chauffer le café, on va y aller !

Aujourd’hui je ne ferai que vous presenter cette infra, les choix techniques, et les differentes étapes de mise en place.

Read full story

9 Comments »

HowTo Puppet : Administration et industrialisation de masse

June 1st, 2011 | by | tuto, unix

Jun
01

puppet

Il y a quelques semaines,  j’ai étais confronté à une problématique assez basique et pourtant ignoré jusque là. On m’a demandé d’exécuter un script sur quelque 300 machines *nix et de parser deux fichiers HTML générés. Jusqu’ici, c’est un travail d’admin système de base. Or voilà, moi, j’ai 300 machines réparties sur des réseaux qui sont HERMETIQUEMENT fermés de ma station d’administration. Il a donc fallu scripter une partie et traiter l’autre manuellement en urgence.

 

Tout cela m’a fait me pencher sur des solutions de gestion de configurations et d’administration de masse. Parmi toutes ces solutions, j’ai retenu celles proposées par PuppetLabs (http ://www.puppetlabs.com/). La suite de trois outils est infaillible :

  1. Puppet permettant la gestion centralisée des services et configurations
  2. MCollective qui permet l’administration et l’exécution de commandes centralisé
  3. Facter qui permet de dresser une véritable fiche d’identité du server

 

Aujourd’hui je vous propose une petite initiation à Puppet et quelques tips qui vous feront gagner du temps.

Read full story

4 Comments »