Fin juin à New York, s'est tenue la conférence QCon 2018, à laquelle j'ai eu la chance d'assister. Pour cette opportunité, je tiens à remercier mon employeur. Konfa a duré 3 jours, il y avait environ 140 intervenants et plus de 900 participants.

Avertissement: bien sûr, cet article exprime mon opinion personnelle.
Organisation
La conférence étant importante et se déroulant depuis longtemps, tout est organisé à un haut niveau. Public, son, diffusion, enregistrement, présentations - tout est clair, clairement. Bien que non, le premier jour de la première indésirable du clicker keynote. :-) C'était peut-être le seul problème en 3 jours.

Thèmes
Pendant 3 jours, les organisateurs ont couvert 15 sujets différents. C'est-à-dire chaque jour, il y avait 5 flux principaux (+ présentations de parrainage et public Ask Me Anything), chaque jour il y avait de nouveaux flux. À mon avis, une couverture aussi large est bonne en termes de quantité, mais la qualité en souffre. Il s'est avéré que sur 6 rapports par jour auxquels j'ai assisté, 1-2 étaient vraiment utiles et intéressants pour moi. Certains rapports ne correspondaient tout simplement pas à leur nom, ce qui était dommage pour le temps passé.

J'avais des attentes légèrement différentes quant à la quantité d'informations nouvelles pour moi. Quelque chose de nouveau, d'intéressant et d'inconnu était moins que nous le souhaiterions.
Keynotes
Avant le début de chaque journée, tout le monde s'est réuni dans la plus grande salle, et certaines personnes de la célèbre entreprise ont dit quelque chose de général, mais intéressant. Ces histoires concernaient le développement de logiciels sous une forme ou une autre. J'ai aimé les 3 keynotes.
Les développeurs comme véhicule de distribution de logiciels malveillants (Guy Podjarny, SnykSec)
Guy travaille pour une entreprise qui examine les produits open source à la recherche de vulnérabilités. Il a expliqué comment les vulnérabilités sont intégrées dans différents outils de développement et comment elles se propagent ensuite entre les utilisateurs finaux. J'y ai rarement pensé et, de plus, je ne pensais pas que ce phénomène était à grande échelle. Guy a montré comment cela pouvait être avec des exemples intéressants. Il s'avère que le malware peut être intégré à l'EDI (XCodeGhost a servi d'exemple) et injecté dans le fichier exécutable lors de l'assemblage. Vous pouvez également placer des logiciels malveillants dans la bibliothèque de plug-ins.
Les principales pensées de la présentation que je voudrais souligner:
- avec une grande puissance vient une grande responsabilité;
- Vous ne pouvez pas faire confiance au code que vous-même n'avez pas écrit à partir de zéro.
- Soyez prudent et attentif aux outils avec lesquels vous travaillez.
Une histoire réfléchie de l'API (Joshua Bloch, Carnegie Mellon)
Joshua Bloch a expliqué quand et qui a inventé l'API (Application Program Interface) et comment ce terme a évolué jusqu'à ce jour.
Il s'avère que l'API a été inventée avant la construction du premier ordinateur! Peu utile, mais très intéressant!
Facilité d'utilisation, aucun bogue et une bonne description sont ce que vous devez penser lors du développement d'une nouvelle API.
L'histoire des sorties de secours (Tanya Reilly, Squarespace)
Tanya a raconté l'histoire de l'émergence et du développement d'un escalier de secours à New York depuis 1838. Bien entendu, la cause de l'apparition et du développement de ce phénomène était les incendies. D'un point de vue historique, elle a montré pourquoi ces événements se sont produits et quelles mesures ont été prises pour y faire face à l'avenir. Des "incendies" dans le monde du logiciel se produisent également, mais sur la base de l'expérience existante, nous pouvons minimiser leurs conséquences.
Minimisez en principe la possibilité d'incendie. Fournir des outils de détection précoce des incendies. Isolez les zones d'incendie potentiellement dangereuses afin que le feu ne se propage pas. Avoir un service d'incendie et des plans d'évacuation à jour.
Rapports effectivement
Peut-être que je n'écrirai que sur les rapports que j'ai personnellement aimés, dont j'ai pu apprendre quelque chose de nouveau et bénéficier.
Modèles sans serveur et anti-modèles (Joe Emison, succursale)

