Build2019, comprehending what we saw

    Just last week, the largest Microsoft Build2019 developer conference was held . Having gone there, I pursued 2 goals.

    • The first goal is to understand where Microsoft is going in terms of development and what technologies and approaches it is promoting.
    • The second goal is to understand the state of the community around Microsoft. Build - a public conference - gives a better idea of ​​this than internal Microsoft conferences for its employees. At a public event, you can draw conclusions even on the number of people who came to the session.

    For myself, I have identified several key topics on which I want to share my thoughts:

    • .Net Framework Roadmap
    • Kubernetes
    • Serverless
    • Edge computing
    • Big Data, Machine Learning, Artificial Intelligence
    • Windows Presentation Platform

    .Net Framework Roadmap


    At Build2019, there was a report by the .NET Platform Overview and Roadmap . I highly recommend watching and reading Introducing .NET 5 , C # 8 and a separate report on C # 8 - The Future of C #

    image

    • My observations since the announcement of .net core 3.0 in the following: the creation of .net core / .net standards was very correct, but in .net, as in other platforms, a lot of code has been accumulated that cannot be taken and transferred like this. And, therefore, you need to bring .net core / standard buns to old projects with minimal modification. WinForms / WPF was taken to opensource, the next release will already be with .net standard under the hood, and you can forget about the old structure of csproj files and get many more bonuses. Things are certainly correct, but they are also caused by the fact that legacy must also be supported.
    • It's good that for mobile platforms UWP is no longer remembered, and only Xamarin for C # developers remains.
    • At the stand of the .Net Core team I asked the question: “And what big changes do you plan to make in .Net 6-7-8? And will you have a reason to increase the major version of the product every year? ”Most of all I liked the part of the answer that I translated, I understood as“ well, this is vision, but how it will be next, we'll see. ” „
    • I had similar thoughts about C # 8, as well as about all releases after async / await, which really changed the programming style in C #. And everything else, of course, was fun and added syntactic sugar, but the Async / Await background looked rather faded. But the code is becoming less and less like classic C #. What would you say on such a code, so in 2012

    But what I did not like about this session was persistent attempts to once again emphasize to all .net / C # developers the need to know, understand and use Machine Learning, Cognitive Services , etc. on a daily basis .

    Of course, an intelligent developer should understand such things, study, and practice, if possible. But, in 99% of cases, this is not required in the project, and such persistent evangelism, frankly, begins to bother.

    To be honest, I don’t really believe in the future of projects like Spark.Net, which were discussed in this session. Experience reminds us that similar attempts to write Wrappers in C # or completely port a data project to C # over the past 10 years usually ended with nothing, because the community is smaller and the language is not so difficult to change.

    After Build2019, there was an announcement that the .Net Framework 4.8 is the latest major version of the .Net Framework and there will be only minor changes. All in all, it's time for .Net Core.

    Service Fabric vs Kubernetes


    3 years at Microsoft and for almost half a year at EPAM I can’t give a normal technical explanation of why you need Service Fabric (and you, at the same time, do not work at Microsoft), if there is Kubernetes.

    • For a long time, the “interpreters” said that these are equal platforms, but this is not so (google elementary).
    • Then there was talk that SF is more mature for Windows development, and Kubernetes for Linux.
    • Well, at the same time, they say, at SF your developers will be able to use their skills in the Windows Environment, and in K8s you need to learn Linux and relearn. I agree, legacy code and the need to relearn-relearn is a serious argument, but on the other hand, SF was quite complicated, and in my opinion it is no easier than K8s. Well, on the one hand, Linux needs to be studied and known anyway. Even to the ossified “wind farm” (which I am, too). On the other hand, Kubernetes abstracts quite a lot from this.

    At Build2019, I put an end to myself for SF, because there was 1 report on it (although the title was about Mission Critical ***) .

    And according to Kubernetes pieces 20-30 in all sections. I will give only the part that I recommended to see in my project.


    Devops


    In my opinion, Microsoft surrendered and accepted the reality - the .net community, in fact, did not accept the Service Fabric. But Kubernetes has become in fact the standard even for the .net world, with which I congratulate you and me.

    ServerLess to everyone


    Still, a lot is said about ServerLess computing. But, if earlier only Azure Functions and Logic Apps were wrapped in this sauce, now even Azure SQL Database ServerLess has hooked (when I saw the announcement, I was very surprised because something was wrong, and ServerLess SQL sounds interesting).

    On the other hand, Serverless can be launched not only in Azure, but also locally in the container. Thus, Serverless becomes more understandable and less magical (engineers usually do not like magic, because they don’t understand how it works ... and if it doesn’t work, then how to fix the magic).

    SQL ServerLess


    The essence of SQL Serverless is that you can specify the lower and upper bounds on the resources consumed and you will pay at the lower bound, plus what you consume between the lower and upper bounds. A minor feature that you can pause SQL (and not pay for compute resources) if the database is not used (you can pause for 6 hours now), I would not consider it, because so that there would not be a single request to the database for a couple of hours at all - this is a very strange situation, because there is at least monitoring, and the base will start (as promised) in 30-60 seconds, which is also important.

    image

    Subscription Edge or Cloud Computing in more than Microsoft Data Center


    • Once upon a time, in 2008-2010, Microsoft said something like this: “here you have our magic Cloud Service, rewrite your applications for them (Web / Worker Role) and you will have happiness”. Happiness did not work, because Legacy spoiled everything.
    • Then virtual machines appeared, but now it doesn’t matter.
    • Then, when it became clear that even now few people can completely move to Cloud, you still need to make Hybrid solutions. At the beginning, this meant VPN to Azure. Then came the Azure Stack (a hardware-software complex that is similar to Azure in API and could hold the Production load on it if the regulator does not allow publishing in the Public Cloud, and keep dev / test with anonymized data in the Public Cloud)
    • Then all sorts of IoT solutions became fashionable and popular (for Microsoft and other big players ... telemetry was written for a long time). At first, in the scenario of Connected Factory (Factory / assembly line), they suggested using solutions from Azure Cloud, but the industry explained that the Latency between their factory could be much higher than the permissible one and stopping the assembly line due to the “blinking” Internet is not viable decision.
    • As a result, first appeared Azure IoT Edge, which, although it was downloaded from Azure, but worked and processed data on your hardware (you needed a Docker compatible host, which at least sometimes connected to the Internet), but at first it had a very modest set of features. A good talk on this topic was Azure IoT Edge & AI: Enabling the Intelligent Edge
    • Then, when IoT Edge proved to be useful (for consumers and for Microsoft finance), services that previously were considered Cloud Only began to appear like mushrooms. For example, Cognitive Services came to Edge. Visual quality control of products on an assembly line or conveyor is much easier to do from a local docker container than to assemble latency to Azure Data Center.
    • But at Build2019, many of these services went public or appeared as preview (I like Speech Services for speech synthesis most of all from preview. It was very lacking on devices without constant Internet access).
    • At the same time, it was shown, announced by SQL Server, it Edge ( Simplify Edge Architecture with Azure SQL Database Edge ).

      No, SQL 2017 has long been running on Linux in Docker, but it required 3.5 GB of memory. This version is also optimized for memory (500MB <and runs on ARM processors), for Edge devices (there is usually little memory on them). And at the same time there is the work of Built-In Time-Series Streaming and Analytics, which sounds very interesting.
    • In addition, Azure Sphere- based Hardware for Secured IoT solutions was launched .
    • They showed Azure Edge compute equipment, which leaves no doubt that the topic is closely monitored.
      True box, I liked the data migration to Azure more because Looks more solid.


    Big Data, Machine Learning, Artificial Intelligence


    In these areas, I will write from the perspective of a former developer (although there are no former developers), and not an expert on data.

    Very often I met the “interesting” position of some customers that IaaS should be done in Aws, PaaS in Azure and Data in GCP. One cannot disagree that historically each of the providers specialized in something, but now, if you look at it in large quantities, in many services parity has been achieved (the difference in nuances, of course, remains). Integration of solutions between different Cloud providers is, of course, an interesting job and a gold mine, but as a rule, it is extremely inefficient for the customer himself (you always have to pay for outgoing traffic, but there is also latency and complexity / complexity of the solution).

    Probably the most promising direction for Microsoft / Azure in the near future from the point of view of new money is working with data - “hello” Spark / Hadoop / Kafka, Data lakes and many more interesting services, but at the same time with hot topics (someone does not like on hype to make sales) such as Artificial intelligence (They again show us Cortana, again they show us smart cars). The number of announcements, and most importantly cases (sometimes synthetic, and sometimes even show a happy client) on the use of Big Data services in Azure at the conference was just off scale. According to AI alone, there are 37 sessions (there are 171 of them for the whole Build2019, if we subtract 15 minute corridor reports and programming sessions for students.). There were even DevOps reports for Big Data, Windows AI platform and AI for PowerBI. Most of these technologies are open source, they are all community driven and are present in all 3 large providers. A couple of years ago, I admit, I do not recall such an active approach to Data services.

    Windows Presentation Platform


    One of the sessions that I would like to mention is the Windows Presentation Platform (WPP) session. To be honest, I inadvertently thought that this was about the Windows Presentation Foundation (WPF), but I was pleasantly surprised that the topic was wider than expected.

    Once back in 2009, when WPF was just launched, the topic was popular: hosting WinForms controls in WPF applications, or vice versa - trying to insert WPF controls in WinForms. It was all from what it was often impossible to take and flip the huge pieces of the application onto the new framework. In the first releases, such features were not advertised, but when it became obvious that backward compatibility had to be pulled, they began to actively promote.

    So, in 2019 it is discussed how to host U WP controls in WPF (XAML islands) , and howto decouple the UI components and the operating system in WinUI 3.0 (that is, supply controls / compiler / runtime as nuget packages and not wait for Windows Update.) The idea is great, but you had to do it in the very first version of UWP, because At that time, the Entity Framework team had, for several years, removed EF from the .net Framework in order to cease to depend on Windows Updates. And what became .Net Core was in development.



    And most importantly, it will be available not only for the latest versions of Windows 10, but also quite old, but still relevant.


    A large hall was reserved for the session, but there was enough free space in the hall (development for Windows has been buried for about 10 years), but this is not the point. There were very few young people in the hall (I compare it with a session on Asp.Net Core or, especially, Machine Learning). These are just my subjective observations; I do not deal with funeral development for Windows.

    Microsoft Ecosystem for Developers


    As a field engineer at Microsoft, I officially supported only what Microsoft itself did. From this approach, knowledge of everything else atrophies. Now that I have left Microsoft and become Solution Architect, it has become vital to fill this gap. And at Build there was a whole exhibition of solutions for development partners and developers, where you could go to any stand and ask questions, ask for a demo. I saved weeks by visiting these stands.

    • You can still use SonarQube to manage technical debt (code quality, not architecture of course)
    • There are specialized DevOps solutions on Kubertenes that are much easier to use than Azure DevOps
    • There are interesting solutions like Aqua (aquasec) / Snyk for auditing the contents of docker images and already running containers.
    • There are interesting solutions for monitoring and tracing distributed applications that have advantages over the banal ELK or Azure Monitor (Application Insights + Log Analytics) like Signalfx
    • I am already silent about R # and the development environment on .net from Jetbrains (I remembered about R # but didn’t use it, because I wrote a little and therefore didn’t hear much about the development environment).
    • It was full of all kinds of solutions based on AI / ML / Data, etc., but I didn’t go to them much, because I have no practical experience in industrial Big Data solutions and I will not be able to assess the benefits.



    Announcements


    To be honest, personally this year ’s announcements ( here and here ) didn’t hurt me, and I didn’t particularly remember them. On quantum computers, it’s good to hype, but it’s imperceptible that this is the technology of today. And nothing else really was remembered.


    Afterword


    In truth, I expected more representatives of non-industrial industries, as Microsoft has long been stating that it seeks to help the business with projects, and not itshnikami. Yes, of course, there were reports with Airbus , BMW ... but I expected more.

    Office365 is not my topic, so I decided not to even consider this issue.

    All of the above is my personal opinion, based on my observations and my previous experience. I do not pretend to be objective. You can discuss any thesis.

    Also popular now: