Nelson Dionisi

Nelson Dionisi

Mirakl

Lead Developer @Mirakl

archisec

Track : Architecture, Performance and Security

Type de présentation : Conference

Ce que les développeurs doivent savoir sur les index

Les développeurs sont très souvent amenés à écrire des requêtes SQL pour communiquer avec des bases de données relationnelles. Pour les cas simples, connaître la syntaxe et le principe du SQL est amplement suffisant. Par contre, quand la volumétrie augmente et que les performances sont importantes, la question des indexes se pose rapidement.

On demande souvent aux DBA d'aider à indexer correctement nos tables car on considère que créer les index et comprendre leur fonctionnement est un travail de DBA. C'est faux ! Les développeurs connaissent le métier des applications sur lesquelles ils travaillent, et ce sont eux les mieux placés pour comprendre quelles données doivent être indexées et comment.

Ce talk présente les principes de bases des index, leur fonctionnement, et comment les utiliser de manière efficace en fonction des cas d'utilisation. Il n'a pas pour but de rentrer dans un niveau de détail extrêmement pointus sur les mécanismes internes des SGBD, puisqu'il existe des DBA pour ça ! Par contre, il donne un tour d'horizon des notions importantes à avoir en tête en tant que développeur pour écrire des requêtes performantes et scalables.

java

Track : Java, JVM

Type de présentation : Conference

Montée de version sans interruption

Beaucoup d'éditeurs logiciels fournissent leurs solutions en SaaS, et tendent à déployer leurs applications en Continuous Delivery. Les contraintes business impliquent souvent de pouvoir déployer un nouvelle version applicative sans interruption de service.

Les techniques classiques de Rolling Update permettent de réaliser une montée de version sans interruption de service facilement. La complexité intervient lorsque l'on gère une base de données relationnelle, et que l'on souhaite faire évoluer son schéma, toujours sans interruption de service.

Ce talk est un retour d'expérience présentant les mécanismes que j'ai eu l'occasion de mettre en place pour réaliser ces montées de version sans interruption. Il se concentre sur la partie applicative, et les problématiques engendrées par un tel process. Le but est d'être le plus concret possible, avec des exemples de "la vraie vie", notamment quelques astuces pour réaliser ses migrations sans douleur avec des frameworks comme Hibernate ou jOOQ. Les exemples sont donnés en Java avec une base de données PostgreSQL, mais les principes s'appliquent à n'importe quel language et à la plupart des bases de données relationnelles.