Build2019, um zu verstehen, was wir gesehen haben

Erst letzte Woche fand die größte Microsoft Build2019- Entwicklerkonferenz statt . Nachdem ich dorthin gegangen war, verfolgte ich zwei Ziele.

  • Das erste Ziel besteht darin, zu verstehen, wohin Microsoft in Bezug auf die Entwicklung geht und welche Technologien und Ansätze es fördert.
  • Das zweite Ziel ist es, den Status der Community rund um Microsoft zu verstehen. Build - eine öffentliche Konferenz - bietet eine bessere Vorstellung davon als interne Microsoft-Konferenzen für seine Mitarbeiter. Bei einer öffentlichen Veranstaltung können Sie sogar Schlussfolgerungen über die Anzahl der Personen ziehen, die zur Sitzung gekommen sind.

Für mich selbst habe ich mehrere Schlüsselthemen identifiziert, zu denen ich meine Gedanken teilen möchte:

  • .Net Framework Roadmap
  • Kubernetes
  • Serverlos
  • Edge-Computing
  • Big Data, maschinelles Lernen, künstliche Intelligenz
  • Windows Presentation Platform

.Net Framework Roadmap


Bei Build2019 gab es einen Bericht der .NET-Plattformübersicht und der Roadmap . Ich empfehle dringend, die Einführung in .NET 5 , C # 8 und einen separaten Bericht über C # 8 - Die Zukunft von C # anzusehen und zu lesen.

Bild

  • Meine Beobachtungen seit der Ankündigung von .net Core 3.0 lauten wie folgt: Die Erstellung von .net Core / .net-Standards war sehr korrekt, aber in .net wurde wie auf anderen Plattformen viel Code angesammelt, der nicht so genommen und übertragen werden kann. Daher müssen Sie .net Core / Standard-Brötchen mit minimalen Änderungen in alte Projekte integrieren. WinForms / WPF wurde zu OpenSource gebracht, die nächste Version wird bereits mit .net-Standard unter der Haube sein, und Sie können die alte Struktur von csproj-Dateien vergessen und viele weitere Boni erhalten. Die Dinge sind sicherlich richtig, aber sie werden auch dadurch verursacht, dass das Erbe ebenfalls unterstützt werden muss.
  • Es ist gut, dass für mobile Plattformen UWP nicht mehr gespeichert wird und nur Xamarin für C # -Entwickler übrig bleibt.
  • Am Stand des .Net Core-Teams stellte ich die Frage: „Und welche großen Änderungen planen Sie in .Net 6-7-8? Und haben Sie einen Grund, die Hauptversion des Produkts jedes Jahr zu erhöhen? “ Am meisten hat mir der Teil der Antwort gefallen, den ich übersetzt habe. Ich habe verstanden, wie gut das Vision ist und wie es als nächstes sein wird, werden wir sehen. „„
  • Ich hatte ähnliche Gedanken über C # 8 sowie über alle Releases nach async / await, was den Programmierstil in C # wirklich verändert hat. Und alles andere hat natürlich Spaß gemacht und syntaktischen Zucker hinzugefügt, aber der Async / Await-Hintergrund sah ziemlich verblasst aus. Aber der Code wird immer weniger wie klassisches C #. Was würden Sie zu einem solchen Code sagen, also 2012

Was mir an dieser Sitzung jedoch nicht gefallen hat, waren die anhaltenden Versuche, allen .net / C # -Entwicklern erneut die Notwendigkeit hervorzuheben, maschinelles Lernen, kognitive Dienste usw. täglich zu kennen, zu verstehen und zu nutzen .

Natürlich sollte ein intelligenter Entwickler solche Dinge verstehen, studieren und üben, wenn möglich. In 99% der Fälle ist dies im Projekt jedoch nicht erforderlich, und eine solche anhaltende Evangelisation beginnt offen gesagt zu stören.

