Examen de la conférence CMG Impact 2016

Cet article est dédié à la conférence qui s'est tenue il y a près de 2 ans. Pourquoi écrire sur de tels événements de longue date? Premièrement, à mon avis, peu de gens connaissent cette conférence. Deuxièmement, mes impressions personnelles d'elle sont si fortes même après deux ans que je ne peux pas m'empêcher de les partager. Troisièmement, je voulais vraiment écrire, mais je ne savais pas très bien comment le faire, car je n'avais jamais écrit de critiques auparavant, c'est ma troisième tentative d'écrire sur cette conférence. Et, bien sûr, je tiens à remercier la société de distillerie, dans laquelle je travaillais à l'époque, et mon superviseur Sergei Meshcheryakov pour l'opportunité d'assister à cette conférence.



La conférence internationale sur l' impact de la GCM est organisée chaque année par l'Association américaine des spécialistes dans le domaine de l'amélioration des performances des systèmes informatiques. La conférence annuelle de la GCM se tient depuis 1980.

La conférence est consacrée à l'ingénierie de la performance et à la planification des capacités. Les organisateurs, les conférenciers et les participants à la conférence sont des spécialistes hautement qualifiés en informatique ou dans le domaine de la planification des capacités, dont beaucoup ont commencé à travailler sur des ordinateurs centraux, puis sont passés à des systèmes distribués et continuent actuellement de travailler dans des entreprises leaders de l'industrie. La qualification de beaucoup d'entre eux est incroyable. Il y avait des entreprises ou leurs représentants à la conférence qui se rapportaient à la surveillance ou au test des performances de Dynatrace, NewRelic, Soasta, Jmeter, BMC, Moviri, BezNext et bien d'autres.

Lors de la conférence, 120 rapports ont été présentés par plus de 15 pays du monde, principalement les États-Unis, le Canada et les pays européens. Elle a été réalisée pendant cinq jours du 7 au 11 novembre 2016. Le mode de fonctionnement était le suivant: les rapports de la session plénière ont commencé à partir de 8 heures du matin et se sont poursuivis avec des rapports par section dans 8 salles jusqu'à 19 heures du soir avec une courte pause déjeuner vers midi. Chaque journée de travail de la conférence s'est terminée par un buffet général, au cours duquel il a été possible de communiquer personnellement avec tous les intervenants et de discuter des rapports présentés. Il était assez difficile de faire un choix quant au rapport auquel assister, car dans les sessions parallèles, les rapports d'intérêt se trouvaient simultanément dans différentes salles.

Dans cet article, je décrirai brièvement les rapports que j'ai le plus appréciés.

En 1974, l'American Association of Specialists in Improving the Performance of IT Systems Computer Management Group a créé le prix Abraham Michelson annuel pour sa contribution professionnelle à l'évaluation des performances du système. Ce prix est traditionnellement décerné lors de la conférence d'impact de la GCM.

Ouverture de la conférence et présentation du Michelson Award AA


La conférence s'est ouverte par le prix Andrei Bondi AA Michelson, consultant indépendant, auteur de Foundations of Software and System Performance Engineering: Process, Performance Modeling, Requirements, Testing, Scalability, and Practice.
La première séance plénière a commencé par un rapport d'André Bondi. L'idée clé du rapport était que le réglage ne conduirait jamais à des améliorations de performances à certains moments. Selon l'auteur du rapport, la plus grande augmentation de la productivité peut être obtenue en éliminant les erreurs architecturales dans le système. Je pense que beaucoup d'entre vous le savent par expérience personnelle. Au cours de ma carrière, je suis arrivé à la même conclusion. Par exemple, le passage d'un système apparemment plus productif à un système open source plus modeste peut améliorer les performances si, pendant le transfert, l'équipe élimine les erreurs architecturales de la version précédente du système.

Atteindre l'évolutivité et les performances> 1 million d'utilisateurs simultanés à la fois
Lukas Sliwka, Grindr


