Build2019, comprendre ce que nous avons vu

La semaine dernière, la plus grande conférence des développeurs Microsoft Build2019 a eu lieu . Après y être allé, j'ai poursuivi 2 buts.

  • Le premier objectif est de comprendre où Microsoft va en termes de développement et quelles technologies et approches il promeut.
  • Le deuxième objectif est de comprendre l'état de la communauté autour de Microsoft. Build - une conférence publique - donne une meilleure idée de cela que les conférences internes de Microsoft pour ses employés. Lors d'un événement public, vous pouvez tirer des conclusions même sur le nombre de personnes qui sont venues à la session.

Pour ma part, j'ai identifié plusieurs sujets clés sur lesquels je souhaite partager mes réflexions:

  • Feuille de route du .Net Framework
  • Kubernetes
  • Sans serveur
  • Informatique de bord
  • Big Data, apprentissage automatique, intelligence artificielle
  • Plateforme de présentation Windows

Feuille de route du .Net Framework


À Build2019, il y avait un rapport par la vue d'ensemble et la feuille de route de la plateforme .NET . Je recommande fortement de regarder et de lire Présentation de .NET 5 , C # 8 et un rapport séparé sur C # 8 - L'avenir de C #

image

  • Mes observations depuis l'annonce de .net core 3.0 sont les suivantes: la création de standards .net core / .net était très correcte, mais dans .net, comme dans d'autres plateformes, beaucoup de code a été accumulé qui ne peut pas être pris et transféré comme ça. Et, par conséquent, vous devez apporter des chignons .net core / standard aux anciens projets avec un minimum de modifications. WinForms / WPF a été pris pour opensource, la prochaine version sera déjà avec la norme .net sous le capot, et vous pouvez oublier l'ancienne structure des fichiers csproj et obtenir beaucoup plus de bonus. Les choses sont certainement correctes, mais elles sont également dues au fait que l'héritage doit également être pris en charge.
  • Il est bon que pour les plates-formes mobiles, UWP ne soit plus mémorisé, et seuls les développeurs Xamarin pour C # restent.
  • Sur le stand de l'équipe .Net Core, j'ai posé la question: «Et quels changements importants prévoyez-vous de faire dans .Net 6-7-8? Et aurez-vous une raison d'augmenter la version majeure du produit chaque année? » Surtout j'ai aimé la partie de la réponse que j'ai traduite, j'ai compris à quel point «c'est bien la vision, et comment ce sera la prochaine, on verra. „
  • J'avais des pensées similaires à propos de C # 8, ainsi qu'à propos de toutes les versions après async / wait, ce qui a vraiment changé le style de programmation en C #. Et tout le reste, bien sûr, était amusant et ajoutait du sucre syntaxique, mais l'arrière-plan Async / Await semblait plutôt fané. Mais le code ressemble de moins en moins au C # classique. Que diriez-vous d'un tel code, donc en 2012

Mais ce que je n'ai pas aimé dans cette session, ce sont les tentatives persistantes de souligner une fois de plus à tous les développeurs .net / C # la nécessité de connaître, comprendre et utiliser le Machine Learning, les services cognitifs , etc. au quotidien.

Bien sûr, un développeur intelligent doit comprendre ces choses, étudier et pratiquer, si possible. Mais, dans 99% des cas, cela n'est pas requis dans le projet, et une telle évangélisation persistante, franchement, commence à déranger.

Pour être honnête, je ne crois pas vraiment en l'avenir de projets comme Spark.Net, qui ont été discutés lors de cette session. L'expérience nous rappelle que des tentatives similaires d'écrire des enveloppes en C # ou de porter complètement un projet de données en C # au cours des 10 dernières années se sont généralement soldées par rien, car la communauté est plus petite et le langage n'est pas si difficile à changer.

Après Build2019, il a été annoncé que le .Net Framework 4.8 est la dernière version majeure du .Net Framework et qu'il n'y aura que des changements mineurs. Dans l'ensemble, il est temps pour .Net Core.

Service Fabric vs Kubernetes