Um ehrlich zu sein, glaube ich nicht wirklich an die Zukunft von Projekten wie Spark.Net, die in dieser Sitzung diskutiert wurden. Die Erfahrung erinnert uns daran, dass ähnliche Versuche, Wrapper in C # zu schreiben oder ein Datenprojekt in den letzten 10 Jahren vollständig nach C # zu portieren, normalerweise mit nichts endeten, da die Community kleiner ist und die Sprache nicht so schwer zu ändern ist.

Nach Build2019 wurde angekündigt, dass das .Net Framework 4.8 die neueste Hauptversion des .Net Framework ist und es nur geringfügige Änderungen geben wird. Alles in allem ist es Zeit für .Net Core.

Service Fabric gegen Kubernetes


3 Jahre bei Microsoft und fast ein halbes Jahr bei EPAM Ich kann keine normale technische Erklärung dafür geben, warum Sie Service Fabric benötigen (und gleichzeitig nicht bei Microsoft arbeiten), wenn es Kubernetes gibt.

  • Lange Zeit sagten die "Dolmetscher", dass dies gleiche Plattformen seien, aber das ist nicht so (Google Elementary).
  • Dann war die Rede davon, dass SF für die Windows-Entwicklung und Kubernetes für Linux ausgereifter ist.
  • Gleichzeitig können Ihre Entwickler bei SF ihre Fähigkeiten in der Windows-Umgebung einsetzen, und in K8s müssen Sie Linux lernen und neu lernen. Ich stimme zu, Legacy-Code und die Notwendigkeit des Neulernens sind ein ernstes Argument, aber andererseits war SF ziemlich kompliziert und meiner Meinung nach nicht einfacher als K8s. Einerseits muss Linux sowieso studiert und bekannt sein. Sogar zum verknöcherten „Windpark“ (der ich auch bin). Auf der anderen Seite abstrahiert Kubernetes ziemlich viel davon.

Bei Build2019 habe ich mir für SF ein Ende gesetzt, weil Es gab 1 Bericht darüber (obwohl der Titel über Mission Critical *** war) .

Und laut Kubernetes Stücke 20-30 in allen Abschnitten. Ich werde nur den Teil geben, den ich in meinem Projekt empfohlen habe.


Devops


Meiner Meinung nach hat Microsoft die Realität aufgegeben und akzeptiert - die .net-Community hat das Service Fabric tatsächlich nicht akzeptiert. Aber Kubernetes ist sogar für die .net-Welt zum Standard geworden, zu dem ich Ihnen und mir gratuliere.

ServerLess für alle


Trotzdem wird viel über ServerLess Computing gesagt. Wenn früher nur Azure-Funktionen und Logik-Apps in diese Sauce eingewickelt wurden, hat sich jetzt sogar die Azure SQL-Datenbank ServerLess angeschlossen (als ich die Ankündigung sah, war ich sehr überrascht, weil etwas nicht stimmte und ServerLess SQL interessant klingt).

Andererseits kann Serverless nicht nur in Azure, sondern auch lokal im Container gestartet werden. Auf diese Weise wird Serverless verständlicher und weniger magisch (Ingenieure mögen Magie normalerweise nicht, weil sie nicht verstehen, wie es funktioniert ... und wenn es nicht funktioniert, wie man die Magie repariert).

SQL ServerLess


Das Wesentliche von SQL Serverless ist, dass Sie die Unter- und Obergrenze der verbrauchten Ressourcen angeben können und an der Untergrenze sowie den Verbrauch zwischen der Unter- und Obergrenze zahlen. Eine kleine Funktion, mit der Sie SQL anhalten können (und nicht für Rechenressourcen bezahlen können), wenn die Datenbank nicht verwendet wird (Sie können jetzt 6 Stunden pausieren), würde ich nicht in Betracht ziehen, weil Damit es für ein paar Stunden überhaupt keine einzige Anforderung an die Datenbank gibt - dies ist eine sehr seltsame Situation, da zumindest eine Überwachung erfolgt und die Basis (wie versprochen) in 30-60 Sekunden startet, was ebenfalls wichtig ist.

