D-DAY 2015 Electric sheep SERVEBOX

26
by ElectricSheep.IO ServeBox OU COMMENT NOUS AVONS TROUVÉ DES MOUTONS ÉLECTRIQUES SUR LA ROUTE par Fabrice Nourisson / (un développeur hédoniste) @duckmole

Transcript of D-DAY 2015 Electric sheep SERVEBOX

Page 1: D-DAY 2015 Electric sheep SERVEBOX

by ElectricSheep.IO

ServeBoxOU COMMENT NOUS AVONS TROUVÉ DESMOUTONS ÉLECTRIQUES SUR LA ROUTE

par Fabrice Nourisson / (un développeur hédoniste)@duckmole

Page 2: D-DAY 2015 Electric sheep SERVEBOX

DÉROULEMENT DE L'ATELIER15 min la route vers le devops et ElectricSheep.IO

30 min live démo d'ElectricSheep.IO

Page 3: D-DAY 2015 Electric sheep SERVEBOX

UNE ÉQUIPE EN ROUTEPOUR LE DEVOPS

ServeBox est une société de développement passée au devops pour les besoins de ses clients

Page 4: D-DAY 2015 Electric sheep SERVEBOX

UNE ÉQUIPE EN ROUTEPOUR LE DEVOPS

Production de code

Page 5: D-DAY 2015 Electric sheep SERVEBOX

UNE ÉQUIPE EN ROUTEPOUR LE DEVOPS

Déploiement

Page 6: D-DAY 2015 Electric sheep SERVEBOX

UNE ÉQUIPE EN ROUTEPOUR LE DEVOPS

Opérations

Monitoring et Alerte Reprise d'activité ?

Page 7: D-DAY 2015 Electric sheep SERVEBOX

LES DEVS ET LE BACKUPSolutions existantes trop lourdes

Mauvaise maîtrise du bashUne configuration par serveur et par projet

Alerte en cas d'échecTéléversement (upload) vers des systèmes tiers

Page 8: D-DAY 2015 Electric sheep SERVEBOX

LES DEVS ET LE BACKUP

Une DSL

Page 9: D-DAY 2015 Electric sheep SERVEBOX

LES DEVS ET LE BACKUP

La centralisation

One server to rule them all

Page 10: D-DAY 2015 Electric sheep SERVEBOX

LES DEVS ET LE BACKUP

Notifications claires

Page 11: D-DAY 2015 Electric sheep SERVEBOX

LES DEVS ET LE BACKUP

Confidentialité

Page 12: D-DAY 2015 Electric sheep SERVEBOX

QUI L'UTILISE ET POUR QUOI ?

SonarSource backup ses bases de données

et fichiers

Servebox backup les bases de données

des applications

e-labo backup ~70environnements clients

(CMS)

Page 13: D-DAY 2015 Electric sheep SERVEBOX

POURQUOI PAS VOUS ?

UTILISER

humans [at] electricsheep [dot] io

Getting Started

CONTRIBUER

Code sur github

Doc. sur readme.io

Page 14: D-DAY 2015 Electric sheep SERVEBOX

ET MAINTENANT LE LIVE CODING

Page 15: D-DAY 2015 Electric sheep SERVEBOX
Page 16: D-DAY 2015 Electric sheep SERVEBOX

INSTALLATIONcurl https://github.com/servebox/electric_sheep/releases/download/v0.5.0/electric­sheep­ubuntu_0.5.0­1_amd64.debmd5 electric­sheep­ubuntu_0.5.0­1_amd64.debdpkg ­i electric­sheep­ubuntu_0.5.0­1_amd64.deb

Doc d'installation

Page 17: D-DAY 2015 Electric sheep SERVEBOX

CRÉATION ET INSTALLATION DES CLÉS SSHssh­keygen ­t rsa ­N '' ­f electric_sheep_rsassh­copy­id ­i electric_sheep_rsa.pub [email protected]­copy­id ­i electric_sheep_rsa.pub servebox@have­fun­with­tdd.com

Doc. de création des clés ssh

Page 18: D-DAY 2015 Electric sheep SERVEBOX

SAUVEGARDE DU SITE WORDPRESS HAVE-FUN-WITH-TDD

SheepFile

Commande

host "have­fun­with­tdd", hostname: "192.168.50.4", private_key: "electric_sheep_rsa"  working_directory "/backups"

  job "have­fun­with­tdd­files" do    schedule "daily", at: "00:00"    resource "directory", path: "/var/www", host: "have­fun­with­tdd"    remotely as: "servebox" do      tar_gz delete_source: true    end    move to: "localhost", using: "scp", as: "servebox"  end

  job "have­fun­with­tdd­db" do    schedule "daily", at: "00:00"    resource "database", name: "wordpress", host: "have­fun­with­tdd"    remotely as: "servebox" do      mysql_dump user: "wordpress", password: "wordpress"      tar_gz delete_source: true    end    move to: "localhost", using: "scp", as: "servebox"  end

electric_sheep

Cookbook pour wordpress

Page 19: D-DAY 2015 Electric sheep SERVEBOX

