My slack bot speaks PHP

21
#PHPTour Nantes 18 mai 2017 Gilles Félix, cofounder & Engineer [email protected] @felixgilles My Slack bot speaks PHP

Transcript of My slack bot speaks PHP

Page 1: My slack bot speaks PHP

#PHPTour Nantes 18 mai 2017

Gilles Félix, cofounder & [email protected] @felixgilles

My Slack bot speaks PHP

Page 2: My slack bot speaks PHP
Page 3: My slack bot speaks PHP

● MailClark est installé dans 6800 teams● Microsoft Teams depuis une semaine● Plus de 3.5 millions d’emails reçus● Plus de 300 000 emails envoyés● Plus 600 comptes twitter et facebook

Page 4: My slack bot speaks PHP
Page 5: My slack bot speaks PHP
Page 6: My slack bot speaks PHP
Page 7: My slack bot speaks PHP

Backend PHP (Silex)Frontend SPA React

Page 8: My slack bot speaks PHP

● Délégation d’interface● Focus sur le pont email

Page 9: My slack bot speaks PHP

We <3 PHP

Page 10: My slack bot speaks PHP

Travailler en startup

Page 11: My slack bot speaks PHP
Page 12: My slack bot speaks PHP

Consumer

Autre queue

Service

Services asynchrones en cascade

Génération emailEnvoi Email...

Page 13: My slack bot speaks PHP

Consumer

Autre queue

QueueQueueQueue

/ team

ConsumerConsumerConsumer/ team

Service

Services asynchrones en cascade

Génération emailEnvoi Email...

Page 14: My slack bot speaks PHP
Page 15: My slack bot speaks PHP
Page 16: My slack bot speaks PHP

Bot2Hook

x BatchsClients

WebsocketPiloteServeur

Websocket

Websocket

Websocket : Devristo/phpws basé sur ReactPHP

7000teams

Websocket

Page 17: My slack bot speaks PHP

$loop = \React\EventLoop\Factory::create();

$client = new Client\WebSocket($websocket_server_url);

$client->on("connect", function() {// Avertir le pilote

});$client->on("message", function($message) use ($rabbitmq){ $rabbitmq->publishString($queue_name, $message->getData());});$client->on("close", function() {

// Gérer la reconnexion});

$client->open()->otherwise(function($e) {// Gérer l’erreur, éventuellement bot revoked

});

$loop->addPeriodicTimer(60, function() {// Envoi de stats au pilote

});$loop->run();

Page 18: My slack bot speaks PHP

Blinder les filets de sécurités.

● Surveillance des points névralgiques

● Des logs, des logs, des logs

● Différents niveaux d’alertes

● Maximum d’auto-fix

● DM avec chaque client

Page 19: My slack bot speaks PHP

Compenser par la réactivité

Page 20: My slack bot speaks PHP

#PHPTour Nantes 18 mai 2017

Gilles Félix, cofounder & [email protected] @felixgilles

Merci !

Page 21: My slack bot speaks PHP

Questions https://joind.in/talk/56ce0