Devops mycode devoxx-france-2015-v2

  • View
    82

  • Download
    0

Embed Size (px)

Text of Devops mycode devoxx-france-2015-v2

  • @ZouheirCadi #DevopsMyCode

    Devops my Code

  • @ZouheirCadi #DevopsMyCode

    DEVOPS MY CODE

    @Zouheircadi Dev.Archi Java, NoSQL, Prod Co-organisateur DevoxxFr (Ancien ) Paris JUG

  • @ZouheirCadi #DevopsMyCode

    Agenda Objectif

    Mtriques pour les services mtiers

    Metriques : Gnrations et mesures

    Dmo : Logstash Statsd, Graphite

    Design 4 failure

    Qui suis-je ?

    Conclusion

  • @ZouheirCadi #DevopsMyCode

    Objec:f Sensibilisation des devs (java ?) produire du code auditable/

    exploitable

    Initiation la stratgie et aux outils de monitoring

  • @ZouheirCadi #DevopsMyCode

    Diagramme de dploiement

  • @ZouheirCadi #DevopsMyCode

    Diagramme de composant

  • @ZouheirCadi #DevopsMyCode

    Diagramme de dploiement SCM C. I. REPO.

  • @ZouheirCadi #DevopsMyCode

    Produc:on

  • @ZouheirCadi #DevopsMyCode

    Produc:on

  • @ZouheirCadi #DevopsMyCode

    Produc:on

  • @ZouheirCadi #DevopsMyCode

    Produc:on

  • @ZouheirCadi #DevopsMyCode

    Produc:on SCM C. I.

    DEV. Q. A. PRODUCTION

    REPO.

  • @ZouheirCadi #DevopsMyCode

    Produc:on

  • @ZouheirCadi #DevopsMyCode

    Produc:on

  • @ZouheirCadi #DevopsMyCode

    METRIQUES

  • @ZouheirCadi #DevopsMyCode

    METRIQUES Layer

    Example

    Metric

    Application layer

    API Calls

    Type, rate

    Service layer

    Apache, Storage, Caches,

    Apache : request rate, response time, busu workers

    RDMMS : Busy/sleeping connections, query rates

    Physical layer

    CPU, memory, disk, network

    CPU : user, system, %wait

    Disk : space utilization, I/O rates, %wait

    Network : bytes in/out

  • @ZouheirCadi #DevopsMyCode

    Genera:on de metriques

    spring.xml

  • @ZouheirCadi #DevopsMyCode

    Genera:on de metriques

    PetstoreAspect.java

  • @ZouheirCadi #DevopsMyCode

    Genera:on de metriques

    PetstoreAspect.java

  • @ZouheirCadi #DevopsMyCode

    Genera:on de metriques

    PetstoreAspect.java

  • @ZouheirCadi #DevopsMyCode

    Genera:on de metriques

    PetstoreAspect.java

  • @ZouheirCadi #DevopsMyCode

    Genera:on de metriques

    logback.xml

  • @ZouheirCadi #DevopsMyCode

    Genera:on de metriques

    logback.xml

  • @ZouheirCadi #DevopsMyCode

    Genera:on de metriques

    2014-10-11 12:39:23 INFO service.catalog.impl.CatalogServiceImpl.findCategory YES 253

    Timestamp Donnes

  • @ZouheirCadi #DevopsMyCode

    Genera:on de metriques

    www.logstash.net/docs/1.4.2/learn

  • @ZouheirCadi #DevopsMyCode

    Logstash

  • @ZouheirCadi #DevopsMyCode

    Logstash input { file { type => "audit-log" path => "/${TOMCAT_HOME}/log/business.layer.log" } } filter { if [type] == "audit-log" { grok { match => [ "message" , "%{TIMESTAMP_ISO8601:timestamp} %{DATA:THREAD} %{WORD:LEVEL} %{DATA:method} %{WORD:returnCode} %{NUMBER:responseTime}" ] } } } output { statsd { host => "localhost" port => 8125 timing => [ "%{method}.time_ms", "%{responseTime}" ] } }

  • @ZouheirCadi #DevopsMyCode

    Statsd Deamon NodeJS

    Fonctionne sous le protocole rseau UDP

    Ecoute des statistiques et les agrgent avant envoi vers

    Graphite

    Fournit un support pour diffrents types de mtriques

    Counter

    Timer

    Gauges

    Set

  • @ZouheirCadi #DevopsMyCode

    Statsd Counting / Sampling : send increments from your application

    com.ServiceImpl.authenticate:1|c

    com.ServiceImpl.createUser:1|c|@0.1

  • @ZouheirCadi #DevopsMyCode

    Statsd Timing :

    time

    Statistique la plus intressante pour rcolter les mtriques

    dun service mtier

    com.ServiceImpl.findCategory:230 | ms

  • @ZouheirCadi #DevopsMyCode

    Cen:le Effectif dune distribution divise en 100 parts gales

    Distribution coupe en tranches de 1%

    Mdiane C50

    50% des valeurs lui sont infrieures

    50% des valeurs lui sont suprieures

    90Percentile

    90% des valeurs lui sont infrieures

    10% des valeurs lui sont suprieures

  • @ZouheirCadi #DevopsMyCode

    StatsD Gauges

    Sets

    Multi-Metric Packets

  • @ZouheirCadi #DevopsMyCode

    Graphite

    collecting-metrics-with-graphite-and-statsd

  • @ZouheirCadi #DevopsMyCode

    Graphite - architecture Graphite web

    Front end.

    Visualisation des mtriques sous forme de graphique.

    Powerfull plotting API

    Carbon

    Ensemble de 3 process en charge de la rception,

    lagrgation et la persistance des donnes sur disque

    Whisper

    Base de donnes de sries chronologiques

  • @ZouheirCadi #DevopsMyCode

    All in one

    LOGS LOGSTASH STATSD GRAPHITE

  • @YourTwitterHandle @YourTwitterHandle @ZouheirCadi #DevopsMyCode

    Demo

  • @ZouheirCadi #DevopsMyCode

    Mtriques - process Mesurer (ligne de log)

    Monitorer

    Alerter

    Decider

    Agir

  • @ZouheirCadi #DevopsMyCode

    Monitoring - Aler:ng Monitoring

    Graphite,

    Ganglia (monitoring des systmes distribus)

    Outils payants : newRelic, AppDynamics

    Alerting

    Nagios

    Outils payants : newRelic, AppDynamics

  • @ZouheirCadi #DevopsMyCode

    Supervision batch/audit

  • @ZouheirCadi #DevopsMyCode

    Supervision audit

  • @ZouheirCadi #DevopsMyCode

    Rsilience

  • @ZouheirCadi #DevopsMyCode

    Rsilience

  • @ZouheirCadi #DevopsMyCode

    Rsilience

  • @ZouheirCadi #DevopsMyCode

    Rsilience

  • @ZouheirCadi #DevopsMyCode

    Rsilience

  • @ZouheirCadi #DevopsMyCode

    Rsilience

  • @ZouheirCadi #DevopsMyCode

    Rsilience

  • @ZouheirCadi #DevopsMyCode

    Rsilience

  • @ZouheirCadi #DevopsMyCode

    Quelle(s) mtrique(s) Metrique de contrle du fonctionnement courant

    1 appel = 1 metrique

    Interception des appels de la couche mtier

    AccessLogs

    Tomcat => Valve

  • @ZouheirCadi #DevopsMyCode

    Quelle(s) mtrique(s) Mtrique de dysfonctionnement

    $$$$$

    Dgrade le fonctionnement

  • @ZouheirCadi #DevopsMyCode

  • @ZouheirCadi #DevopsMyCode

    Qui suis-je

  • @ZouheirCadi #DevopsMyCode

    Qui suis-je ?

  • @ZouheirCadi #DevopsMyCode

    Qui suis-je ? Plugin maven : properties-maven-plugin

    Gnration dun fichier

    Contenant les deux properties

    project.version

    maven.build.timestamp

    Properties lues grce un service

  • @ZouheirCadi #DevopsMyCode

    Qui suis-je ?

  • @ZouheirCadi #DevopsMyCode

    Qui suis-je ?

  • @ZouheirCadi #DevopsMyCode

    Health-check Resource fournissant des informations sur lapplication

    Serveur dapplication

    Service accd via le serveur dapplication

    Utilis par des humains (dev, integrateurs, sysadmin, )

    Used by automates for monitoring

  • @ZouheirCadi #DevopsMyCode

    Health-check

  • @ZouheirCadi #DevopsMyCode

    Que fais-je ?

  • @ZouheirCadi #DevopsMyCode

    Ou suis-je : Dans quelle organisa:on ?

  • @YourTwitterHandle @YourTwitterHandle @ZouheirCadi #DevopsMyCode

    CONCLUSION

  • @ZouheirCadi #DevopsMyCode

    Conclusion

  • @ZouheirCadi #DevopsMyCode

    Conclusion

  • @ZouheirCadi #DevopsMyCode

    Conclusion

  • @ZouheirCadi #DevopsMyCode

    Conclusion

  • @ZouheirCadi #DevopsMyCode

    Conclusion

  • @ZouheirCadi #DevopsMyCode

    Conclusion

  • @ZouheirCadi #DevopsMyCode

    Conclusion

  • @ZouheirCadi #DevopsMyCode

    Conclusion

  • @ZouheirCadi #DevopsMyCode

    Conclusion

  • @ZouheirCadi #DevopsMyCode

    URLographie http://pivotallabs.com/139-metrics-metrics-everywhere/

    https://wooster.checkmy.ws/fr/doc/graphite/

    https://wooster.checkmy.ws/2013/12/time-series-databases/

    https://github.com/hopsoft/docker-graphite-statsd

    http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html

    http://java.dzone.com/articles/java-performance-troubleshooti-0

    http://rubynaut.net/2012/08/30/application-monitoring/

    http://www.logstash.net/docs/1.4.2/learn

    http://fr.slideshare.net/itnig/collecting-metrics-with-graphite-and-statsd

    http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/

    index.html

  • @ZouheirCadi #DevopsMyCode

    Bibliographie Web operations, keeping the data on time, John Allspaw and Jesse Robbins,

    2010, OReilly Ed.

    Continuous delivery, Jez Humble and David Farley, 2010, Addison Wesley

    Ed.

  • @ZouheirCadi #DevopsMyCode

    Con:nuous delivery

  • @YourTwitterHandle @YourTwitterHandle @ZouheirCadi #DevopsMyCode

    Q & A