Bild

Subscription Edge oder Cloud Computing in mehr als Microsoft Data Center


  • Es war einmal, in den Jahren 2008-2010, als Microsoft Folgendes sagte: „Hier haben Sie unseren magischen Cloud-Service, schreiben Ihre Anwendungen für sie neu (Web- / Worker-Rolle) und Sie werden glücklich sein.“ Glück hat nicht funktioniert, weil Das Erbe hat alles verdorben.
  • Dann erschienen virtuelle Maschinen, aber jetzt spielt es keine Rolle mehr.
  • Als dann klar wurde, dass selbst jetzt nur wenige Menschen vollständig auf die Cloud umsteigen können, müssen Sie noch Hybridlösungen entwickeln. Zu Beginn bedeutete dies VPN zu Azure. Dann kam der Azure-Stapel (ein Hardware-Software-Komplex, der Azure in der API ähnelt und die Produktionslast darauf halten könnte, wenn der Regulierer das Veröffentlichen in der Public Cloud nicht zulässt und Entwickler / Test mit anonymisierten Daten in der Public Cloud aufbewahrt).
  • Dann wurden alle Arten von IoT-Lösungen in Mode und beliebt (für Microsoft und andere große Unternehmen ... Telemetrie wurde lange Zeit geschrieben). Im Szenario der Connected Factory (Factory / Assembly Line) schlugen sie zunächst die Verwendung von Lösungen aus Azure Cloud vor. Die Branche erklärte jedoch, dass die Latenz zwischen ihrer Factory viel höher sein könnte als die zulässige und das Anhalten der Assembly Line aufgrund des „blinkenden“ Internets nicht möglich ist die Entscheidung.
  • Als Ergebnis erschien zuerst Azure IoT Edge, das zwar von Azure heruntergeladen wurde, jedoch Daten auf Ihrer Hardware bearbeitete und verarbeitete (Sie benötigten einen Docker-kompatiblen Host, der zumindest manchmal mit dem Internet verbunden war), aber zunächst nur sehr bescheidene Funktionen aufwies. Ein guter Vortrag zu diesem Thema war Azure IoT Edge & AI: Aktivieren des intelligenten Edge
  • Als sich IoT Edge als nützlich erwies (für Verbraucher und für Microsoft-Finanzen), erschienen Dienste, die zuvor als Cloud Only galten, wie Pilze. Zum Beispiel kamen Cognitive Services zu Edge. Die visuelle Qualitätskontrolle von Produkten auf einer Montagelinie oder einem Förderband ist von einem lokalen Docker-Container aus viel einfacher als die Latenz für das Azure-Rechenzentrum.
  • Bei Build2019 gingen viele dieser Dienste an die Öffentlichkeit oder wurden als Vorschau angezeigt (ich mag Sprachdienste für die Sprachsynthese am meisten aus der Vorschau. Auf Geräten ohne ständigen Internetzugang fehlte dies sehr).
  • Gleichzeitig wurde es von SQL Server als Edge ( Simplify Edge Architecture mit Azure SQL Database Edge ) angezeigt.

    Nein, SQL 2017 läuft seit langem unter Linux in Docker, benötigt jedoch 3,5 GB Arbeitsspeicher. Diese Version ist auch für den Speicher (500 MB <und läuft auf ARM-Prozessoren) und für Edge-Geräte optimiert (normalerweise ist nur wenig Speicher vorhanden). Gleichzeitig gibt es die Arbeit von Built-In Time-Series Streaming and Analytics, die sehr interessant klingt.
  • Darüber hinaus wurde Azure Sphere- basierte Hardware für Secured IoT-Lösungen eingeführt.
  • Sie zeigten Azure Edge-Computerausrüstung , was keinen Zweifel daran lässt, dass das Thema genau überwacht wird.
    True Box, ich mochte die Datenmigration nach Azure mehr, weil Sieht solider aus.


