Presentation sparklane aws

Post on 13-Apr-2017

398 views 6 download

Transcript of Presentation sparklane aws

AMAZON WEB SERVICES CHEZ

SPARKLANE

2

Agenda

1.Qui sommes nous?2.Services AWS utilisés3.Automatisation4.Docker et Rancher5.Intégration et Déploiement continu

SPARKLANEQUI SOMMES NOUS?

4

De Zebaz à Sparklane

80COLLABORATEURS 50%

DE CROISSANCEEN MOYENNE PAR AN

30%DU CA INVESTI DANSL’INNOVATION

110%DE RENOUVELLEMENT CLIENT (EN VALEUR)

ACTIONNAIRESSIPAREX / BPI

2009

Création

2010

CrowdsourcingSaas

2011 2012 2013 2014 2015 2016

Algorithmesde mises à jour

Data asa service

R&DBig Data

SmartData

Zebaz devientSparklane

AppCRM

+PARIS

NANTES+

LONDRES

5

Sparklane, la solution unique quiréconcilie enjeux marketing et sales

Hyperciblez vos campagnesmarketing grâce à plus de

30 hypercritères

Atteignez plus facilementvos objectifs de génération

de leads

&

SPARKLANE FOR MARKETING

Maximisez les chances de closervos affaires en disposant de leads

scorés et d’une bonne compréhension du contexte

Identifiez plus rapidementvos prospects « chauds » grâce

à une veille sur-mesure dessignaux d’affaires

Améliorez votre connaissance client en étant informé de

leurs actualités

Détectez plus rapidementet facilement les nouveaux

besoins chez vos clients

& &

Account Management

Business Development

SPARKLANE FOR SALES

6

Sparklane

7

Différentes Interfaces Client

Web App APPS Connecteurs Data Services

Marketing

Sales

Cleaning

EnrichissementERP…

API

8

Organisation / Architecture Globale

News

Société/contacts

CrawlWeb

- Auto- Manuel

AggsAggs

AggsMicro

serviceMicroserviceMicro

serviceMicroservice

UI

APPS

CrawlWebCrawl

WebSRCs

News Collector

Data Prod

Database App.

Soft

Support CICD…Repo…

9

Organisation / Architecture Globale

News Collector

Data Prod

Database App.

Soft

Support

SPARKLANE&

AWS

Utilisation EC2 Classique

Amazon EC2

Elastic Load Balancing

Auto Scaling

Installation DirecteDocker mono-machine (rare chez Sparklane)=> 30 Instances

Mise en prod green/blueCertificats SSL=> 4-5 ELB

Peu utilisé maintenantRemplacement machine si healthcheck fail=> 5-6 ASG

Utilisation EC2 Classique

AmazonSNS

AmazonSES

DNS PrivéTTL 1 min!

Backup / ArchivesFichiers de configuration

Postgres / MysqlScalable VerticalSnapshot / Restore autoPourquoi pas MongoDB ???

AmazonRoute 53

AmazonS3

AmazonRDS

Mails techniquesMails clientPas de campagne d’emailing

Envoi d’alertes techniques

Amazon CloudWatch

Monitoring « Machine »Prometheus pour DockerLogtrail pour logs

4 Zones – 3 VPC

=> 5 Instances

Lambda

• Expérimental chez Sparklane• Peu de cas d’utilisation• Anecdotique:

• Synchronisation de DNS (ASG + SNS + Lambda)• Redémarrage de machine en cas d’alerte• Envoi d’alertes sur Slack• (Tout ce que AWS ne sait pas encore faire)

• Utilisation massive de Docker chez nous

• Gros potentiel !!!

AWSLambda

Vs.

=> env. 50 containers

14

Services utilisés

Amazon EC2

Elastic Load Balancing

Auto Scaling

AmazonS3

AmazonRDS

AmazonRoute 53

Amazon Elasticsearch Service

Amazon ECS AWS Elastic Beanstalk

Amazon EC2

Auto Scaling

On utilise: On n’utilise pas (mais on pourrait):

AmazonSNS

AmazonSES

AmazonSQS

AWSLambda

Amazon CloudWatch

AWSCloudFormation

Spoiler…

Amazon EC2

Elastic Load Balancing

Auto Scaling

« Pool de machines avec Docker pour Rancher »

Remplacement autoScaling (auto?)

SSLLoad balanceExpose port(s) public

CPU/RAMDocker installé

AUTOMATISATIONDE L’INFRA

AWS

Infrastructure as Code