La dernière fois que j'ai plongé dans le thème sans serveur, Backendless et maintenant décédé dans le Bose Parse a fait l'objet de rumeurs. Mais plusieurs années ont passé et quand j'ai écouté Joe, j'ai été surpris de voir combien de services sont maintenant apparus dans ce domaine et combien il est possible de les combiner pour atteindre une variété d'objectifs. Joe a expliqué que sans serveur (sans serveur signifie ici un ensemble de services externes pour atteindre l'objectif du produit), ils ont écrit un logiciel pour collecter des statistiques et surveiller la qualité du carburant, ainsi qu'une application pour sélectionner un bien immobilier à louer. Ces applications peuvent faire l'authentification, valider les données, modérer les images, travailler avec une carte, lire dans les nuages et bien plus encore. Et tout cela grâce à des services externes! Votre tâche principale consiste à surveiller la disponibilité de ces mêmes services externes.

De ce rapport, j'ai découvert de nombreux nouveaux services que je voulais "toucher" et en savoir plus. Et ici, d'ailleurs, et ils:
- Segment - une plate-forme unique pour collecter, stocker, analyser et acheminer les données de vos utilisateurs.
- DocRaptor - Génère PDF / Excel à partir de HTML
- Cloudinary - une plate-forme pour gérer le contenu multimédia (photos, vidéos).
- Auth0 - la plateforme offre des capacités avancées d'identification des utilisateurs.
- Webtask est une plateforme FaaS qui exécute votre code dans le cloud.
- Netlify - hébergement cloud avec déploiement en quelques minutes. Capable de se connecter à votre référentiel sur un github et de déployer des sites à partir de celui-ci lors de sa mise à jour. Eh bien, toutes sortes d'autres puces de mode
- Algolia - un moteur de recherche pour votre site, si je comprends bien
- AWS Cognito - gestion des utilisateurs, identification, différenciation des droits
- AWS Lambda - la plateforme FaaS d'Amazon
- AWS AppSync - Synchronisation des données en temps réel sur les appareils

Voici ce que j'ai appris moi-même de la présentation:
- Multilinguisme, microservices, DevOps c'est bien.
- La génération de code pour différentes langues à partir d'une description unifiée de l'API est bonne.
- Automatisez tout ce que vous pouvez atteindre.
- Dites quoi faire, ne dites pas comment. Et puis tout ira bien avec vous.
- Minimisez la résistance à l'innovation. L'orateur cite l'exemple des «gardiens» qui n'autorisent pas «les innovations potentiellement dangereuses qui n'apportent pas d'avantages» au projet. Ces personnes construisent le travail sur le principe du «travail - ne touchez pas». Et cela ralentit le développement de produits
- Assurer la transparence de l'infrastructure pour détecter les faiblesses et détecter les problèmes le plus tôt possible.
Au plus près du fil: alerte en temps réel (Katerina Domenikou de Bloomberg)

Pour moi, j'ai fait quelques choses intéressantes qui ont été discutées dans la présentation:
- Recherche en streaming. Recherchez dans le flux d'informations entrant.
- Luwak - un outil qui aide à remplir le paragraphe 1.
Et il était de nouveau convaincu que, parfois, il fallait regarder la tâche sous l'angle le plus inattendu. Katerina a expliqué comment ils traitent un grand nombre de requêtes de recherche, ou, plus précisément, des filtres, vers un large éventail de données. Le tableau de données peut également être réapprovisionné assez souvent. Ainsi, dans leur décision, les gars indexent non pas les données, mais les requêtes. Ainsi, lorsque de nouvelles données apparaissent, il est vérifié si les nouvelles données satisfont aux requêtes existantes et, dans l'affirmative, les données sont associées à l'index. La recherche est considérablement accélérée. En général, pour moi, c'était nouveau pour O_o.
Flux d'événements complexes dans les systèmes distribués (Bernd Rücker, Camunda)