3 ans chez Microsoft, et pendant presque six mois chez EPAM, je ne peux pas vous expliquer pourquoi vous avez besoin de Service Fabric (et vous ne travaillez pas en même temps chez Microsoft), s'il y a Kubernetes.

  • Pendant longtemps, les «interprètes» ont dit que ce sont des plateformes égales, mais ce n'est pas le cas (google elementary).
  • Ensuite, il a été question que SF est plus mature pour le développement Windows et Kubernetes pour Linux.
  • Eh bien, en même temps, disent-ils, chez SF, vos développeurs pourront utiliser leurs compétences dans l'environnement Windows, et dans K8, vous devez apprendre Linux et réapprendre. Je suis d'accord, le code hérité et la nécessité de réapprendre-réapprendre est un argument sérieux, mais d'un autre côté, SF était assez compliqué, et à mon avis, ce n'est pas plus facile que les K8. Eh bien, d'une part, Linux doit être étudié et connu de toute façon. Même au «parc éolien» ossifié (que je suis aussi). D'un autre côté, Kubernetes en résume beaucoup.

Chez Build2019, je me suis arrêté pour SF, car il y avait 1 rapport à ce sujet (bien que le titre soit sur Mission Critical ***) .

Et selon Kubernetes pièces 20-30 dans toutes les sections. Je ne donnerai que la partie que j'ai recommandé de voir dans mon projet.


Devops


À mon avis, Microsoft s'est rendu et a accepté la réalité - la communauté .net, en fait, n'a pas accepté le Service Fabric. Mais Kubernetes est devenu en fait la norme même pour le monde .net, avec lequel je vous félicite, moi et moi.

ServeurMoins de tout le monde


Pourtant, beaucoup est dit sur l'informatique ServerLess. Mais, si auparavant seules les fonctions Azure et les applications logiques étaient enveloppées dans cette sauce, maintenant même Azure SQL Database ServerLess s'est accroché (quand j'ai vu l'annonce, j'ai été très surpris parce que quelque chose n'allait pas, et ServerLess SQL semble intéressant).

D'autre part, Serverless peut être lancé non seulement dans Azure, mais aussi localement dans le conteneur. Ainsi, Serverless devient plus compréhensible et moins magique (les ingénieurs n'aiment généralement pas la magie, car ils ne comprennent pas comment cela fonctionne ... et si cela ne fonctionne pas, alors comment réparer la magie).

SQL ServerLess


L'essence de SQL Serverless est que vous pouvez spécifier les limites inférieure et supérieure des ressources consommées et que vous paierez à la limite inférieure, plus ce que vous consommez entre les limites inférieure et supérieure. Une fonctionnalité mineure que vous pouvez suspendre SQL (et ne pas payer pour les ressources de calcul) si la base de données n'est pas utilisée (vous pouvez suspendre pendant 6 heures maintenant), je ne la considérerais pas, car de sorte qu'il n'y aurait pas une seule demande à la base de données pendant quelques heures - c'est une situation très étrange, car il y a au moins une surveillance, et la base démarrera (comme promis) dans 30 à 60 secondes, ce qui est également important.

image

