View
400
Download
6
Category
Preview:
Citation preview
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
Recommended