My slack bot speaks PHP
-
Upload
gilles-felix -
Category
Engineering
-
view
285 -
download
1
Transcript of My slack bot speaks PHP
#PHPTour Nantes 18 mai 2017
Gilles Félix, cofounder & [email protected] @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é
Questions https://joind.in/talk/56ce0