Petit comparatif de la couverture mobile de St Jean de Maurienne

Free :

sensorly-free3g.jpg

Orange :
  • La 2G/3G ne fonctionne pas au centre ville
  • Cela est lié au changement des antennes et au passage à l 4G (toit du NRA jea73)
  • L'agrume a corrigé la chose, mais cela fonctionne toujours aussi mal

sensorly-orange3g.jpg

  • Seul la 4G Orange semble fonctionner
  • La couverture est bonne, mais j'avoue ne pas avoir testé
  • Avantage :c'est directement branché au backbone 10G d'orange JEA73 -> Albertville

sensorly-orange4g.jpg

Bouygues
  • C'est sans doute le réseau 4G qui fonctionne le mieux
  • le relais est à Grenis et doit être relié via un FH (sans doute 100 Mb/s +)

sensorly-bouygues-2g.jpg

sensorly-bouygues.jpg

SFR

aucun commentaire, y a des gens chez SFR encore ?

sensorly-sfr-3g.jpg

Industrialisation des env de dev avec Puppet et Amazon #forumphp

  • Automatisation de la construction des machines de prod
  • Versionnage avec git
  • compétences devops
  • reduire : problèmes de compréhension dev / ops (admins)

avec une belle phrase :

"travailler ensembles pour produire de la valeur pour l'entreprise" http://fr.wikipedia.org/wiki/Devops

  • Demander aux devs de connaitre le monde l'admin sys
  • Demander aux admins de connaitre un peu le monde du dev

aider au but commun :

  • stabilité de l'environnement de prod
  • Utilisation de puppet
    • Fichier yaml
    • forman : solution de pilotage de l'ensemble de puppet
    • migration yaml > forman : beaucoup de boulot
    • recettes : de très bonnes qualité
  • on trouve tout ce qu'on veut par rapport à ses besoins, sauf cas exotiques
  • puppet : prob : arbre des dépendances

