My slack bot speaks PHP

Post on 22-Jan-2018

285 views 1 download

Transcript of My slack bot speaks PHP

#PHPTour Nantes 18 mai 2017

Gilles Félix, cofounder & Engineergilles@mailclark.ai @felixgilles

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

Backend PHP (Silex)Frontend SPA React

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

We <3 PHP

Travailler en startup

Consumer

Autre queue

Service

Services asynchrones en cascade

Génération emailEnvoi Email...

Consumer

Autre queue

QueueQueueQueue

/ team

ConsumerConsumerConsumer/ team

Service

Services asynchrones en cascade

Génération emailEnvoi Email...

Bot2Hook

x BatchsClients

WebsocketPiloteServeur

Websocket

Websocket

Websocket : Devristo/phpws basé sur ReactPHP

7000teams

Websocket

$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();

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

Compenser par la réactivité

#PHPTour Nantes 18 mai 2017

Gilles Félix, cofounder & Engineergilles@mailclark.ai @felixgilles

Merci !

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