SAUVEGARDE DE LA BASE DE DONNÉESPOSTGRESQL DU SITE ORNITHORYNQUE

host "ornithorynque", hostname: "192.168.50.5", private_key: "electric_sheep_rsa"  working_directory "/backups"

  job "ornithorynque­db" do    schedule "daily", at: "00:00"    resource "database", name: "hello_phoenix_dev", host: "ornithorynque"    remotely as: "servebox" do      postgresql_dump user: "electric_sheep", password: "password"    end    remotely as: "servebox" do      tar_gz delete_source: true    end    move to: "localhost", using: "scp", as: "servebox"  end

Cookbook pour PostgreSQL

Page 20: D-DAY 2015 Electric sheep SERVEBOX

CRÉATION DES CLÉS GPGgpg ­­gen­keygpg ­­batch ­­armor ­­output electric_sheep.public.gpg.asc ­­export [email protected] ­­batch ­­armor ­­output electric_sheep.private.gpg.asc ­­export­secret­key [email protected]

Doc. pour la création des clés gpg

Page 21: D-DAY 2015 Electric sheep SERVEBOX

CHIFFREMENT DES MOTS DE PASSEelectric_sheep encrypt ­k electric_sheep.public.gpg.asc "password"

Doc. pour chiffrer les mots de passe

Page 22: D-DAY 2015 Electric sheep SERVEBOX

SHEEPFILE AVEC MOTS DE PASSE CHIFFRÉShost "ornithorynque", hostname: "192.168.50.5", private_key: "electric_sheep_rsa"  working_directory "/backups"  decrypt with: "electric_sheep.private.gpg.asc"

  job "ornithorynque­db" do    schedule "daily", at: "00:00"    resource "database", name: "hello_phoenix_dev", host: "ornithorynque"    remotely as: "servebox" do      postgresql_dump user: "electric_sheep", password: encrypted("xxxx")    end    remotely as: "servebox" do      tar_gz    end    move to: "localhost", using: "scp", as: "servebox"    locally do      encrypt delete_source: true    end  end

Doc. pour chiffrer les mots de passe

Page 23: D-DAY 2015 Electric sheep SERVEBOX

RÉCUPÉRATION DE LA CLÉ PUBLIQUE GPG POURLE CHIFFREMENT DES SAUVEGARDES

gpg ­­armor ­­output fabrice.public.gpg.asc ­­export fabrice@nourisson­pytel.fr

Doc. pour générer la clé publique

Page 24: D-DAY 2015 Electric sheep SERVEBOX

CHIFFREMENT DES SAUVEGARDEShost "ornithorynque", hostname: "192.168.50.5", private_key: "electric_sheep_rsa"  working_directory "/backups"  decrypt with: "electric_sheep.private.gpg.asc"  encrypt with: 'fabrice.public.gpg.asc'

  job "ornithorynque­db" do    schedule "daily", at: "00:00"    resource "database", name: "hello_phoenix_dev", host: "ornithorynque"    remotely as: "servebox" do      postgresql_dump user: "electric_sheep", password: encrypted("xxxx")    end    remotely as: "servebox" do      tar_gz delete_source: true    end    move to: "localhost", using: "scp", as: "servebox"    locally do      encrypt delete_source: true    end  end

Doc. pour chiffrer les sauvegardes

Page 25: D-DAY 2015 Electric sheep SERVEBOX

SheepFile

host "ornithorynque", hostname: "192.168.50.5", private_key: "electric_sheep_rsa"  working_directory "/backups"  decrypt with: "electric_sheep.private.gpg.asc"  encrypt with: 'fabrice.public.gpg.asc'

  job "ornithorynque­db" do    schedule "daily", at: "00:00"    resource "database", name: "hello_phoenix_dev", host: "ornithorynque"    remotely as: "servebox" do      postgresql_dump user: "electric_sheep", password: encrypted("xxxx")    end    remotely as: "servebox" do      tar_gz delete_source: true    end    move to: "localhost", using: "scp", as: "servebox"    locally do      encrypt delete_source: true    end  end

host "have­fun­with­tdd", hostname: "192.168.50.4", private_key: "electric_sheep_rsa"  working_directory "/backups"

  job "have­fun­with­tdd­files" do    schedule "daily", at: "00:00"    resource "directory", path: "/var/www", host: "have­fun­with­tdd"    remotely as: "servebox" do      tar_gz delete_source: true    end    move to: "localhost", using: "scp", as: "servebox"  end

  job "have­fun­with­tdd­db" do    schedule "daily", at: "00:00"    resource "database", name: "wordpress", host: "have­fun­with­tdd"    remotely as: "servebox" do      mysql_dump user: "wordpress", password: "wordpress"      tar_gz delete_source: true    end    move to: "localhost", using: "scp", as: "servebox"  end

Page 26: D-DAY 2015 Electric sheep SERVEBOX

#DEVOPSDDAY #ESIO

MERCI

by http://electricsheep.io

ServeBox

DEVELOPERS,GIVE YOUR BACKUPS SOME LOVE