- Versionné (Bitbucket, Github)- Reproductible (vs. Suivre un doc)- Rapide (vs. Humain)- Optimisé (si outillé)- Automatisé (Scaling, mise en prod, déploiement continu…)- Sécurisant (pas d’erreur humaine)

Ansible

- Remplace un script bash- Playbooks (recettes) partageable- Elégant (cron, unarchive…)- Testable en local- Modulaire

- Apprentissage- Debugging- Bash dans les cas simple

Packer par Hashicorp

- Création d’images AWS EC2 (et pas que)- Il démarre une instance- Provisionne cette instance (avec Ansible, etc.)- Crée une image (AMI) à partir de cette instance

- Héritage- Intéressant pour déploiement continu- Reproductible / Automatisé

Terraform par Hashicorp

- Déploiement d’une infrastructure (AWS, …)- Différentiel (état 1 -> 2)

- Infrastructure as Code- Reproductible / Automatisé- Variables, …

Auto Scaling Group / Cloud Init

- Type d’instance EC2, AMI, etc.- Nombre d’instances- Règles de Scaling- Remplacement auto de machine

- Image de base (Ubuntu, etc.)- User Data / Cloud Init pour provisionner

RANCHERCHEZ

SPARKLANE

23

Docker

Docker offre la garantie qu’un même container va s’exécuter de la même façon partout.

24

Ordonnanceur Docker

Ma précieuse machine

Back

Front

• Si la machine tombe?• Rolling-update?• Scaling?• Haute-Dispo?• Automatisation?• Déploiement continu?

25

Ordonnanceur Docker

Machine 1

Back

Front

• Si la machine tombe? OK• Rolling-update? OK• Scaling? • Haute-Dispo? OK• Automatisation? • Déploiement continu?

Machine 2

Back

Front

Load Balancer

26

Ordonnanceur Docker « Idéal »

Machine 1

Back

Front

• Si la machine tombe? OK• Rolling-update? OK• Scaling? OK• Haute-Dispo? OK• Automatisation? OK• Déploiement continu? OK• + souplesse, flexibilité, • + résilienceMachine 2

Back

Front

Machine X

Back

OtherOther

Other

Master Load Balancer

Ordonnanceur Docker « Idéal »

• Mise à disposition d’un pool de machines• Automatisation du déploiement des

container

• Load Balancers, DNS…• Supervision• Dashboard• Etc. etc.

Pourquoi Rancher

• Pas de réservation ressources• Dashboard complet• Simple pour utilisateurs• Simple pour Ops (juste besoin de docker)• Outillage out of the box

Rancher

Pourquoi Rancher

Pourquoi Rancher

Pourquoi Rancher

33

Stack Applicative

APIUI

UIAPI

MS1 MS2 MS3

Cron

34

Stack Applicative

API

UI UI

API

MS1 MS2 MS2

Cron

MS3

35

Stack Applicative (Améliorée)

API

UI UI

API

MS1 MS2 MS2

Scheduler

MS3

LB LB LB

36

Stack Applicative (Améliorée)

API

UI UI

API

MS1 MS2 MS2

Scheduler

MS3

LB LB LB

Stack Back

Stack Front

37

API

UI UI

API

MS1 MS2 MS2

Scheduler

MS3

LB LB LB

Amazon Elastic Load Balancer : 80

38

API

UI UI

API

MS1 MS2 MS3

Scheduler

MS4

LB LB LB

Amazon Elastic Load Balancer : 80

Admin

DNS Privé(AWS Route

53)

Infrastructure as Code

Environnements

Prod

Recette

DÉPLOIEMENT(CONTINU)

Build/Déploiement Packer / Terraform

Commit

Build / Test

Push to Maven

Build AMI (Packer + Ansible)

Terraform Apply Remplacement Machine UniqueMise à jour de l’ASG ou

Build/Déploiement (Continu) Rancher

Commit

Build / Test

Build Docker

Rancher Deploy V1 V1 V2 API v2

Rolling Upgrade

Load Balancer Rancher

CONCLUSION

Sparklane sur Rancher

• Mutualisation de ressources (bourrage de machines)• Déploiement facile, parfois continu• Plusieurs stacks• Prod• Stack développeur• Env de dev

• On expose que ce que l’on veut (VPN pour le reste)• Infrastructure as code• Attention aux ressources: monitoring, alertes

Sparklane sur AWS

• Cloud• Scriptable / Automatisable• Packer / Terraform• Maîtrise des coûts• Mise en place rapide