Contributions l'analyse d'images d'observation de - Orfeo Toolbox
Microbox : Ma toolbox microservices - Julien Roy
Transcript of Microbox : Ma toolbox microservices - Julien Roy
Microbox
Ma toolbox microservices
Julien Roy
Architecte Java @
@vanr0y
ekino.
1
AgendaSourcesBuildDéploiementExploitation
2
Bootstrap
3
BesoinsPréparation espace de travailManipulation dépôts multiple GITScripting tâches récurrentes
Bootstrap
4
Notre outilScripts bash
Bootstrap
5 . 1
Bootstrap
5 . 2
AlternativesGWS : Gestion dépôts GITNetflix HubCommander ( bot Slack )Home made script ( Groovy, GO, ... )
Bootstrap
6
Scaffolding
7
BesoinsRapiditéUniformisationRespect des bonnes pratiques
Scaffolding
8
Notre outilSpring Initializr
Scaffolding
9 . 1
Scaffolding
9 . 2
AlternativesMaven archetypeJHipsterLazybones, Yeoman
Scaffolding
10
Build
11
BesoinsSimplificationUniformisationMaintenance
Build
12
Notre outilPlugins gradle
Build
13 . 1
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
AlternativesNetflix NebulaDropwizardLagom
Build
14
Source code browser
15
BesoinsRecherche globaleExploration ( sans cloner )
Source code browser
16
Notre outilHound ( Etsy )
Source code browser
17 . 1
Source code browser
17 . 2
AlternativesOpengrokUpsource ( Jetbrains )insight.io
Source code browser
18
Version
19
BesoinsVue projetVersions disponible ( maven central )
Version
20
Notre outilApplication Scala ( Play )
Version
21 . 1
Dashboard
Version
21 . 2
Vue détailléeVersion
21 . 3
Vue dépendance
Version
21 . 4
AlternativesMaven versions pluginGradle versions plugin
Version
22
Intégration continue
23
BesoinsIntégration GitLabConfiguration automatiqueVue pipelineSupport Docker
Intégration continue
24
Notre outilGitLab CI
Intégration continue
25 . 1
Build
Intégration continue
25 . 2
Pipelines
Intégration continue
25 . 3
Pipeline
Intégration continue
25 . 4
AlternativesJenkins PipelineTeamCityBambooTravis CI, Codeship, CircleCI, Concourse, ...
Intégration continue
26
Déploiement
27
BesoinsMulti stack ( ECS, Lambda, Batch )Multi environnementsProfiles non techniquePeu de dépendances (GitLab, Jenkins, ...)
Déploiement
28 . 1
Notre outilApplication Java ( Spring Boot )
Déploiement
29 . 1
Dashboard
Déploiement
29 . 2
Déploiement unitaire
Déploiement
29 . 3
Déploiement complet
Déploiement
29 . 4
AlternativesSpinnakerGOCDJenkins PipelineGitLab CI
Déploiement
30
Java Dashboard
31
BesoinsInfos JVM ( stacktrace, thread dump, ... )Manipulation configurationsManipulation niveaux de logsMonitoring coupes-circuits
Java Dashboard
32 . 1
Notre outilSpring Boot Admin
Java Dashboard
33 . 1
Dashboard
Java Dashboard
33 . 2
DétailsJava Dashboard
33 . 3
Logs
Java Dashboard
33 . 4
HystrixJava Dashboard
33 . 5
Alternativeshawtio (http://hawt.io/)Java Mission ControlCRaSH ( remote shell )
Java Dashboard
34
Datastore management
35
BesoinsVisualisation des donnéesManipulation d'urgence / debug
Datastore management
36 . 1
Nos outilsPostgresql : PgAdmin serverElasticsearch : Kibana
Datastore management
37 . 1
PgAdmin 4 serverDatastore management
37 . 2
Kibana
Datastore management
37 . 3
AlternativesDB : PostgreSQLStudio, Teampostgresql, Adminer,PhpMyAdminElasticsearch : ElasticHQRedis : Readis, Redmon, Redsmin
Datastore management
38
Gestion des logs
39
BesoinsCentralisationRecherche avancéeDashboardIntégration Docker
Gestion des logs
40 . 1
Nos outilsElasticsearchKibanaAWS CloudWatch Docker logging driverAWS Lambda ( Stream logs CloudWatch ->Elasticsearch )
Gestion des logs
41 . 1
Kibana
Gestion des logs
41 . 2
AlternativesELK ( logstash )GraylogSaaS : Loggly, Logz, Sumo Logic, Splunk, PaperTrails
Gestion des logs
42
Metrics / APM
43
BesoinsCentralisationDiagnostiquesTendancesAlerting
Metrics / APM
44 . 1
Nos outilsCloudwatch + Spring Cloud AWSNewrelic
Metrics / APM
45 . 1
Cloudwatch JVM
Metrics / APM
45 . 2
Newrelic Applications
Metrics / APM
45 . 3
Newrelic application dashboard
Metrics / APM
45 . 4
Newrelic JVM dashboard
Metrics / APM
45 . 5
AlternativesHawkularPinpointPrometheusSaaS : Appdynamics, Dynatrace, Datadog
Metrics
46
Tracing
47
BesoinsInvestiguer sur les problèmes de latenceCartographier les dépendances
Tracing
48 . 1
Nos outilsJaeger ( UBER )Spring Cloud Sleuth
Tracing
49 . 1
Jaeger traces
Tracing
49 . 2
Jaeger détail d'une trace
Tracing
49 . 3
Jaeger dépendances
Tracing
49 . 4
AlternativesZipkin ( Twitter )AWS X-RayLes APM ...
Tracing
50
ConclusionOutillage indispensableCoût non négligeable ( temps, budget )Prise en compte au démarrage projet
51
Questions ?
52