Archive for the ‘computer’ Category

Dropbox et 200 millions d’utilisateurs

Thursday, November 7th, 2013

 

Lors d’une récente conférence, l’un des Site Reliability Engineer de Dropbox à présenté quelques éléments clef de leur infrastructure (pour la petite histoire il était précédemment chez Youtube ;_).

Pour mémoire, Dropbox est un service cloud qui permet de stocker et de partager des fichiers. Il faut aussi savoir qu’il a fallut 4 ans à Dropbox pour passer à 100 millions d’utilisateurs, mais seulement 10 mois pour les 100 millions suivant ! Avec de tels chiffres on peut aisément imaginer les impacts sur l’infrastructure.

Alors, comment Dropbox gère une infrastructure capable d’accueillir 200 millions d’utilisateur et le milliard de fichier qu’ils stockent chaque jour ?

En l’occurrence, cela représente plus de 10000 serveurs physiques et un nombre important de service Amazon. Et oui, Dropbox n’utilise pas exclusivement les services d’EC2 mais à aussi ses propres serveurs et datacenters selon un modèle souvent appelé hybride. Plus précisement, la partie metadata  est stocké sur ses propres serveurs tandis que les fichiers eux même sont stocké sur Amazon S3. Au passage des instances EC2 sont utilisé pour faire parler ces deux mondes entre-eux.

Autre point important, avec de tels volumes les changements sont à la fois énorme et de par le modèle économique incertains ! Pour Dropbox, cela implique qu’il est fondamental d’en tenir compte dans les développement afin d’être souple, mais aussi que le mixe entre hébergement interne et externe doit être toujours connus car selon eux cela requiert des outils différent pour les gérer.

Résultat ? Au lieu d’essayer de capitaliser sur des images standard de déploiement, Dropbox à préférer capitaliser sur Puppet pour unifier les installation, l’inventaire et la gestion du cycle de vie !

Cela étant, tout n’est pas rose et il reste des chalenges chez Dropbox :

* gérer efficacement les thumbnail photo : une première étape à était franchit en passant a n mode batch/http qui leur a permis en gain de performance de 40.

* améliorer le débit “client” lors des synchros, point important car directement perceptible. La encore une étape à était franchie en permettant d’utiliser plusieurs connections en parallèle (le retour du p2p ;-) ce qui à permit de gagner un facteur 2.5 (voir 4 dans certaines régions du globe !)

* dernier et non de moindre : la latence de d’Amazon S3, comme chacun le sait Amazon S3 n’offre que peut de garantie, il est donc difficile d’avoir un contrôle sur les performances dans ce contexte pourtant c’est un point important pour le perçut et l’usage du produit. Pour pouvoir avancer, Dropbox s’appuie sur un monitoring important et une gestion de connections de type pool.

Mais comme le dit le présentateur, quand on ne contrôle pas toutes les variables seul l’expérimentation fait avancer et de même dans le cadre de la scalabilité, parfois les solutions les plus évidentes ne sont pas les bonnes.

Faire de bons graphiques pour le monitoring

Thursday, October 17th, 2013

Avoir des bons graphiques est important.

Un graphique c’est une fenêtre sur votre système et c’est aussi ce qui vous permet d’en avoir une représentation bâtit à partir de vos mesures…

A l’avenir, c’est aussi ce qui permettra d’automatiser votre détections d’anomalie voir de les prédire. Mais pour tous cela, il faudra être capable de définir des patterns et d’apprendre à votre système, de plus quoi que vous fassiez il restera toujours les cas aux limites pour lesquels vous aurez besoin de comprendre ce qui se passe. C’est pour toutes ces raisons qu’avoir de bons graphiques est important.

Alors, c’est quoi un bon graphique et comment le créer ?

Un bon graphique est une représentation de l’état du système qui donne une description significative, maximise la compréhension et la vision du phénomène, et permet d’inspecter facilement et de détecter les problèmes, et être motivé pour lancer les actions et résoudre des problèmes (sic). On le comprend c’est donc un système complexe à construire donc les principes fondamentaux font appels aux techniques de visualisation des données mais aussi à l’utilisateur.

Revoyons donc quelques un de ces fondamentaux :

  • Il doit être consistent.

Cela veut dire que l’objet suivit et sa représentation doivent être cohérente. Il est des cas, ou par exemple, une ligne ne donne pas une bonne indication de ce que l’on mesure (ex: stacked area vs ligne). On doit aussi retrouver des unités cohérentes pour des mesures semblables.

  • On doit avoir un contexte

En général, la première question c’est « qu’est-ce que je regarde », ou bien « ou est-t-on » ? Il est en effet important que l’on ne soit pas perdu dans la masse de donnée et que l’on ait assez d’indicateurs visuels pour ne pas devoir faire des efforts pour se rappeler ce que l’on regarde.

Le moyen le plus simple pour cela, c’est d’avoir un affichage hiérarchique clair et une convention de nommage cohérente et constante. (ex : network>>eth0>>all )

L’autre point qui facilite cela : afficher le maximum d’information possible, sans toutefois compromettre la lisibilité !

  • La lisibilité, parlons-en !

Vous avez un écran 32 pouces et pourtant pas encore assez de place ?  Quoi que vous fassiez la place sera toujours limitée vis-à-vis du nombre d’éléments. Il faudra donc faire des choix entre niveau de détail et quantité d’objet. Une solution qui peut aider dans un grand nombre de cas : les « horizon graph ». Un « horizon graph » est un moyen efficace en espace pour analyser et comparer plusieurs ensembles de données de séries chronologiques, typiquement ce qui arrive le plus fréquemment en monitoring. Pour cela, l’axe y est divisé de façon uniforme en bande.

