… or, globally available (GA), as Microsoft tends to say. Technically, this is absolutely great news, because the newest version of the Microsoft development runtime brings a lot of new features, fixes and performance improvements. It also cleans out a lot of the past architectural wanderings, the .NET platform has undergone in the recent years. A really good summary of the new features and changes can be found in the .NET Core documentation.
Nevertheless, I always stand in wonder, how the marketing guys find the most confusing names for new products. Must be a contest. With .NET 5.0, this is hilarious! It is not .NET (well classic!), but based on Core, while the ASP .NET and Entity Framework parts keep “Core” in their names and, by the way, it does not replace .NET Standard. I give 10 out of 10 obfuscation points…..
But nevertheless, developers, this is a great runtime and SDK release, so lets get over the naming accidents. As always! 😉
The Wechsler Consulting Cloud News – October 2020 – episode sheds light on new and very promising features in Azure Active Directory (Continuous Access Evaluation), Event Grid integration of Key Vault and App Services Private Endpoints, all of which are great assets in creating modern, scalable and efficient Cloud solutions.
Focus Topic this month is Tiny ML, a completely new approach using ML models on small embedded devices, bringing intelligence closer to places where things are happening. This can turn into nothing less than a game changer in the IOT industry!
In nearly every IOT project I had the opportunity to work in, time series data played a very important role. The problem for this type of data is that it normally comes in larger volumes and is therefore not always great to handle. This is especially true in projects, where you have to cope with small storage on devices and no central data store, which makes it very hard, if nearly impossible to get a global view on the behavior of these solutions in time. One could work with thresholds and alerts, but this approach never gives you the chance to detect trends and get “ahead of the wave” to react better, faster and more precise to certain events. Some of the industrial communication standards, such as OPC UA and SCADA, try to tackle this issue by providing historic data functionality in their communication layers, but this is just a single aspect of a comprehensive data solution.
Cloud architectures are able to help in this case, if you have the chance to collect time series data either centrally, or on the edge. A very valuable asset in Azure and in this context is Time Series Insights. It is a cloud service allowing you to handle query, transform visualize and correlate your different data streams into comprehensive views and insights. There are also connectors into reporting tools such as Power BI available. Using the M365 infrastructure Power Automation or Azure Logic Apps and Functions, serverless integration into corporate business process and control processes is also not a problem.
Bandwidth terror through an abundance of chatty sensors!
For example, in a manufacturing building, network traffic would go through the roof, if “everything” would be directly connected to the Internet (although, it is the Internet of Things) and, of course, it would be a security nightmare, too. Well, let us leave the latter topic aside for a moment and stick to the traffic requirements. The Cloud promise was, connect everything to the Internet and in the Cloud, magically, everything gets done! While this is not false in a lot of scenarios, it is not always true! Depending on solution use cases in focus, there are quite a few scenarios where distributed smart architectures have significant benefits over a centralistic approach. In these cases devices on the “Edge” come into play. They are gateway devices running pre-processing logic and providing storage capabilities to handle part of the overall system workload on-premise, on the edge to the Internet. By doing this, enable the transformation of raw events into higher quality events, such as e.g. the reporting of temperature sensors only, if set limits are exceeded. The higher quality events are passed into the Cloud solution and are handled there to trigger related business logic. Benefits of this design include
Significant lower traffic on central system
Better manageability / monitoring and security of data flow
Robustness against network outages (at least in some of the scenarios)
but, it comes with challenges, as well, such as:
Handling of business logic on the edge
Device management of IOT devices as well as edge devices
This needs to be taken into consideration!
However, if you are a vendor creating Cloud solutions experiencing a lot of data ingress, sooner or later you end up installing Edge devices to sort out raw events spamming your backend. You will buy devices and or talk to the customer to install these devices in the on-premise data-center. The drawback with this approach is that it adds a lot of upfront cost to your solution. Edge devices might be quite capable, full-fledged and therefore expensive servers that a customer may also want to include into his system management to keep them patched and secure. This triggers often time consuming approval processes to get things into place. All of this may kill your project or POC before it even has started!
So, is there a smarter way to approach this issue? As you may have guessed from the title of the post, there is. Microsoft is extending its Cloud-native rent-my-system approach to edge hardware and software. In this case the system of interest is called Azure Stack Edge (fka Azure Data Box Edge – Microsoft likes the renaming game, as we know). There is a very informative IOT Show episode on this solution, still using the old name.
Benefits of the Cloud-rental approach are that the Stack Edge devices are managed centrally via an Azure service. The service allows the installation and management of Azure IOT edge modules taken over the responsibility for the distributed logic in the system. Looking at IOT devices, it is especially interesting that these devices can be connected to a local (Edge) instance of IOTHub and also be managed from there, which gives you the best of both worlds: The devices are safe behind the firewall, but still accessible via the Edge gateway for administrative purposes! Microsoft operates the Edge devices as an appliance, which means it takes over responsibility for any OS (Stack Edge is running on Linux) or runtime patches. IOT Edge modules deployed can be available building blocks from Microsoft or 3rd party vendors, as well be self-developed Edge modules suiting the implemented solution.
This is really powerful, because it leaves solution developers the flexibility to draw existing commercial building blocks e.g. for AI or highspeed processing from Azure Marketplace and focus on the business needs of the solution.
If a customer needs a test at their location, the rental model is not to beat. Just ship your devices and a pre-configured Edge device and a POC can be up and running in minutes, not costing a fortune and hardware. If not suiting, it can be stopped any time with out wasting more costs and energy.
Looks like a quite innovative, efficient and modern approach to me! 🙂
The September 2020 episode of Wechsler Consulting Cloud News comes with a flashlight on the highlights of the Microsoft Ignite 2020 conference, including Azure Orbital, SQL Edge, WVD, Cognitive Services and many more!
This month’s focus topic are the Azure IOT announcements also made at Ignite.
I worked a lot with Microsoft mobile devices during my professional career helping OEMs to create devices as well as supporting customers to operate and manage up to 40.000 Windows Phones in their companies. The last version of Windows Lumia Phones had great hardware and they were really useful enterprise class devices, but, on the other hand, could not make an impact in the all-defining consumer market. This, mainly due to their lack of apps and small size of the eco-system. It was a sad day for me, when Microsoft pulled the plug on their phone business and I had to stow away my Lumia 950 XL, which I really liked due to its high-class, razor-sharp OLED display and the Windows Phone tile UI, which was easy and direct to operate. App development with C#, Visual Studio and .NET was fun and deployments secure using e.g. SCCM or Intune. Sorry, if this sounds a bit nostalgic! 🙂
However, I would never had thought that Microsoft would enter the mobile device space again after the huge losses the last attempts have created.
Surface Duo, therefore, was more than a surprise to me and in the beginning I was really skeptical, if Microsoft was having a “great idea” or just running another attempt to get a “bloody nose”!
After now having a closer look at the specs and capabilities, I cautiously tend to issue a “great idea” judgement, because Microsoft is doing quite some things differently this time! They are not trying to create a new development platform, but are betting on Android, an operating system created by a competitor, which is quite a step for the company. The obvious benefit is that immediately there is a wealth of apps and an intact eco-system available! In addition, they have focused innovation a new device class, the book design, which remotely reminds me at devices with keyboard like the Nokia Communicator as well as some of the HTC Pocket PC models. But, this time the approach is much more versatile, leveraging the two touch screens as display as well as input devices using pen or on-screen keyboard. The book design with hinges to me looks also much more robust and pragmatic than some of the folding screen approaches by the competition. There is some ongoing discussion on the missing second camera, but for normal day use cases the hardware looks well-equipped enough.
Major pain points are the really high price, probably significantly over 1.300,00 € over here in Europe and the fact that the device is currently sold only in the US and foreign markets are treated as second or third class citizens. Looking at the relatively short life time of mobile devices, this is hard to understand and companies such as Samsung and Apple, of course do global rollouts to surf the wave of excitement any device release creates within their dedicated user group. Not to mention that the history of this approach is not so encouraging looking at the list of devices (Zune, Microsoft Band, etc., …) that never went successfully global after an America-First release.
To get more technical info on Surface Duo, have a look at the great video above, or read the interesting and detailed Microsoft Mechanics blog post, which, thankfully, dives into technical details, to spare you the superficial marketing bla-bla one finds nowadays on standard product pages in the store.
Will I buy one, as soon as it becomes available here in Germany? Well, I am heavily tempted, because I do have a feeling that such a device could be a great productivity gain, kind of a small laptop at hand, especially travelling on plane or train, although I still think the price should be more reasonable!
However, sometimes there is pain, when you try to be “cutting edge”!
Many of us remember Windows Plug & Play and we certainly have some painful memories with it, especially originating in its early years. However, over time and with a lot of sweat and tears from the Microsoft product group, it evolved into a cool and robust feature of the Windows OS that has made the life of many IT-Professionals easier.
I am really thrilled about its capabilities! It is a new feature and therefore, yes, there will be some rough edges to expect as well as occasionally missing tool support along the journey, but as an IoT Architect, I would call this a very promising approach to tackle the device provisioning problem, we have in every solution. There are communication technologies available that try to manage this problem on company network level (such as e.g. OPC UA), but none of these have been able to develop a sound Cloud-native strategy, yet. The Plug & Play deep integration into Azure services such as IOTHub and Digital Twins has the potential to develop into a killer feature!
There is a great and detailed video by Olivier Bloch and Stefan Wick on the Azure IOT Show.
To me, this is just the beginning and I am looking forward to see more interesting developments around IoT Plug & Play happening in the following months. I can see room for a lot of IoT development process enhancements, modelling tools, solutions templates, to name just a few of the possible fields of innovation!
The August 2020 episode of Wechsler Consulting Cloud News comes with the newest Azure Talk about Azure Identity SDK, Windows CE App Containers, SignalR and Azure Data Explorer. This month’s focus topic is .NET MAUI, a new cross-platform UI framework by Microsoft.
Please find the links to topics featured in our Cloud News video, below:
Microsoft is providing a way to “modernize” older Windows CE applications by moving these onto Windows 10 IoT Core using a new feature called Windows CE App Containers. This is certainly well-intended, but customers should really double-check their use case, if it really makes sense to follow down that path, just to avoid ending in a cul-de-sac. As a former Windows Embedded MVP and Windows Embedded Silver Partner, I am very aware of the variety of CE applications existing and only in rare cases I would feel good with recommending to containerize an existing CE app to a customer.
If you feel the need to modernize an existing Windows CE system, there are several options you should consider first, depending on the nature of your application.
Here is a quick list of options that comes to my mind:
Hard real-time systems written in C or C++
Windows 10 IoT Core nor Enterprise are hard real-time-capable, due to Windows 10’s preemptive scheduler
Have a look into alternative hardware and operating systems from other vendors, or, quite interesting, Azure Sphere from Microsoft that supports hard real-time and is security hardened for IoT at the same time. It also includes support for the ThreadX real-time operating system (also recently acquired by Microsoft).
Normal UI or service applications written in C, C++, Java or .NET Compact Framework
Check, if these applications can be modernized by a new design leveraging Cloud technology! Candidates would be Azure IoT, Azure IoT Edge as well as serverless approaches such as Azure Functions and Logic Apps, looking at the Microsoft Azure ecosystem. Have in mind that nearly always, when modernizing applications, it does not make sense just to adapt to the newest technology level! Think about redesigning your processes, architecture and streamline end user experiences leveraging modern Cloud technologies!
Move your application onto cross-platform technologies such as .NET Core and ASP.NET Blazor! This often shakes off the chains of being bound to a certain hardware/OS combination and you ideally are able to grow a family of devices using the same software across different hardware devices and OSes.
Use a Cloud native, distributed architectural approach to be able to grow and advance your solution organically
Change the communication strategy in your solution from connected, directed calls (as it often is to be found in older applications) towards asynchronous, message based communication. This will add a lot of robustness and extensibility to your system!
Applications using certain Windows CE Apps or desktop features
Port your application to Windows IoT Enterprise, this will be the only path to be future proof, as App containers as well as IoT Core are going to be end of life at the end of this century.
There may be rare cases justifying a transition via CE App Container as a transition/bridge solution, but these must be thoroughly analyzed! App Container support is not just lift and shift and comes with at least “some” porting effort. Check if this effort really is as small, as the marketing department says, against possible porting/redesign efforts explained above. I always recommend 20% of the estimated porting costs as a threshold. If the to be expected containerizing effort is higher, go for redesign.
Keep in mind, that containerizing is only buying you time, you will need to port the app anyway!
Really large and complex applications, which are expensive to port
OK, the first mistake is to put such a large and complex application on a small embedded device running Windows CE! I am pretty sure, with this kind of application, you are having other troubles, such as performance and resource management problems on the device, as well.
The best thing is to port your application to a capable Windows 10 IoT Enterprise embedded PC system, right away. Do not waste money on a bridge solution, as it may cause additional problems and is not really suited to solve the existing ones. Redesign is a must, to make your app more manageable and fix existing issues!
Yes, there certainly are more approaches and arguments, but I think the ones laid out above cover most of the ground of this discussion.
If you need some ideas how to handle the transition in your specific use case or if there are other questions, just drop me a line and we will find a way to help you out!
Sometimes, it is the small things that make life as an IT-Professional easier!
Anybody who had to move and restore huge virtual disks knows what I am talking about. There are quite often two types of data on a disk: Unimportant data, easily restorable or always included in a base image, and important data, which normally is the business data for the user. In the past one could not separate this data easily, but was forced to go with the heavy lifting on virtual disk level.
Selective Disk Backup, exactly will help us out here, giving us a finer level of control on what to backup and restore.
What makes it interesting is that:
You can save a lot of storage space, as business data normally is much smaller
Restore times are shortened significantly due to the smaller volume
As stated in headline, the service is in preview! Just the right time to take for a test drive! 🙂