La prochaine présentation intéressante pour moi était le rapport de ceux-ci. Directeur de Grindr Lucas Cream. Grindr est une application de rencontres en ligne. Lukash a parlé simultanément de la transformation de l'entreprise, de la culture de développement (ils sont passés à la mêlée) et de la transformation technique du système. Grindr compte plus de 2,5 millions d'utilisateurs, dont 1 million sont actifs. Les principaux utilisateurs avant la conversion se trouvaient aux États-Unis et au Canada, alors qu'ils s'éloignaient des États-Unis, le nombre d'utilisateurs a diminué.



Les serveurs et les entrepôts de données étaient également situés principalement aux États-Unis. De plus, l'application a déjà migré vers le serveur le plus puissant possible sur l'hébergement, et l'entreprise est confrontée au grave problème d'optimisation et de scaling. Le problème de l'optimisation et de la mise à l'échelle a été résolu de manière radicale - l'équipe a entièrement réécrit tout le projet de Ruby on Rails à Scala, cela a pris six mois. Scala a été choisi pour deux raisons: premièrement, il était possible d'écrire du code propre avec de bonnes performances; deuxièmement, les développeurs Java étaient plus disponibles à la location, contrairement aux développeurs Node.js qui étaient chers et travaillaient tous sur Facebook.

L'expérience intéressante de Grindr prouve que pour un développement réussi, il faut parfois une nouvelle architecture. Ensuite, une analyse a été faite de la durée de la réponse dans le contexte de chaque pays, et il s'est avéré que plus la réponse est longue, moins il y a d'utilisateurs dans ce pays. L'équipe de développement a optimisé le temps de réponse, le réduisant considérablement à l'aide de CDN et distribuant l'entrepôt de données sur des serveurs cloud avec des centres en Europe, en Asie et en Amérique latine. Une fois les problèmes de performances résolus, le nombre d'utilisateurs de l'application a augmenté dans le monde entier. Cet exemple prouve une relation directe entre des temps de réponse courts et le nombre d'utilisateurs.

La deuxième partie du rapport était consacrée à la gestion d'équipe. Grindr travaille sur Scrum. La séparation des équipes se fait par produit, c'est-à-dire que chaque équipe est entièrement responsable de certains services ou produits pour l'utilisateur, et de la valeur commerciale que l'utilisateur reçoit. L'entreprise est une entreprise basée sur les métriques, et chaque équipe a ses propres métriques et KPI qu'elle doit atteindre. La gestion de niveau intermédiaire est complètement absente. L'entreprise a une structure plate, et l'équipe décide de ce qui doit être fait et comment atteindre ses objectifs. Les rapports de Lukash sont sur YouTube . L'interview de Lucas est disponible ici .

Votre capacité est-elle disponible?
Igor Trubin, Capital One Bank


Il est intéressant de noter que l'auteur a commencé son rapport par des informations selon lesquelles la banque Capital One avait décidé de devenir une entreprise ouverte sur le plan de l'information. Il est bien connu que les banques ne parlent généralement pas de technologies et de processus. Utilisé dans leur travail, considérant ces informations confidentielles. Cependant, dans le monde moderne, afin de rivaliser pour les meilleurs spécialistes et leurs talents, qui vont généralement travailler sur Google et Facebook, les banques doivent être plus ouvertes.

Le rapport était consacré à l'évaluation de la combinaison de la disponibilité du système et de sa marge de performance. Puisque personne n'a besoin d'une bande passante qui ne peut pas être utilisée.

Igor décrit une forme spécifique de la façon dont vous pouvez mesurer votre capacité et sa disponibilité. Il a des paramètres tels que le temps moyen entre les chutes, le temps de récupération moyen, le temps d'arrêt pendant un an et d'autres. Igor propose une formule avec laquelle vous pouvez calculer la disponibilité de l'ensemble de votre infrastructure pour les utilisateurs. Vous pouvez voir son rapport plus en détail.

Planification de la capacité d'expérience numérique
Amy Spellmann et Richard Gimark


Discussion sur la planification des mesures commerciales IoT, des mesures informatiques et des mesures des installations.