Autre moyen, simple, pour améliorer les choses : éliminer les éléments inutiles. Comment ? Si vous n’êtes pas sûr que cela serve : ne le mettez pas !

  • La mise en perspective, « il y a un pic, et alors ? ».

Une mesure à elle toute seule ne nous dit rarement quelque chose, elle fait souvent partie d’un tout et il est important de voir l’ensemble. Les évènements qui ont eu lieu au même instant voire à plus grande échelle sur plusieurs systèmes sont souvent important. Pour cela, il faut pouvoir mettre les graphiques en perspective (après l’horizon-;-), les regrouper afin de voir les relations. Pour cela il est important de pouvoir aligner des graphiques sur le même axe de temps afin de les parcourir simultanément. Idéalement, il faudrait pouvoir afficher toutes les mesures en un point du temps donné durant ce parcours.

  • Dernier paramètre et non des moindres : l’utilisateur.

Regarder des graphiques c’est rarement marrant, c’est même souvent lassant. Il faut donc que ce soit agréable à faire, et oui ! Une interface bien designé fera que l’on sera plus enclin à l’utiliser. En effet, même pour afficher des graphiques les règles de base du design son valable :

  1. Avoir des blocs clair
  2. Une consistance dans les formes, les fontes, les graphiques …
  3. Un cheminement simple (ex: haut -> bas, gauche -> droite)
  4. Du contraste pour mettre en avant les informations importantes et pour le coup un chalenge important : la gestion des couleurs dans les graphiques

Si l’on résume ce que l’on a besoin : consistance entre mesure et objet, une mise en perspective des mesures avec un bon contexte, le tout dans une interface clair et facile d’utilisation et vous aurez le système de visualisation de votre monitoring parfait !

 

Pour ceux qui voudrait en savoir plus sur les horizon graph :

Time on the horizon :  http://www.perceptualedge.com/articles/visual_business_intelligence/time_on_the_horizon.pdf

Sizing the horizon : The Effects of Chart Size and Layering on the Graphical Perception of Time Series Visualizations : http://vis.berkeley.edu/papers/horizon/2009-TimeSeries-CHI.pdf

.Trashes, .fseventsd, et .Spotlight-V100

Monday, February 1st, 2010

Si vous connectez un disque externe sous Leopard, celui-ci prend certaines libertés pour écrire dessus ! Pour empêcher cela, voici quelques indications :

Pour empêcher l’indexation Spotlight, vous devez avoir un fichier appelé .metadata_never_index dans la racine du disque. (touch /Volume//.metadata_never_index )
Pour empêcher la création du repertoire .Trashes , vous devez avoir votre propre fichier (non répertoire) qui s’appelle .Trashes. (touch /Volume//.Trashes )
Pour empêcher la journalisation des événements sur ce lecteur, vous devez créer un fichier no_log dans le répertoire .fseventsd . (touch /Volume//.fseventsd/no_log )

et voila !

ImagePrinter new version !

Thursday, October 15th, 2009

After a long time without any update. I publish the latest release of ImagePrinter. It’s the release build 780.
It correct, of course, many bugs, add some functionnality to the GUI, can output 16 bits colors in PDF, and printer (under leopard). It support outputing multiple page in TIFF.

DSN-313 after a year …

Friday, October 9th, 2009

After a nearly a year using DSN-313 here is a report :
to be really usable it needs a lot’s of tweak :

  • migrate from NTFS to ext2 the internal drive
  • installation of funplug
  • installation of latest Samba server, and lot’s of configuration tweaks to be stable
  • good points :
    wiht funplug, you get a good subversion server, netatalk and lot’s more powerfull daemon than what you get out of the box.
    bad points:
    out of the box it’s nearly unusable. very unstable

    Liquid Rescale GUI alpha

    Monday, August 3rd, 2009

    Yes, it’s done. My first alpha version of my GUI for Liquid Rescaling is available.
    You can look at the screenshots at the end of post or you can download and try this version here.

    Feel free to comment/and or report bugs.

    Et oui, ça y est ! La première alpha de ma GUI pour Liquid Rescale est dispo.
    Voici quelques screenshots pour vous donnez une idée :

    mage loading

    mage loading

    masking

    masking

    Pour ceux qui veulent tester le téléchargement c’est ici. (note: pour le moment only support i366 no ppc version)

    Liquid Rescale …

    Tuesday, July 21st, 2009

    After seeing lot’s of stuff about “Content Aware Rescaling”.,testing some of them, I have decided to work on a standalone version of it based on the Liquid Rescale Library, and just after I hope to come with an Aperture plugin-version.
    I now have a working alpha version, hoping to release a beta soon.
    So keep tune !

    testing scribefire …

    Wednesday, June 10th, 2009

    Hi,

    a long time …

    but was in need to test a better blog writter… so here it is with scribefire…
    let’s see if it will work better .

    testing scribefire …

    Wednesday, June 10th, 2009

    Hi,

    a long time …

    but was in need to test a better blog writter… so here it is with scribefire…
    let’s see if it will work better .

    enfuse edit plugin beta is available

    Monday, November 10th, 2008

    The beta version of the enfuse Edit plugin for Aperture is now available for download.
    It will expire in 30 days…

    Enfuse is what is known as ‘exposure blending’ rather than actual HDR - the software will look at the stacked images that you give it and for each area it automatically chooses from the image that appears to have the best exposed pixels for that area. Enfuse then blends the images of all these bits of different images so that it doesn’t look like a jigsaw.