<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Todd Whitehead</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/toddwhitehead/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/toddwhitehead/feed.xml</link>
    <description>lost but making good time</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:44:24 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Upgrading from preview to GA version of IoT Edge</title>
      <link>https://docs.microsoft.com/archive/blogs/toddwhitehead/upgrading-from-preview-to-ga-version-of-iot-edge</link>
      <pubDate>Thu, 28 Jun 2018 18:32:44 GMT</pubDate>
      <dc:creator><![CDATA[Todd Whitehead - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/toddwhitehead/?p=135</guid>
      <description><![CDATA[The wait is finally over with todays announcement that Azure IoT Edge is now out of preview and in...]]></description>
      <content:encoded><![CDATA[The wait is finally over with todays <a href="https://azure.microsoft.com/en-au/blog/azure-iot-edge-generally-available-for-enterprise-grade-scaled-deployments/">announcement </a>that <a href="https://docs.microsoft.com/en-us/azure/iot-edge/">Azure IoT Edge</a> is now out of preview and in GA.  The new installation process is quite different than it was in preview and there are <a href="https://docs.microsoft.com/en-us/azure/iot-edge/how-to-install-iot-edge-windows-with-linux">detailed instructions</a> available for the wide variety of supported platform. But you may hit some speedbumps if you install the GA version over the top of the preview version.
<h2>The Problem</h2>
The IoT Edge runtime should automatically instantiate the edgeAgent module to orchestrate the deployment and lifecycle of the other modules. For some reason this wasn't happening so  running the "iotedge list" command returned a depressing blank result. This occurred on both my windows and Linux dev machines.
<pre style="padding-left: 30px">iotedge list
NAME STATUS DESCRIPTION CONFIG</pre>
Looking at the logs for the IoT Edge service (iotedged) revealed a not overly helpful error.
<pre>
PS C:\WINDOWS\system32&gt; Get-WinEvent -ea SilentlyContinue  -FilterHashtable @{ProviderName= "iotedged";
&gt;&gt; LogName = "application"; StartTime = [datetime]::Today} |  select TimeCreated, Message | Sort-Object -Descending

TimeCreated Message
----------- -------
28/06/2018 4:54:16 PM info: edgelet_core::watchdog -- Updating identity for module $edgeAgent
28/06/2018 4:54:19 PM warn: edgelet_core::watchdog -- Error in watchdog when checking for edge runtime status:
28/06/2018 4:54:19 PM warn: edgelet_utils::logging --<strong> A module runtime error occurred.</strong>
28/06/2018 4:53:59 PM info: edgelet_http::logging -- [mgmt] - - - [2018-06-28 06:53:59.809207100 UTC] "GET /modules?...
28/06/2018 4:54:16 PM info: edgelet_core::watchdog -- Checking edge runtime status
28/06/2018 4:54:16 PM info: edgelet_core::watchdog -- Creating and starting edge runtime module edgeAgent
28/06/2018 4:54:19 PM warn: edgelet_utils::logging -- <strong>caused by: Conflict with current operation</strong>
28/06/2018 4:55:16 PM info: edgelet_core::watchdog -- Updating identity for module $edgeAgent
28/06/2018 4:55:19 PM warn: edgelet_core::watchdog -- Error in watchdog when checking for edge runtime status:
28/06/2018 4:55:19 PM warn: edgelet_utils::logging -- A module runtime error occurred.</pre>
<h2>The Solution</h2>
It seems that the existence of the preview versions of the edgeAgent images in the local Docker registry was the source of my grief. A spring clean was therefore required.
<h3>Windows (Linux containers) Fix</h3>
<ol>
 	<li>Start a powershell as Adminstrator</li>
 	<li>Stop the IoT Edge Service
<pre><em>Stop-Service iotedge</em></pre>
</li>
 	<li>Create and run  a batch file to delete the existing images and containers
<pre><em>@echo off</em>
<em>FOR /f "tokens=*" %%i IN ('docker ps -aq') DO docker rm %%i</em>
<em>FOR /f "tokens=*" %%i IN ('docker images --format "{{.ID}}"') DO docker rmi %%i -f</em></pre>
<i></i></li>
 	<li>Restart the IoT Edge service and give it a minute to pull down the images<i>
</i>
<pre><i>Start-Service iotedge</i></pre>
</li>
 	<li>List the running modules to make sure all is good
<pre>PS C:\WINDOWS\system32&gt; <em>iotedge list</em>
NAME      STATUS  DESCRIPTION   CONFIG
edgeAgent running Up 41 minutes mcr.microsoft.com/azureiotedge-agent:1.0</pre>
</li>
</ol>
<h3>Linux Fix</h3>
<ol>
 	<li>Stop the IoT Edge Service
<pre><em>sudo systemctl stop iotedge</em></pre>
</li>
 	<li>Run commands to  delete the existing images and containers
<pre><em>rm $(docker ps -a -q)</em>
<em>rmi $(docker images -q) -f</em></pre>
</li>
 	<li>Restart the IoT Edge service and give it a minute to pull down the images<i>
</i>

<i></i>
<pre><i>sudo systemctl start iotedge</i></pre>
</li>
 	<li>List the running modules to make sure all is good
<pre>sudo <em>iotedge list</em>
NAME      STATUS  DESCRIPTION   CONFIG
edgeAgent running Up 41 minutes mcr.microsoft.com/azureiotedge-agent:1.0</pre>
</li>
 	<li>Check the logs of the edgeAgent container to check it it happy
<pre>sudo <em>iotedge logs edgeAgent</em></pre>
</li>
</ol>
&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure for AWS Professionals</title>
      <link>https://docs.microsoft.com/archive/blogs/toddwhitehead/azure-for-aws-professionals</link>
      <pubDate>Wed, 14 Feb 2018 15:21:28 GMT</pubDate>
      <dc:creator><![CDATA[Todd Whitehead - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/toddwhitehead/?p=35</guid>
      <description><![CDATA[For people experienced with the AWS platform, it can be challenging to know how to get started on...]]></description>
      <content:encoded><![CDATA[For people experienced with the AWS platform, it can be challenging to know how to get started on Azure.  After discussing this with an experienced AWS developer at a recent User Group, I though it would be useful to pull together resources for those Day 0 scenarios.
<h2>Overview of Azure for AWS Professionals</h2>
<div><img width="300" height="180" class="alignright wp-image-65 size-medium" alt="Diagram representing the different structure of AWS and Azure Accounts" src="https://msdnshared.blob.core.windows.net/media/2018/02/azure-aws-account-compare-s-300x180.png" />This article helps Amazon Web Services (AWS) experts understand the basics of Microsoft Azure accounts, platform, and services. It covers key similarities and differences between the AWS and Azure platforms in terms of structure, operations and architecture.</div>
<div><a target="_blank" href="https://docs.microsoft.com/en-au/azure/architecture/aws-professional/" rel="noopener">https://docs.microsoft.com/en-au/azure/architecture/aws-professional/</a></div>
<h2>AWS to Azure services comparison</h2>
These links help you understand how Microsoft Azure services compare to Amazon Web Services (AWS). Whether you are planning a multi-cloud solution with Azure and AWS, or migrating to Azure, you can compare the IT capabilities of Azure and AWS services in all categories. Note that in some cases there are multiple Azure services listed for some AWS services. Some Azure services may appear similar to one another, but depth functional grouping and breadth of capabilities can vary.

https://docs.microsoft.com/en-au/azure/architecture/aws-professional/services

A downloadable version is also available  at <a target="_blank" href="https://aka.ms/awsazureguide" rel="noopener">https://aka.ms/awsazureguide</a>

<img width="1024" height="485" class="aligncenter wp-image-85 size-large" alt="A screenshot of comparing Azure and AWS storage services" src="https://msdnshared.blob.core.windows.net/media/2018/02/storage-comparison-1024x485.png" />
<h1>Online Learning</h1>
Azure is a diverse and rich platform and as a result there is a variety of training resources available. The following free courses provide a good starting point for those with experience with the AWS platform.

&nbsp;
<h2>Microsoft Azure Administration for AWS Administrators</h2>
Learn how to map AWS services to their Azure counterparts, and how to perform the most important AWS administrative tasks in Azure. Gain a well-rounded understanding of the similarities and differences between AWS and Azure.
<ul>
 	<li><a target="_blank" href="https://www.pluralsight.com/courses/azure-administration-aws-administrators" rel="noopener">Free Pluralsight Course</a></li>
 	<li><a target="_blank" href="https://www.microsoft.com/handsonlabs/SelfPacedLabs#keywords=Microsoft%20Azure%20Administration%20for%20AWS%20Administrators&amp;page=1&amp;sort=Newest" rel="noopener">Hands on Lab</a></li>
</ul>
<h2>Microsoft Azure Architecture for AWS Architects</h2>
This course provides an easy to consume, yet critical way as an AWS architect to translate your knowledge to Azure. This will enable you to architect Azure-based solutions with minimal relearning.
<ul>
 	<li><a target="_blank" href="https://www.pluralsight.com/courses/microsoft-azure-architecture-aws-architects" rel="noopener">Free Pluralsight Course</a></li>
 	<li><a target="_blank" href="https://www.microsoft.com/handsonlabs/SelfPacedLabs#keywords=aws%20arch&amp;page=1&amp;sort=Newest" rel="noopener">Hands on Lab</a></li>
</ul>
<h1>Getting hands on for Free</h1>
The best way to learn is by doing and the best type of doing is free. You can signup for a free Azure account that will give you what you need to get started actually deploying and running solutions in Azure. Just head over to <a href="https://azure.microsoft.com/en-au/free/">https://azure.microsoft.com/en-au/free/</a> to register for your free Azure Account. This will provide you with $260 of credit for first 30 days, 12 months of popular free services and more than 25 services that are always free.

Then head over to <a href="https://azure.microsoft.com/en-au/tools/">https://azure.microsoft.com/en-au/tools/</a> to download all the free Developer Tools, SDK's and command-line utilities you need.

&nbsp;]]></content:encoded>
    </item>
  </channel>
</rss>