Les solutions d'entreprise modernes pour automatiser les processus métier (moteur de workflow, machine d'état) sont lourdes et ennuyeuses. Par conséquent, vous ne devez pas les utiliser, mais il existe une alternative légère et digne. Et d'une manière ou d'une autre, il s'est avéré que l'alternative est développée par l'équipe du conférencier et s'appelle Camunda. Mais si la solution est bonne, alors pourquoi ne pas en parler!
À partir de cette présentation, j'ai repéré les choses suivantes que je voulais «toucher» et approfondir:
- UBER Cadence est un outil distribué, évolutif et fiable pour orchestrer des processus métier asynchrones et temporels.
- Netflix Conductor est un outil d'automatisation d'entreprise basé sur des microservices.
- Camunda est une plate-forme pour automatiser les processus métier.
- Zeebee - un outil d'automatisation commerciale basé sur un microservice avec un concepteur graphique!
- Activiti est un outil d'automatisation d'entreprise basé sur un microservice basé sur le cloud.
Si je comprends bien, tous ces outils vous permettent d'établir un équilibre et de répartir la responsabilité des microservices et du moteur de workflow réel. Cela se fait en effectuant des opérations de routine (gestion des erreurs de base, cycles, exécution planifiée) du côté du moteur de workflow, et la logique du domaine reste entièrement dans les microservices qui composent le processus métier.
Envoyé de Lyft: Embrasser un maillage de service (Matt Klein, Lyft)

Matt a parlé d' Envoy , le produit qu'il dirige. Une sorte de maillage de service qui permet aux microservices d'interagir sans penser à la topologie du réseau. Entre autres goodies sont présents:
- équilibreur de charge
- surveiller l'état des microservices,
- collecter différents types de statistiques,
- service de découverte de service
- extensions de plug-in.

On se souvint de Matt encore un instant. Après toutes les présentations, les intervenants se sont réunis sur scène et ont commencé à répondre à des questions sur un sujet commun («Les architectures dont vous vous êtes toujours demandé»). Lorsque la question s'est posée de la disponibilité des tests d'intégration et de leurs approches, un demi-sourire était visible sur les visages de tous les intervenants. Matt répondit en premier, et tout le monde le soutint silencieusement. Sa réponse était dans cet esprit - «Bien sûr, nous avons des tests d'intégration, mais ... Rien ne donne de si bons résultats que les tests en production». Matt propose des tests automatisés limités aux tests unitaires, aux tests de charge. Et dans une moindre mesure, comptez sur les résultats des tests d'intégration.
Mise à l'échelle de la messagerie push pour des millions d'appareils (Susheel Aroskar, Netflix)
Malheureusement, je n'ai pas pu visiter le rapport lui-même, mais il y a eu de nombreuses critiques positives sur la présentation et sur l'orateur. Je pense donc que ça vaut le coup d'oeil.
Buzzwords QC sur New York 2018

Il y avait aussi toute une piste sur la blockchain. Mais je n'ai pas pu y arriver.
Post scriptum
Au printemps, j'ai assisté à CodeFest 2018 à Novossibirsk. Et pour être honnête, je l'ai davantage aimé. Mais, comme on dit, chacun à lui.
Toutes les présentations sont déjà disponibles ici .
La vidéo sera accessible au public dans 3 à 4 mois. Pour les participants, l'accès à la vidéo est déjà ouvert. Et cette vidéo peut être envoyée à 30 personnes différentes par e-mail.
Post post scriptum
Je n'ai pas écrit sur la nourriture, l'hébergement et le transport dans l'article, car cela ne semble pas concerner le sujet de Habr, mais si quelqu'un est intéressé, je peux répondre en PM ou dans les commentaires.