Big Data, maschinelles Lernen, künstliche Intelligenz


In diesen Bereichen werde ich aus der Perspektive eines ehemaligen Entwicklers (obwohl es keine ehemaligen Entwickler gibt) und nicht eines Datenexperten schreiben.

Sehr oft traf ich die „interessante“ Position einiger Kunden, dass IaaS in Aws, PaaS in Azure und Data in GCP durchgeführt werden sollte. Man kann nur zustimmen, dass sich historisch gesehen jeder der Anbieter auf etwas spezialisiert hat, aber jetzt, wenn man es in großen Mengen betrachtet, wurde bei vielen Diensten eine Parität erreicht (der Unterschied in den Nuancen bleibt natürlich bestehen). Die Integration von Lösungen zwischen verschiedenen Cloud-Anbietern ist natürlich eine interessante Aufgabe und eine Goldmine, aber in der Regel ist sie für den Kunden selbst äußerst ineffizient (Sie müssen immer für ausgehenden Datenverkehr bezahlen, aber es gibt auch Latenz und Komplexität / Komplexität der Lösung).

Die wahrscheinlich vielversprechendste Richtung für Microsoft / Azure in naher Zukunft aus Sicht des neuen Geldes ist die Arbeit mit Daten - „Hallo“ Spark / Hadoop / Kafka, Data Lakes und viele weitere interessante Dienste, aber gleichzeitig mit heißen Themen (jemand mag das nicht auf Hype um Verkäufe zu machen) wie Künstliche Intelligenz (Sie zeigen uns wieder Cortana, wieder zeigen sie uns intelligente Autos). Die Anzahl der Ankündigungen und vor allem der Fälle (manchmal synthetisch und manchmal sogar eines zufriedenen Kunden) zur Nutzung von Big Data-Diensten in Azure auf der Konferenz war nur unzureichend. Allein laut AI gibt es 37 Sitzungen (davon 171 für den gesamten Build2019, wenn wir 15-minütige Korridorberichte und Programmiersitzungen für Studenten abziehen). Es gab sogar DevOps-Berichte für Big Data, Windows AI-Plattform und AI für PowerBI. Die meisten dieser Technologien sind Open Source, sie sind alle Community-orientiert und in allen drei großen Anbietern vorhanden. Ich gebe zu, dass ich mich vor ein paar Jahren nicht an einen so aktiven Ansatz für Datendienste erinnere.

Windows Presentation Platform


Eine der Sitzungen, die ich erwähnen möchte, ist die WPP-Sitzung (Windows Presentation Platform). Um ehrlich zu sein, habe ich versehentlich gedacht, dass es sich um die Windows Presentation Foundation (WPF) handelt, aber ich war angenehm überrascht, dass das Thema umfassender war als erwartet.

Irgendwann im Jahr 2009, als WPF gerade erschien, war das Thema beliebt: Hosten von WinForms-Steuerelementen in WPF-Anwendungen oder umgekehrt - Versuch, WPF-Steuerelemente in WinForms einzufügen. Es war alles von dem, was es oft unmöglich war, die riesigen Teile der Anwendung auf das neue Framework zu übertragen. In den ersten Versionen wurden solche Funktionen nicht beworben, aber als sich herausstellte, dass die Abwärtskompatibilität verbessert werden musste, begannen sie aktiv zu werben.

Daher diskutieren wir 2019, wie U WP-Steuerelemente in WPF (XAML-Inseln) gehostet werden und wie UI-Komponenten und das Betriebssystem in WinUI 3.0 entkoppelt werden (d. H. Steuerelemente / Compiler / Laufzeit als Nuget-Pakete bereitstellen und nicht auf Windows Update warten) .) Die Idee ist großartig, aber es war notwendig, dies in der allerersten Version von UWP zu tun, da das Entity Framework-Team zu diesem Zeitpunkt EF vor einigen Jahren aus dem .net Framework entfernt hatte, um die Abhängigkeit von Windows-Updates zu beenden. Und was zu .Net Core wurde, befand sich in der Entwicklung.