Puis utilisation de chef.. (j'arrête les notes ici)

tester la conf de logstash

GEM_HOME=/opt/logstash/vendor/bundle/jruby/1.9 /usr/bin/java -Djava.io.tmpdir=/var/lib/logstash -Xmx500m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Djava.awt.headless=true -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintClassHistogram -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:./logstash-gc.log -jar /opt/logstash/vendor/jar/jruby-complete-1.7.11.jar -I/opt/logstash/lib /opt/logstash/lib/logstash/runner.rb agent -f /etc/logstash/conf.d -l /var/log/logstash/logstash.log --configtest

Mettre à la fin :

--configtest

Et devant :

 GEM_HOME=/opt/logstash/vendor/bundle/jruby/1.9 /usr/bin/java

Quelques notes sur la collecte de metrics

http://fr.slideshare.net/jiboumans/...

Un module puppet pour le graphite-report

graphite_reporter

https://forge.puppetlabs.com/evenup...

Le monitoring pour la validation des logiciels :

http://fr.slideshare.net/Biodec/mon...

  • "si cela bouge, vous pouvez le surveiller"
  • Le réseau
  • La machine
  • L'application

'Pourquoi ?'

  • Apprendre de son infrastructure
  • Anticiper les pannes
  • Accélérer les changements

Différence entre metric et event

Metric :

  • Temps + Nom + valeur
  • Evénément : Temps + Nom

graphite : La solution tout en un , pour surveiller des données en temps réel

  • Le stockage des données est rapide / efficace
  • Récupération rapide

Comment est composé graphite :

  • Graphite web : le front-end web, pour visualiser les données
  • Carbon : Ecoute les données, les agrège, les stocke sur le disque

Graphite, quelques notes sur son fonctionnement

tester le bon fonctionnement de Graphite :
echo "test.count 4 `date +%s`" | nc -q0 127.0.0.1 2003

Regarder dans l'interface :

graphite1.jpg

Pour activer Graphite :
LoadPlugin "write_graphite" 
<Plugin write_graphite>
       <Node "pinatubo">
               Host "127.0.0.1"
               Port "2003"
               Protocol "tcp"
               LogSendErrors true
               Prefix "collectd"
               Postfix "collectd"
               StoreRates true
               AlwaysAppendDS false
               EscapeCharacter "_"
       </Node>
</Plugin>
Dashboard

A priori, on peut fabriquer des dashboards

Exemple :

  • refresh toutes les 10 secondes du CPU idle

dashboard.jpg

Nommer le dashboard et obtenir une url :

http://localhost/dashboard/test

On peut aussi :

  • Envoyer chaque graph par mail
  • Avoir une url directe pour chaque grah : [
Ressources

lsyncd

https://code.google.com/p/lsyncd/

Intéressant :

Synchronisation d'un répertoire local vers distant, a travers ssh.. en utilisant inotify pour voir les modifications.

  • Utilise du code lua pour la config

Voir la doc : https://github.com/axkibe/lsyncd/wi...

Exemple d'utilisation :

Fichier de conf :

conf.lua
sync{
       default.rsyncssh,
       source="/tmp/a/",
       host="root@192.168.0.13",
       targetdir="/tmp/a/"
}
lsyncd -nodaemon conf.lua
L'exemple temps réel :
settings {
       maxProcesses=4, 
}
sync{
       default.rsyncssh,
       source="/tmp/a/",
       host="root@192.168.0.13",
       targetdir="/tmp/a/",
       delay=0 
}
lsyncd -nodaemon conf.lua

de l'autre coté faire un

watch -n1 ls -la /tmp/a

Sélections de slides

Apache Traffic server

Content routing :

  • Distance / network hops
    • Network link Quality / speed
    • Availability of content in cache

Serveur de cache Generation 1 chez Comcast :

  • 192 Go ram
  • 24 disques 900 Go SAS
  • 2 X 10 GE
Voiture et linux embarqué :

Votre voiture sera bientôt autonome..

  • Slide 2 : beaucoup d'électronique dans les voitures..

http://events.linuxfoundation.org/s...

Xen sur ARM

http://events.linuxfoundation.org/s...

Ganetti

http://events.linuxfoundation.org/s...

Ca a l'air d'être intéressant ce système..


** Slide 15 : Kernel préemptif

Quand on passe le kernel en mode temps réel, il n'est pas :

  • D'une meilleure latence
  • Plus rapide

Il est juste plus prévisible et déterminable

Xen 4.4

http://events.linuxfoundation.org/s...

Haute dispo

http://events.linuxfoundation.org/s...

  • VRRP : ok keepalived
  • Ucarp
  • Master/backup election

Quelques notes puppet iis8/Windows

Quelques notes (en vrac) désolé

iis
  • https://github.com/eToro/puppet-enableiis/blob/master/manifests/init.pp

lié à ce package : https://forge.puppetlabs.com/puppet...

DISM : c'estun peu le apt de windows "(DISM.exe) is used to enable or disable Windows features on Windows 7, Windows Server 2008 R2."

Un package générique windows :

https://forge.puppetlabs.com/counsy...

  • installer java
windows::java
  • Gérer les règles de firewall windows :
windows::firewall_rule

ex : autoriser ping

windows::firewall_rule { 'ICMP Ping':
 protocol => 'icmpv4:8,any',
}
Sql server 2012

L'exemple en dit beaucoup :

class {'windows_sql':
 features            => 'SQL,RS_SHP,RS_SHPWFE,TOOLS',
 pid                 => 'SYOUR-PRODU-CTKEY-OFSQL-2012S',
 sqlsysadminaccounts => 'SQLAdmin',
 agtsvcaccount       => 'svc_sqlagt',
 isopath             => 'C:\\Users\\Administrator\\Desktop\\SQLServer2012SP1-FullSlipstream-ENU-x64.iso',
 sqlsvcaccount       => 'svc_sqlsvc',
 securitymode        => 'sql',
 sapwd               => 'MySup3rGre@tp@ssw0rDO3nOT',
 mode                => 'master',
}
Monter / démonter un iso :

https://forge.puppetlabs.com/jrivie...

Ex : windows_isos{'SQLServer':

 ensure   => present,
 isopath  => 'C:\\Users\\Administrator\\Desktop\\SQLServer2012SP1-FullSlipstream-ENU-x64.iso',
}
reboot

tout est dans le titre https://forge.puppetlabs.com/puppet...

Un exemple :

package { 'Microsoft .NET Framework 4.5':
 ensure => installed,
 ...
 notify => Reboot'after_run', 
} 
package { 'Microsoft Windows SDK for Windows 7 (7.0)':
 ensure => installed,
 ...
 notify => Reboot'after_run', 
}
reboot { 'after_run':
 apply  => finished,
}
powershell

https://forge.puppetlabs.com/puppet...

nsclient

pratique pour icinga

https://forge.puppetlabs.com/openta...

Installer le client avec les valeurs par défaut :

include 'nsclient'

Serveurs icinga autorisés

class { 'nsclient':
  allowed_hosts => '10.21.0.0/22','10.21.4.0/22', 
}
Installer graphite, pour avoir des metrics

https://forge.puppetlabs.com/openta...

Voir ce script

Les data collectées

Exemple visuel ici : https://www.hostedgraphite.com/ Voir la version libre : http://graphite.wikidot.com/

Puppet : Regardons un peu les modules de la puppetforge

Le module le plus téléchargé : puppetlabs/vcsrepo

https://forge.puppetlabs.com/puppet...

Ce module sert à déployer du code, depuis un gestionnaire de code (git, svn & co) qui est hébergé sur un serveur central.

Module https://forge.puppetlabs.com/puppet...

Gestion des packages

  • installation
  • déinstallation
  • gestion des packages externes
module Firewall https://forge.puppetlabs.com/puppet...
  • Gestion des règles firewall
    • Protocole tcp/udp / ports / accept / drop
Module : erwbgy/limits https://forge.puppetlabs.com/erwbgy...

Gestion des paramètres/limites dans :

/etc/security/limits.conf
Module : thias/sysctl https://forge.puppetlabs.com/thias/...

Gestion de /etc/sysctl.conf

Exemple : sysctl { 'net.ipv4.ip_forward': value => '1' }

Module pour Haproxy https://forge.puppetlabs.com/puppet...

Gestion de la configuration haproxy

Quelques notes Puppet

Continuous delivery ou Intégration continue

  • Le code source est partagé, via un logiciel de gestion du cote, donc git !
  • Les dév intégrent leurs modifications, on appelle cela des commit (git commit), afin d'avoir un historique des modifications.
  • Des tests d'intégration : est-ce que tout fonctionne ? tests de manière automatique.

Une série de bonnes pratiques :

  • Maintenir un dépôt unique de code source versionné
  • Automatiser les compilations
  • Rendre les compilations auto-testantes
  • Tout le monde commit tous les jours
  • Tout commit doit compiler le tronc (trunk) sur une machine d'intégration
  • Maintenir une cycle de compilation court
  • Tester dans un environnement de production cloné
  • Rendre disponible facilement le dernier exécutable
  • Tout le monde doit voir ce qui se passe
  • Automatiser le déploiement

DAns la même lignée : Smoetest

Smoke testing (software)

Voir aussi :

  • Ecrire un test automatique, pour avoir un résultat : OK / KO

Cet article http://www.agiliste.fr/fiches/livra... liste les bénéfices :

  • Feedback rapide : Plus un défaut est corrigé tard, plus il coûte cher (investiguer, reproduire le défaut, revenir sur du code qui n’est pas forcément le sien, qualifier/estimer/arbitrer/planifier/livrer/tester la correction, etc). Le pipeline de Continuous Delivery offre un feedback rapide et évite ainsi des gaspillages parfois considérables. Un feedback quasi immédiat au niveau de l’Intégration Continue et à la semaine au niveau de l’utilisateur final.
  • Meilleure qualité : Il n’est pas surprenant d’apprendre que les équipes ayant mis en place l’intégralité d’un pipeline de Continuous Delivery en plus de piloter les développements par les tests parviennent aux termes de 6 mois de développement avec une quantité d’anomalies se comptant sur les doigts d’une main. A tel point qu’un outil de suivi d’anomalie ou même un indicateur de volume d’anomalies deviennent tout bonnement inutiles. Le Graal de toute équipe de développement en somme.
  • Moins de stress : Le stress porte principalement sur 2 aspects. Les jalons à tenir qui maintiennent un niveau de stress dans la durée et croissant. Et la livraison qui repose sur une procédure généralement très manuelle et porteuse de nombreux changements (le fruits de plusieurs semaines ou mois de travail). En cas de livraison hebdomadaire avec des procédures automatisées, ces facteurs de stress sont considérablement réduits.
  • Bouton « Retour en arrière » : L’automatisation complète de la livraison à partir d’un binaire déjà construit (identique pour chaque environnement) rend la procédure de livraison rapide quelque soit la version visée. En cas de problème avec la livraison de la dernière version, on pourra revenir en arrière facilement grâce à cette même procédure qui aura alors pour cible les binaires de la version précédente.
  • Week-end pour soi : L’automatisation complète et la fiabilisation de la procédure de livraison rendent cette dernière rapide et presque anecdotique. Si rapide qu’il devient inutile de mobiliser une équipe entière tout un samedi pour assurer la livraison avant que les utilisateurs reprennent le travail.
  • Meilleure relation client – fournisseur : Nous l’avons évoqué en introduction l’objectif premier est la satisfaction du client (et des utilisateurs). Une fois att-eint, le principal bénéfice qui en découle est l’acquisition d’une relation de confiance voire de « réel plaisir à travailler ensemble » entre l’équipe de développement, le client et les utilisateurs.

Possibilité d’audit de la livraison : Comment auditer une procédure de livraison manuelle qui s’est mal déroulée ? On ne peut pas se reposer sur la procédure papier car elle ne nous dit pas où une erreur humaine à pu se glisser. En revanche une procédure automatique est auditable.

Pour résumer l'automatisation du déploiement :

  • Moins d'erreurs humaines
  • Moins de stress (sources d'erreur)
  • Moins de tâches répétitives
  • Les tests permettent d'avoir un retour sur le déploiement :OK / KO, on peut aussi à partir des tests, faire un dashboard : vert/rouge

Pour le dev, 3 branches :

  • developpement
  • testing
  • production

Quelques slides puppet orientés windows

Résumé :

  • Cesser de faire de la ligne de commande
  • module puppet powershell
  • On peut installer des packages (applications windows)
    • choisir la version : ex dotnet 4.5
Chocolatey

Une sorte de apt pour windows : https://chocolatey.org/

Résumé :

Un mix intéressant :

  • Puppet / Chocolatey

Résumé :

  • Deux moyens pour installer le système :
  • The Install from CMD.exe as Administrator:
@powershell -NoProfile -ExecutionPolicy unrestricted - Command "iex " && SET PATH=% PATH%;%ALLUSERSPROFILE%chocolateybin
  • ou via Powershell as Administrator:
iex  Reads like Dickens, doesnt it?!
  • installer java
cinst javaruntime
  • installer un client TFTP
cinst -source windowsfeature TFTP
  • "Les humains ne sont pas bons pour les tâches répétitives" sous entendu : ils font des erreurs
  • Utilisation de puppet couplé à chocolatey :
package { 'javaruntime': ensure => 'latest’, provider => ‘chocolatey’, }

Et voilà, la machine windows aura toujours le dernier package java installé

Mémo : Draftsight installation

apt-get install libuuid1:i386 libice6:i386 libsm6:i386 libxt6:i386 libaudio2:i386 libgtk2.0-0:i386 libcanberra-gtk-module:i386 libcanberra-gtk0:i386 libglu1-mesa:i386

+

apt-get install libstdc++6:i386

+

apt-get install libgtk2.0-0:i386
apt-get install libglu1-mesa:i386

debug de l'appli , la lancer via

/opt/dassault-systemes/DraftSight/Linux/DraftSight

- page 1 de 262