Subscription Edge ou Cloud Computing dans plus de Microsoft Data Center


  • Il était une fois, en 2008-2010, Microsoft a dit quelque chose comme ceci: "ici vous avez notre service Cloud magique, réécrivez vos applications pour eux (Web / Worker Role) et vous aurez du bonheur". Le bonheur n'a pas fonctionné, car L'héritage a tout gâché.
  • Ensuite, les machines virtuelles sont apparues, mais maintenant cela n'a plus d'importance.
  • Puis, quand il est devenu clair que même maintenant, peu de personnes peuvent passer complètement au Cloud, vous devez encore créer des solutions hybrides. Au début, cela signifiait VPN pour Azure. Puis vint Azure Stack (un complexe matériel-logiciel similaire à Azure dans l'API et pourrait contenir la charge de production dessus si le régulateur n'autorise pas la publication sur le cloud public, et garder le développement / test avec des données anonymisées sur le cloud public)
  • Ensuite, toutes sortes de solutions IoT sont devenues à la mode et populaires (pour Microsoft et d'autres grands acteurs ... la télémétrie a été écrite pendant longtemps). Au début, dans le scénario de l'usine connectée (usine / chaîne de montage), ils ont suggéré d'utiliser des solutions d'Azure Cloud, mais l'industrie a expliqué que la latence entre leur usine pourrait être beaucoup plus élevée que celle autorisée et l'arrêt de la chaîne de montage en raison du «clignotement» d'Internet n'est pas viable la décision.
  • En conséquence, est apparu pour la première fois Azure IoT Edge, qui, bien qu'il ait été téléchargé à partir d'Azure, mais fonctionnait et traitait des données sur votre matériel (vous aviez besoin d'un hôte compatible Docker, qui au moins parfois connecté à Internet), mais au début, il avait un ensemble de fonctionnalités très modeste. Une bonne discussion sur ce sujet était Azure IoT Edge & AI: Activation d'Intelligent Edge
  • Puis, lorsque IoT Edge s'est avéré utile (pour les consommateurs et pour Microsoft Finance), des services qui étaient auparavant considérés comme Cloud Only ont commencé à apparaître comme des champignons. Par exemple, Cognitive Services est arrivé à Edge. Le contrôle visuel de la qualité des produits sur une chaîne de montage ou un convoyeur est beaucoup plus facile à réaliser à partir d'un conteneur Docker local que d'assembler la latence à Azure Data Center.
  • Mais à Build2019, beaucoup de ces services sont devenus publics ou sont apparus en tant qu'aperçu (j'aime les services vocaux pour la synthèse vocale, surtout de l'aperçu. Il manquait beaucoup sur les appareils sans accès Internet constant).
  • Dans le même temps, il a été montré, annoncé par SQL Server, it Edge ( Simplify Edge Architecture with Azure SQL Database Edge ).

    Non, SQL 2017 fonctionne depuis longtemps sur Linux dans Docker, mais il nécessite 3,5 Go de mémoire. Cette version est également optimisée pour la mémoire (500 Mo <et fonctionne sur les processeurs ARM), pour les périphériques Edge (il y a généralement peu de mémoire sur eux). Et en même temps, il y a le travail de streaming et d'analyse de séries temporelles intégrées, ce qui semble très intéressant.
  • De plus, le matériel basé sur Azure Sphere pour les solutions IoT sécurisées a été lancé.
  • Ils ont montré l'équipement de calcul Azure Edge , ce qui ne laisse aucun doute que le sujet est étroitement surveillé.
    C'est vrai, j'ai plus aimé la migration des données vers Azure car Semble plus solide.


Big Data, apprentissage automatique, intelligence artificielle


Dans ces domaines, j'écrirai du point de vue d'un ancien développeur (bien qu'il n'y ait pas d'anciens développeurs), et non d'un expert en données.

Très souvent, j'ai rencontré la position «intéressante» de certains clients selon laquelle l'IaaS devrait être fait dans Aws, PaaS dans Azure et Data dans GCP. On ne peut que convenir qu'historiquement chacun des prestataires s'est spécialisé dans quelque chose, mais maintenant, si vous le regardez en grande quantité, dans de nombreux services, la parité a été atteinte (la différence de nuances, bien sûr, demeure). L'intégration de solutions entre différents fournisseurs de Cloud est, bien sûr, un travail intéressant et une mine d'or, mais en règle générale, elle est extrêmement inefficace pour le client lui-même (vous devez toujours payer pour le trafic sortant, mais il y a aussi la latence et la complexité / complexité de la solution).

Du point de vue du nouvel argent, la direction la plus prometteuse pour Microsoft / Azure dans un avenir proche est de travailler avec les données - «bonjour» Spark / Hadoop / Kafka, Data Lakes et bien d'autres services intéressants, mais en même temps avec des sujets d'actualité (quelqu'un n'aime pas sur le battage publicitaire pour faire des ventes) comme l'intelligence artificielle (Ils nous montrent encore Cortana, encore une fois ils nous montrent des voitures intelligentes). Le nombre d'annonces, et surtout de cas (parfois synthétiques, et parfois même montrant un client satisfait) sur l'utilisation des services Big Data dans Azure lors de la conférence était juste hors échelle. Selon AI seule, il y a 37 sessions (il y en a 171 pour l'ensemble de Build2019, si l'on soustrait les rapports de couloir de 15 minutes et les sessions de programmation pour les étudiants.). Il y avait même des rapports DevOps pour le Big Data, la plateforme Windows AI et l'IA pour PowerBI. La plupart de ces technologies sont open source, elles sont toutes axées sur la communauté et sont présentes dans les 3 grands fournisseurs. Il y a quelques années, je l'avoue, je ne me souviens pas d'une approche aussi active des services de données.

Plateforme de présentation Windows


L'une des sessions que je voudrais mentionner est la session Windows Presentation Platform (WPP). Pour être honnête, j'ai pensé par inadvertance qu'il s'agissait de Windows Presentation Foundation (WPF), mais j'ai été agréablement surpris que le sujet soit plus large que prévu.

Une fois de retour en 2009, lorsque WPF venait d'être lancé, le sujet était populaire: héberger des contrôles WinForms dans des applications WPF, ou vice versa - essayer d'insérer des contrôles WPF dans WinForms. Tout cela à partir de ce qu'il était souvent impossible de prendre et de retourner les énormes morceaux de l'application sur le nouveau cadre. Dans les premières versions, ces fonctionnalités n'étaient pas annoncées, mais quand il est devenu évident que la rétrocompatibilité devait être supprimée, elles ont commencé à promouvoir activement.

Ainsi, en 2019, nous discutons de la façon d'héberger les contrôles U WP dans WPF (îles XAML) , et comment découpler les composants d'interface utilisateur et le système d'exploitation dans WinUI 3.0 (c'est-à-dire fournir des contrôles / compilateur / runtime en tant que packages de nuget et ne pas attendre Windows Update .) L'idée est excellente, mais il était nécessaire de le faire dans la toute première version de UWP, car à ce moment-là l'équipe Entity Framework avait supprimé EF du .net Framework il y a plusieurs années pour arrêter de dépendre des mises à jour Windows. Et ce qui est devenu .Net Core était en cours de développement.



Et surtout, il sera disponible non seulement pour les dernières versions de Windows 10, mais aussi assez ancien, mais toujours pertinent.


Une grande salle était réservée pour la session, mais il y avait suffisamment d'espace libre dans la salle (le développement pour Windows est enterré depuis environ 10 ans), mais ce n'est pas la question. Il y avait très peu de jeunes dans la salle (je le compare à une session sur Asp.Net Core ou, surtout, Machine Learning). Ce ne sont que mes observations subjectives; je ne traite pas du développement funéraire pour Windows.

Écosystème Microsoft pour les développeurs


En tant qu'ingénieur de terrain chez Microsoft, je n'ai officiellement soutenu que ce que Microsoft lui-même a fait. De cette approche, la connaissance de tout le reste s'atrophie. Maintenant que j'ai quitté Microsoft et que je suis devenu architecte de solutions, il est devenu essentiel de combler cette lacune. Et à Build, il y avait toute une exposition de solutions pour les partenaires de développement et les développeurs, où vous pouviez aller sur n'importe quel stand et poser des questions, demander une démo. J'ai gagné des semaines en visitant ces stands.

  • Vous pouvez toujours utiliser SonarQube pour gérer la dette technique (qualité du code, pas l'architecture bien sûr)
  • Il existe des solutions DevOps spécialisées sur Kubertenes qui sont beaucoup plus faciles à utiliser que Azure DevOps
  • Il existe des solutions intéressantes comme Aqua (aquasec) / Snyk pour auditer le contenu des images de docker et des conteneurs déjà en cours d'exécution.
  • Il existe des solutions intéressantes pour la surveillance et le suivi des applications distribuées qui présentent des avantages par rapport au banal ELK ou Azure Monitor (Application Insights + Log Analytics) comme Signalfx
  • Je suis déjà silencieux sur R # et l'environnement de développement sur .net de Jetbrains (je me suis souvenu de R # mais je ne l'ai pas utilisé, parce que j'ai écrit un peu et donc je n'ai pas beaucoup entendu parler de l'environnement de développement).
  • Il était plein de toutes sortes de solutions basées sur AI / ML / Data, etc., mais je n'y suis pas allé beaucoup, car Je n'ai aucune expérience pratique des solutions industrielles Big Data et je ne pourrai pas en évaluer les bénéfices.



Annonces


Pour être honnête, personnellement, les annonces de cette année ( ici et ici ) ne m'ont pas blessé, et je ne m'en souvenais pas particulièrement. Sur les ordinateurs quantiques, il est bon de faire du battage médiatique, mais il est imperceptible que ce soit la technologie d'aujourd'hui. Et on ne se souvenait de rien d'autre.


Postface


En vérité, je m'attendais à plus de représentants des industries non industrielles, comme Microsoft déclare depuis longtemps qu'il cherche à aider l'entreprise dans ses projets, et non itshnikami. Oui, bien sûr, il y avait des rapports avec Airbus , BMW ... mais je m'attendais à plus.

Office365 n'est pas mon sujet, j'ai donc décidé de ne même pas considérer ce problème.

Tout ce qui précède est mon opinion personnelle, basée sur mes observations et mon expérience précédente. Je ne prétends pas être objectif. Vous pouvez discuter de n'importe quelle thèse.

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


All Articles