Und vor allem wird es nicht nur für die neuesten Versionen von Windows 10 verfügbar sein, sondern auch ziemlich alt, aber immer noch relevant.


Eine große Halle war für die Sitzung reserviert, aber es gab genügend freien Platz in der Halle (die Entwicklung für Windows wurde für ungefähr 10 Jahre begraben), aber das ist nicht der Punkt. Es waren sehr wenige junge Leute in der Halle (ich vergleiche es mit einer Sitzung über Asp.Net Core oder insbesondere maschinelles Lernen). Dies sind nur meine subjektiven Beobachtungen, ich beschäftige mich nicht mit der Bestattungsentwicklung für Windows.

Microsoft-Ökosystem für Entwickler


Als Außendiensttechniker bei Microsoft habe ich offiziell nur das unterstützt, was Microsoft selbst getan hat. Durch diesen Ansatz verkümmert das Wissen über alles andere. Nachdem ich Microsoft verlassen und Solution Architect geworden bin, ist es wichtig geworden, diese Lücke zu schließen. Und bei Build gab es eine ganze Ausstellung mit Lösungen für Entwicklungspartner und Entwickler, auf der Sie an jeden Stand gehen und Fragen stellen und eine Demo anfordern konnten. Ich habe Wochen gespart, indem ich diese Stände besucht habe.

  • Sie können SonarQube weiterhin zur Verwaltung technischer Schulden verwenden (Codequalität, natürlich keine Architektur).
  • Es gibt spezielle DevOps-Lösungen für Kubertenes, die viel einfacher zu verwenden sind als Azure DevOps
  • Es gibt interessante Lösungen wie Aqua (aquasec) / Snyk zur Prüfung des Inhalts von Docker-Bildern und bereits laufenden Containern.
  • Es gibt interessante Lösungen zum Überwachen und Verfolgen verteilter Anwendungen, die Vorteile gegenüber dem banalen ELK oder Azure Monitor (Application Insights + Log Analytics) wie Signalfx bieten
  • Ich schweige bereits über R # und die Entwicklungsumgebung auf .net von Jetbrains (ich habe mich an R # erinnert, es aber nicht verwendet, weil ich ein wenig geschrieben habe und daher nicht viel über die Entwicklungsumgebung gehört habe).
  • Es war voll von Lösungen aller Art, die auf AI / ML / Daten usw. basierten, aber ich bin nicht viel zu ihnen gegangen, weil Ich habe keine praktische Erfahrung mit industriellen Big Data-Lösungen und kann die Vorteile nicht beurteilen.



Ankündigungen


Um ehrlich zu sein, haben mich die diesjährigen Ankündigungen ( hier und hier ) nicht verletzt, und ich habe mich nicht besonders an sie erinnert. Auf Quantencomputern ist es gut zu übertreiben, aber es bleibt unbemerkt, dass dies die Technologie von heute ist. Und an nichts anderes wurde wirklich erinnert.


Nachwort


In Wahrheit erwartete ich mehr Vertreter der nichtindustriellen Industrie als Microsoft gibt seit langem an, dass es versucht, dem Unternehmen bei Projekten zu helfen, und nicht bei Itshnikami. Ja, natürlich gab es Berichte mit Airbus , BMW ... aber ich habe mehr erwartet.

Office365 ist nicht mein Thema, daher habe ich beschlossen, dieses Problem nicht einmal in Betracht zu ziehen.

All dies ist meine persönliche Meinung, basierend auf meinen Beobachtungen und meinen früheren Erfahrungen. Ich gebe nicht vor, objektiv zu sein. Sie können jede These diskutieren.

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


All Articles