Un rapport sur le fait que de nombreuses infrastructures fonctionnent désormais près de la limite de leur bande passante, et ce qui se passera lorsque l'IoT fonctionnera partout. Pour moi, le plus intéressant dans le rapport était son ampleur. Autrement dit, il y a des professionnels qui planifient pour le site, pour l'organisation, et c'est toute une industrie. À quelle fréquence atteignons-nous une vision à si grande échelle?

Assurance des performances d'entreprise basée sur l'analyse BigData
Boris Zibitsker


Boris parle de BigData et des approches pour travailler avec le Big Data. Il identifie les étapes suivantes de l'utilisation des données. Analyse prédictive, car une entreprise doit prendre des décisions en fonction des données actuelles. Le temps c'est de l'argent et rien n'a changé au fil des ans, sauf que le temps est devenu encore plus cher maintenant. Les informations sont coûteuses si elles sont pertinentes.
Travailler avec des clusters de Big Data vous permet de donner à temps l'analyse nécessaire. Boris décrit ensuite les étapes. Deux approches principales consistent à effectuer une analyse en temps réel des données dans un flux ou à collecter à partir de DataLake.

Le rapport décrit l'approche consistant à utiliser des algorithmes de traitement des mégadonnées et d'apprentissage automatique pour effectuer un RCA en cas de défaillance, ainsi que la construction de prévisions basées sur de tels rapports sur le comportement futur du système.

Un point important est de vérifier la fiabilité des résultats, en comparant le comportement réel avec le prévu.

Les 10 principaux défauts de performance qui coûtent des millions d'organisations en ligne
Craig Hyde, Rigueur et rigueur


Craig décrit les 10 erreurs les plus coûteuses qui affectent les performances du site. Craig cite des chiffres selon lesquels, en moyenne, une entreprise perd 102 millions de dollars en potentiel pour 1 seconde d'attente des utilisateurs. Intéressant, hein? La société a effectué une analyse d'environ 500 sites Web et a compilé les 10 principaux problèmes majeurs qui entraînent de mauvaises performances. Les recommandations de Craig sur l'utilisation des caches, des CDN, la définition de la résolution d'image correcte, l'utilisation de la compression. Mais l'essentiel est de tester ce qui s'est passé, car il s'est avéré que beaucoup de gens pensent qu'ils utilisent le cache, mais environ 70% du contenu peut ne pas être mis en cache en raison de paramètres incorrects. Craig recommande de définir une référence de performances et de s'y tenir, de définir un objectif de performances à atteindre, de tester et d'optimiser les goulots d'étranglement. Outils de test test de page Web, google analytics, pagespeed, rapport sans rigueur. Le plus amusant pour moi a été les photos sur des sites dans une grande extension, alors que la taille ne me permet pas d'évaluer cela, donc une diminution de la résolution n'entraîne pas une détérioration de la qualité.

Je n'ai pas pu trouver les diapositives de Craig, mais voici un rapport sur le même sujet par l'un des employés de l'entreprise.

Entreprise risquée
Jeff Buzen


Quelques mots sur Jeff - il est professeur à Harvard, l'auteur de 3 livres, le premier a été publié en 71, et le dernier en 2015 - Repenser l'aléatoire: une nouvelle fondation pour la modélisation stochastique, article wiki , Entretien avec Jeff .

Rapport sur la modélisation et la prévision des performances. Jeff décrit les risques qui surviennent lors de la modélisation d'un système - risque de modèle, risque de paramètres de charge du système, risque de prévision, risque d'application, risque d'utilisation - au travail. Jeff décrit en détail tous les risques possibles qui surviennent lors de la modélisation du système et tente de prédire combien de ressources seront nécessaires et quel type de disponibilité du système est nécessaire. Options car il n'est pas nécessaire d'écrire SLA - 90% des requêtes sont exécutées en 0,5 seconde. Moins risqué - la longueur de la file d'attente est inférieure à 33x90% du temps. Son livre est à ce sujet. Les prévisions que nous utilisons à partir des mathématiques classiques ne donnent pas toujours les résultats applicables corrects, bien que les formules puissent être correctes. Les prévisions dépendent beaucoup des hypothèses du modèle. Il est préférable d'utiliser une prévision basée sur une analyse des alternatives (AoA, Analysis of Alternatives).

