Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Microbox : Ma toolbox microservices - Julien Roy

906 views

Published on

Malgré les bénéfices indéniables des architectures microservices, elles apportent une complexité non négligeable. Durant cette session, je vous présenterai la collection d’outils open source ou développé en interne que nous utilisons sur nos différents projets microservices pour limiter les délais de mise en oeuvre de ce type d’architecture. Depuis la gestion des sources jusqu’au monitoring en passant par la génération de projets et l’usine de build nous parcourrons en live l’utilisation de ces différents outils.

Published in: Internet
  • Be the first to comment

Microbox : Ma toolbox microservices - Julien Roy

  1. 1. Microbox Ma toolbox microservices Julien Roy Architecte Java @ @vanr0y ekino. 1
  2. 2. Agenda Sources Build Déploiement Exploitation 2
  3. 3. Bootstrap 3
  4. 4. Besoins Préparation espace de travail Manipulation dépôts multiple GIT Scripting tâches récurrentes Bootstrap 4
  5. 5. Notre outil Scripts bash Bootstrap 5 . 1
  6. 6. Bootstrap 5 . 2
  7. 7. Alternatives GWS : Gestion dépôts GIT Netflix HubCommander ( bot Slack ) Home made script ( Groovy, GO, ... ) Bootstrap 6
  8. 8. Scaffolding 7
  9. 9. Besoins Rapidité Uniformisation Respect des bonnes pratiques Scaffolding 8
  10. 10. Notre outil Spring Initializr Scaffolding 9 . 1
  11. 11. Scaffolding 9 . 2
  12. 12. Alternatives Maven archetype JHipster Lazybones, Yeoman Scaffolding 10
  13. 13. Build 11
  14. 14. Besoins Simplification Uniformisation Maintenance Build 12
  15. 15. Notre outil Plugins gradle Build 13 . 1
  16. 16. build.gradle Build plugins { id 'com.ekino.common.base' version '1.0.0' id 'com.ekino.common.java' version '1.0.0' id 'com.ekino.common.repository' version '1.0.0' id 'com.ekino.common.quality' version '1.0.0' id 'com.ekino.common.docker' version '1.0.0' id 'com.ekino.common.deploy' version '1.0.0' id 'org.springframework.boot' version '1.5.7.RELEASE' } dependencies { compile group: 'org.springframework.boot', name: 'spring-boot-start compile group: 'org.springframework.boot', name: 'spring-boot-start compile group: 'org.springframework.boot', name: 'spring-boot-start } 13 . 2
  17. 17. Alternatives Netflix Nebula Dropwizard Lagom Build 14
  18. 18. Source code browser 15
  19. 19. Besoins Recherche globale Exploration ( sans cloner ) Source code browser 16
  20. 20. Notre outil Hound ( Etsy ) Source code browser 17 . 1
  21. 21. Source code browser 17 . 2
  22. 22. Alternatives Opengrok Upsource ( Jetbrains ) insight.io Source code browser 18
  23. 23. Version 19
  24. 24. Besoins Vue projet Versions disponible ( maven central ) Version 20
  25. 25. Notre outil Application Scala ( Play ) Version 21 . 1
  26. 26. Dashboard Version 21 . 2
  27. 27. Vue détaillée Version 21 . 3
  28. 28. Vue dépendance Version 21 . 4
  29. 29. Alternatives Maven versions plugin Gradle versions plugin Version 22
  30. 30. Intégration continue 23
  31. 31. Besoins Intégration GitLab Configuration automatique Vue pipeline Support Docker Intégration continue 24
  32. 32. Notre outil GitLab CI Intégration continue 25 . 1
  33. 33. Build Intégration continue 25 . 2
  34. 34. Pipelines Intégration continue 25 . 3
  35. 35. Pipeline Intégration continue 25 . 4
  36. 36. Alternatives Jenkins Pipeline TeamCity Bamboo Travis CI, Codeship, CircleCI, Concourse, ... Intégration continue 26
  37. 37. Déploiement 27
  38. 38. Besoins Multi stack ( ECS, Lambda, Batch ) Multi environnements Profiles non technique Peu de dépendances (GitLab, Jenkins, ...) Déploiement 28 . 1
  39. 39. Notre outil Application Java ( Spring Boot ) Déploiement 29 . 1
  40. 40. Dashboard Déploiement 29 . 2
  41. 41. Déploiement unitaire Déploiement 29 . 3
  42. 42. Déploiement complet Déploiement 29 . 4
  43. 43. Alternatives Spinnaker GOCD Jenkins Pipeline GitLab CI Déploiement 30
  44. 44. Java Dashboard 31
  45. 45. Besoins Infos JVM ( stacktrace, thread dump, ... ) Manipulation configurations Manipulation niveaux de logs Monitoring coupes-circuits Java Dashboard 32 . 1
  46. 46. Notre outil Spring Boot Admin Java Dashboard 33 . 1
  47. 47. Dashboard Java Dashboard 33 . 2
  48. 48. Détails Java Dashboard 33 . 3
  49. 49. Logs Java Dashboard 33 . 4
  50. 50. Hystrix Java Dashboard 33 . 5
  51. 51. Alternatives hawtio (http://hawt.io/) Java Mission Control CRaSH ( remote shell ) Java Dashboard 34
  52. 52. Datastore management 35
  53. 53. Besoins Visualisation des données Manipulation d'urgence / debug Datastore management 36 . 1
  54. 54. Nos outils Postgresql : PgAdmin server Elasticsearch : Kibana Datastore management 37 . 1
  55. 55. PgAdmin 4 server Datastore management 37 . 2
  56. 56. Kibana Datastore management 37 . 3
  57. 57. Alternatives DB : PostgreSQLStudio, Teampostgresql, Adminer, PhpMyAdmin Elasticsearch : ElasticHQ Redis : Readis, Redmon, Redsmin Datastore management 38
  58. 58. Gestion des logs 39
  59. 59. Besoins Centralisation Recherche avancée Dashboard Intégration Docker Gestion des logs 40 . 1
  60. 60. Nos outils Elasticsearch Kibana AWS CloudWatch Docker logging driver AWS Lambda ( Stream logs CloudWatch -> Elasticsearch ) Gestion des logs 41 . 1
  61. 61. Kibana Gestion des logs 41 . 2
  62. 62. Alternatives ELK ( logstash ) Graylog SaaS : Loggly, Logz, Sumo Logic, Splunk, PaperTrails Gestion des logs 42
  63. 63. Metrics / APM 43
  64. 64. Besoins Centralisation Diagnostiques Tendances Alerting Metrics / APM 44 . 1
  65. 65. Nos outils Cloudwatch + Spring Cloud AWS Newrelic Metrics / APM 45 . 1
  66. 66. Cloudwatch JVM Metrics / APM 45 . 2
  67. 67. Newrelic Applications Metrics / APM 45 . 3
  68. 68. Newrelic application dashboard Metrics / APM 45 . 4
  69. 69. Newrelic JVM dashboard Metrics / APM 45 . 5
  70. 70. Alternatives Hawkular Pinpoint Prometheus SaaS : Appdynamics, Dynatrace, Datadog Metrics 46
  71. 71. Tracing 47
  72. 72. Besoins Investiguer sur les problèmes de latence Cartographier les dépendances Tracing 48 . 1
  73. 73. Nos outils Jaeger ( UBER ) Spring Cloud Sleuth Tracing 49 . 1
  74. 74. Jaeger traces Tracing 49 . 2
  75. 75. Jaeger détail d'une trace Tracing 49 . 3
  76. 76. Jaeger dépendances Tracing 49 . 4
  77. 77. Alternatives Zipkin ( Twitter ) AWS X-Ray Les APM ... Tracing 50
  78. 78. Conclusion Outillage indispensable Coût non négligeable ( temps, budget ) Prise en compte au démarrage projet 51
  79. 79. Questions ? 52

×