Je me suis assis et j'ai pensé - à quelle distance de mon expérience - oh, nous avons encore une marge de productivité en 2 fois, quoi? Comment l'avez-vous découvert? Eh bien, il y avait un pic et des files d'attente s'accumulaient déjà dans le système, prenons un serveur plus gros. Que dire Eh bien, quelles sont les lignes? Eh bien, avant de commencer à les utiliser, le système est tout simplement tombé. Voici une approche de planification des performances commençant par un modèle de système - une autre planète.

Comment tirer le meilleur parti de BigData?
Renato Bonomini, Stefano Doni, Moviri


Vient ensuite un atelier de Moviri . Moviri est une entreprise fondée par un professeur de l'Université Polytechnique de Milan, avec des bureaux à Milan et Boston, spécialisée dans l'analyse des performances et du débit. À quel point il est important non seulement de collecter un grand nombre de données, mais aussi d'en bénéficier. Stack Yarn, HDFS, Pig, Hive, Spark, Zookeeper, Cassandra, Cloudera, Kubernetes. Le rapport a montré combien il était devenu plus pratique de travailler avec des performances changeantes avec des systèmes fonctionnant dans des conteneurs.

Moviri m'a invité à mon bureau, dont j'ai profité, car environ un mois plus tard, je suis allé en Italie. C'était génial de rencontrer Stefano Doni et de se familiariser avec Luca Forni, de voir le bureau et de parler de tout ce qui concerne l'analyse des performances, en commençant par l'analyse des performances et en terminant avec les problèmes que les consultants rencontrent lorsqu'ils communiquent avec l'équipe du client.

Blog Moviri .

Performance ou capacité? Différentes approches pour différentes tâches
Alexander Gilgur, Facebook


Le rapport sera utile à ceux qui sont impliqués dans la prévision des performances et la planification de la bande passante. Alexander donne des exemples et des approches qui devraient être utilisés pour chacun des cas. En général, bien que les concepts de capacité et de performance soient proches, différentes méthodes devraient être utilisées pour les prévisions, en mettant l'accent sur le but ultime du travail. Pourquoi on fait ça? Nous voulons comprendre la quantité d'équipement dont nous avons besoin et la bande passante que nous voulons fournir ou nous voulons prédire les performances du système.

Ici vous pouvez lire l' article d'Alexandre .
Diapositives .

Comment commencer lorsque vous ne savez pas par où commencer.
Justin Martin, Cerner


Pourquoi en général il est nécessaire de faire un suivi des performances. Mais la vérité est! Beaucoup vivent sans surveillance et tout semble aller bien avec eux. En effet, beaucoup n'en ont pas besoin. Jusqu'à ce qu'ils publient un article sur leur merveilleux site sur le hub, et que les gens ne consultent pas ce qui s'y trouve. Ou jusqu'à ce que quelque chose d'autre ne mène pas à beaucoup, beaucoup d'utilisateurs.



Dans le rapport, Justin dit tout simplement ce qui peut être fait pour commencer. Gestion des capacités en 90 jours

Étapes

  1. Déterminez les heures de pointe pour votre système
  2. Examinez les limites de performances de votre projet (le moment où le système arrête déjà le traitement des demandes et les performances commencent à se dégrader)
  3. Réduisez les pertes de productivité
  4. Équilibrez le besoin - vous pouvez peut-être transférer certaines charges des heures de pointe aux heures moins occupées.



Linkedin Justin . Des diapositives peuvent être consultées dans l'article sur la conférence, que je publierai à la fin.

Équilibrage de charge dynamique et prestation de services continue dans une infrastructure Big Cloud
Yuri Ardulov, RingCentral


Yuri décrit la transition de RingCentral d'un monolithe, avec un code hérité vers des microservices. Les problèmes avec le code monolithique étaient qu'il était difficile de changer la configuration, il n'était pas possible de faire une livraison continue, des difficultés pour atteindre les indicateurs de disponibilité requis, il n'y avait aucun moyen de faire des tests A \ B, la possibilité d'appliquer de nouvelles fonctionnalités uniquement pour certains utilisateurs. Le système a été repensé et des conteneurs et des microservices ont été utilisés dans la nouvelle conception, il est devenu possible de redimensionner le système en ligne, la possibilité de changer la version du service sans changer la configuration. Dans l'architecture de microservice, une couche de routage d'application, une couche d'équilibrage, une couche de service (ne stocke pas l'état) ont été allouées. Après avoir apporté des modifications aux opérations, les équipes ont pu effectuer une livraison continue à la volée, la disponibilité du système est passée de 4 neuf à 99,998. Le temps nécessaire pour augmenter le système et déployer de nouveaux serveurs a été réduit à 4 heures.

Éviter les coûts, les retards et les échecs de publication avec Lifecycle Virtualization
Todd DeCapua, services de marque numérique CSC


Le rapport de Tod se concentre sur la façon de réduire les problèmes de version et l'idée clé est que lors du test d'un programme, il est important de prendre en compte l'ensemble du cycle de vie du programme.

4 composants clés:

  1. Utilisateurs - virtualisation des utilisateurs simulant le comportement de vos utilisateurs réels du système.
  2. Services - il doit y avoir une virtualisation des services afin que vous puissiez vérifier le fonctionnement de l'ensemble du processus du début à la fin.
  3. Réseau - émulation des conditions de fonctionnement du réseau.
  4. Data - virtualisation des données avec une vente afin de simuler les appels d'applications qui sont proches de ce qui se passera dans la réalité.

D'après mon expérience, un grand pourcentage d'erreurs pendant le déploiement est dû au fait que peu de personnes remplissent les 4 conditions, et le prod a toujours quelque chose que personne ne s'attendait à voir, et cela rompt la version. Il est très important d'utiliser différents cas d'utilisation avec les ventes en fonction des données et du comportement des utilisateurs.

Voici un exemple de la présentation de Tod:





Tod - Auteur d'un livre sur l'optimisation des performances, les tests de performances et leur interprétation.

Le livre explique à quel point la culture des tests de performance dans une organisation est importante, comment elle peut être introduite si personne ne le fait maintenant. Plusieurs exemples tirés de la pratique sont donnés avec une description de la tâche à laquelle l'équipe est confrontée, des options pour la résoudre, l'approche choisie par l'équipe et les conséquences dans le système réel. À mon avis, ces histoires parlent souvent de la difficulté de prédire le comportement de l'utilisateur final et de l'importance de créer un petit groupe de discussion à partir d'un nombre limité d'utilisateurs et de voir comment vos prévisions correspondent au comportement du groupe de discussion.

Implémentation de DevOps basés sur des métriques: pourquoi et comment!
Andreas Grabner, Dynatrace


Rapport d'Andreas Grabner sur les pratiques DevOps dans différentes entreprises et pourquoi le court time2market est important. Andreas a utilisé une métaphore très intéressante sur la photographie. Beaucoup de gens se souviennent des photos de films - vous prenez une photo, allez développer, imprimez et voyez qu'elle est infructueuse, mais vous n'avez aucun moyen de reprendre la photo, car vous êtes déjà au mauvais moment.

Maintenant, tout est différent - vous prenez une photo, la postez sur Instagram et obtenez immédiatement des commentaires et vous pouvez terminer quelque chose de ce que vos abonnés demandent. Vous êtes toujours dans le moment et obtenez une réaction en temps réel.

Maintenant, revenons au logiciel - comme c'était le cas auparavant - de nouvelles fonctionnalités logicielles ont été planifiées, mises en œuvre, testées et réalisées, par exemple, 1 version par an. Et ils ont compris que la fonctionnalité qui dépensait beaucoup d'argent et d'efforts était nécessaire à deux utilisateurs sur des millions. Cela vous est-il arrivé?

Comment ça va maintenant? Agile et la possibilité de publier des versions au moins tous les jours, comme le fait Facebook, est la capacité d'évaluer immédiatement à quel point cette fonctionnalité est demandée par les utilisateurs, si elle doit être pondérée avec des riffs, ou mieux la jeter immédiatement et ne pas perdre de temps et d'énergie.

Je recommande fortement le rapport à une entreprise qui essaie d'expliquer à son équipe pourquoi elle a besoin de Scrum et Agile! Maintenant, de nombreuses entreprises éponge avec des versions 3 fois par an essaient de devenir plus rapides, plus minces et plus fortes.



En général, le rapport n'est pas à ce sujet, mais sur la façon de construire des pratiques DevOps, faire des versions est souvent et bien. Oui, ça arrive. Il est important d'utiliser des métriques et de surveiller la situation avec l'application, la charge, faire le bon déploiement sur le processus. Andreas est un défenseur de la performance et il a pas mal de rapports utiles sur ce sujet avec des diapositives inhabituelles et accrocheuses.
Voici un rapport d'Andreas avec des diapositives légèrement différentes.

Tests de performances dans de nouveaux contextes
Eric Proegler, Soasta


Au début de la conférence, Eric a décrit rétrospectivement comment l'architecture des systèmes a changé depuis 2000, comment la transition vers le cloud a changé ou aurait dû changer, et comment les systèmes sont conçus avec la possibilité d'évoluer dans le cloud. Eric donne un exemple de pratique lorsque l'une des sociétés de télévision a lancé le vote dans une application mobile et juste pendant l'émission, lorsque les utilisateurs devaient voter, le système ne pouvait pas supporter la charge et était inaccessible. Avec la culture des startups, il est difficile de prédire combien d'utilisateurs seront, peut-être 20 000 étaient prévus, et l'application atteindra rapidement 50 000. Il existe de nombreuses applications pour tester les performances dans le cloud BlazeMeter (Jmeter), Selenium, Gatling, Grinder. Ils sont gratuits, mais visualiser les résultats n'est pas très pratique.Par conséquent, il est recommandé d'utiliser un autre outil de visualisation (Tableau) ou d'utiliser votre propre base de données afin d'analyser ultérieurement ce qui s'est passé. Lors du test d'applications Web, il est important de s'assurer que les utilisateurs de test entrants sont géo-distribués. Il est conseillé de faire de petits tests de performance pour chaque assemblage et de les comparer avec les résultats de base.

Les diapositives d' Eric peuvent être consultées sur SlideShare.

Eric est l'auteur du blog .

Outre les rapports présentés à la conférence, plusieurs discussions ont également été organisées sous la forme d'une «table ronde». Plusieurs experts ont condamné le sujet sous la forme d'un dialogue actif et animé avec le public. À mon avis, c'est un format très intéressant, car les participants à la conférence pouvaient partager leur expérience souvent impressionnante, et il était possible de venir discuter avec chaque expert et participant, en discutant de questions d'intérêt.

Conversations hors sujet et dans les coulisses


Une partie spéciale de mes impressions sur la conférence est la communication informelle avec les conférenciers et les participants. Grâce au format des discussions, dîners, tables rondes et réceptions, vous pouvez rencontrer des gens du monde entier de différentes entreprises et échanger des expériences. Beaucoup de communication à l'intérieur de la conférence. Les gens sont très ouverts et désireux de partager leurs expériences.

Je voudrais également mentionner Debbie Sheetz. Debbie a travaillé chez BMC et a commencé son analyse des performances sur les ordinateurs centraux. Elle est ensuite passée aux systèmes distribués. Son expérience en matière de surveillance est vaste et très intéressante.

J'ai également eu la chance de discuter avec Anush Najarian de MathWorks, dont l'expérience mérite également l'attention.

Malheureusement, le nombre de rapports ne permet pas de les visiter tous, et les rapports ne sont pas conservés, c'est-à-dire qu'il n'y a aucun moyen de les consulter à la maison. Les organisateurs utilisent les articles pour sélectionner les orateurs, et ces articles sont ensuite transmis aux participants à la conférence, mais il n'y a pas de matériel des orateurs invités dans la collection.

Voici l'article d'Anush sur la conférence .

L'impact de la GCM est une conférence très utile et intéressante avec une formidable atmosphère de partage d'expériences, à laquelle je recommande d'assister.

Source: https://habr.com/ru/post/fr412767/


All Articles