<?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>rtandon</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/rtandon/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/rtandon/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:43:04 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>The new Microsoft Azure HDInsight Management sdk</title>
      <link>https://docs.microsoft.com/archive/blogs/rtandon/the-new-microsoft-azure-hdinsight-management-sdk</link>
      <pubDate>Thu, 20 Aug 2015 10:27:00 GMT</pubDate>
      <dc:creator><![CDATA[Ravi Tandon MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/rtandon/2015/08/20/the-new-microsoft-azure-hdinsight-management-sdk/</guid>
      <description><![CDATA[Microsoft Azure HDInsight is now a part of Azure Resource Manager as we start to offer Linux based...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">Microsoft Azure HDInsight is now a part of <strong><a href="https://azure.microsoft.com/en-us/documentation/articles/resource-group-overview/">Azure Resource Manager</a></strong> as we start to offer Linux based clusters. <span>Read the </span><strong><a href="https://azure.microsoft.com/blog/2015/08/11/azure-hdinsight-now-available-in-the-azure-preview-portal/">announcement</a></strong>&nbsp;<span>that came along with the new portal experience. </span>The preview versions of the new SDKs are now available as NuGet packages here:</span></p>
<ul>
<li><span style="font-size: small;"><strong><a href="https://www.nuget.org/packages/Microsoft.Azure.Management.HDInsight">https://www.nuget.org/packages/Microsoft.Azure.Management.HDInsight</a> </strong></span></li>
<li><span style="font-size: small;"><strong><a href="https://www.nuget.org/packages/Microsoft.Azure.Management.HDInsight.Job">https://www.nuget.org/packages/Microsoft.Azure.Management.HDInsight.Job</a></strong></span></li>
</ul>
<p><span style="font-size: small;">I am an engineer who loves automation because once you do it right once and you reap the benefits daily. That's why when someone tells me they deployed a HDInsight cluster from Azure Portal and keep managing by going there back and forth again, well, that does not impress me. As someone on the team who has written lots of test frameworks, automation tools in the past, I can't be productive if I have to type numerous things over and over again when using portal or PowerShell CmdLets.&nbsp;</span></p>
<p><span style="font-size: small;">In this post, I will try to cover on how to start automating using the new Microsoft.Azure.Management.HDInsight SDK and provide you a tool that solves some of tasks related to cluster management (creation, deletion etc). I will not be covering the Microsoft.Azure.Management.HDInsight.Job SDK in this post.</span></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>Tools &amp; Scripts</strong></span>:</p>
<p><span style="font-size: small;">Time to introduce my new GitHub repository where I will post all the tools and code related to HDInsight that I will talk on this blog: </span><strong style="font-size: small;"><a href="https://github.com/rtandonmsft/hdinsight-helper-tools">https://github.com/rtandonmsft/hdinsight-helper-tools</a></strong></p>
<p><span style="font-size: small;">First tool: HDInsightManagementCLI - <strong><a href="https://github.com/rtandonmsft/hdinsight-helper-tools/tree/master/src/HDInsightManagementCLI">https://github.com/rtandonmsft/hdinsight-helper-tools/tree/master/src/HDInsightManagementCLI</a></strong> - this command line tool that allows you to manage your HDInsight clusters using the new SDK, get your subscription capabilities, resize your cluster etc. If you following the link from the GitHub repository to AppVeyor, you should be able to download the compiled binaries from latest build's artifacts: <a href="https://ci.appveyor.com/project/rtandonmsft/hdinsight-helper-tools">https://ci.appveyor.com/project/rtandonmsft/hdinsight-helper-tools</a></span></p>
<p><span style="font-size: small;">Automation Scripts can also be created using Azure PowerShell. The first version of these scripts used by our Storm examples that manage HDInsight clusters via <span>the Azure Service Management (ASM)&nbsp;</span>can be found here:&nbsp;</span><a style="font-size: small;" href="https://github.com/hdinsight/hdinsight-storm-examples/tree/master/scripts/azure/HDInsight">https://github.com/hdinsight/hdinsight-storm-examples/tree/master/scripts/azure/HDInsight</a><span style="font-size: small;">. I will be working on getting newer version of the PowerShell scripts up that are compatible with Azure Resource Manager (ARM).</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small; text-decoration: underline;"><strong>Things to note:</strong></span></p>
<ul>
<li><span style="font-size: small;">Azure HDInsight has moved to the Azure Resource Manager model, starting with the launch of Linux offerings of different cluster types: Hadoop, Storm, HBase, etc.&nbsp;This is partly because the Linux clusters are deployed as IaaS VMs compared to the Windows based PaaS VMs of the past. You will now treat an HDInsight cluster as a resource, managed through Azure Resource Manager.</span></li>
</ul>
<div>
<pre class="scroll"><code class="csharp">static void CreateResourceGroup(string azureResourceManagementUri, string resourceGroupName, string location)<br />{<br />var resourceClient = new ResourceManagementClient(tokenCloudCredentials, new Uri(azureResourceManagementUri));<br />resourceClient.ResourceGroups.CreateOrUpdate(<br />resourceGroupName,<br />new ResourceGroup<br />{<br />Location = location,<br />});<br /><br />resourceClient.Providers.Register("Microsoft.HDInsight");<br />}</code></pre>
</div>
<ul>
<li><span style="font-size: small;">Certificate-based credentials won't work anymore, due to the new emphasis on Azure Active Directory authentication for all services in the Azure Resource Manager framework. This was the something I had to get used to: The move to Azure Active Directory for authentication. Don't worry, I now have code for you to use. I still don't like the pop-up for credentials. (note-to-self: figure out completely unattended mode)</span></li>
</ul>
<div>
<pre class="scroll"><code class="csharp">AuthenticationContext ac = new AuthenticationContext("https://login.windows.net/" + config.AzureActiveDirectoryTenantId, true);<br />var token = ac.AcquireToken("https://management.core.windows.net/", config.AzureActiveDirectoryClientId, new Uri("urn:ietf:wg:oauth:2.0:oob"), PromptBehavior.Auto);<br />tokenCloudCredentials = new TokenCloudCredentials(config.SubscriptionId, token.AccessToken);<br />hdInsightManagementClient = new HDInsightManagementClient(tokenCloudCredentials, new Uri(https://management.azure.com/));</code></pre>
</div>
<ul>
<li><span style="font-size: small;">If you are looking to deploy any new clusters (including Linux clusters) through the new SDK, new PowerShell cmdlets, or new portal, then you will need to switch to the new SDK, new PowerShell cmdlets, and/or new portal to continue to manage the cluster.</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>Workflow:</strong></span></p>
<p><span style="font-size: small;">There are two parts to understanding this workflow, the first part is how you as the client/user communicates with Azure to create your resources (clusters) and the second part is how HDInsight works with Azure to deploy&nbsp;the clusters.</span></p>
<p><span style="font-size: small;">You can use Azure Resource Manager (ARM / New) or Azure Service Management (ASM / Old) to communicate with HDInsight cluster management APIs. HDInsight communicates with Azure Compute to procure the right type of VMs for your cluster: PaaS for Windows (via RDFE), IaaS for Linux (via ARM using template deployment).</span></p>
<p><span style="font-size: small;"><br /></span></p>
<p><span style="text-decoration: underline;"><strong style="font-size: small;">Compatibility Table:</strong></span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="234">
<p align="center">&nbsp;</p>
</td>
<td width="241">
<p align="center"><span style="text-decoration: underline;"><strong>Manageable with ASM / Old</strong></span></p>
<p align="center"><span style="text-decoration: underline;"><strong>(old SDK, old PowerShell, or old Portal)</strong></span></p>
</td>
<td width="241">
<p align="center"><span style="text-decoration: underline;"><strong>Manageable with ARM / New</strong></span></p>
<p align="center"><span style="text-decoration: underline;"><strong>(new SDK, new PowerShell, or new Portal)</strong></span></p>
</td>
</tr>
<tr>
<td width="234">
<p align="center">Clusters created through ASM / Old</p>
<p align="center">(old SDK, old PowerShell, or old Portal)</p>
</td>
<td width="241">
<p align="center">Yes</p>
</td>
<td width="241">
<p align="center">Yes</p>
</td>
</tr>
<tr>
<td width="234">
<p align="center">Clusters created through ARM / New</p>
<p align="center">(new SDK, new PowerShell, or new Portal)</p>
</td>
<td width="241">
<p align="center">No</p>
</td>
<td width="241">
<p align="center">Yes</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>To conclude, if you created your cluster with the old SDK, old PowerShell, or old portal, you can continue using the old SDK. If you are going to create new clusters, including Linux, through the new tools, you should invest your time in moving to the new SDK.</p>
<p>I also have another management tool like HDInsightManagementCLI (now posted on GitHub) which uses the old SDK and talks to Azure Service Management to manage HDInsight clusters. If there is enough interest, I will publish that too.</p>
<p><span style="font-size: small;">Cheers<br /></span><span style="font-size: small;">Ravi</span></p>
<p><em><span style="font-size: small;">Next post: HDInsight Cluster Logs Downloader</span></em></p>
<p><span style="font-size: small;">Read more about Azure Resource Manager (ARM) here: </span></p>
<ul>
<li><span style="font-size: small;"><a href="https://azure.microsoft.com/en-us/documentation/articles/resource-group-overview/">https://azure.microsoft.com/en-us/documentation/articles/resource-group-overview/</a></span></li>
<li><span style="font-size: small;"><a href="https://msdn.microsoft.com/en-us/library/azure/dn790568.aspx">https://msdn.microsoft.com/en-us/library/azure/dn790568.aspx</a></span></li>
<li><span style="font-size: small;"><a href="https://azure.microsoft.com/en-us/documentation/articles/powershell-azure-resource-manager/">https://azure.microsoft.com/en-us/documentation/articles/powershell-azure-resource-manager/</a></span></li>
<li><span style="font-size: small;"><a href="https://azure.microsoft.com/en-us/documentation/articles/fundamentals-application-models/#CloudServices">https://azure.microsoft.com/en-us/documentation/articles/fundamentals-application-models/#CloudServices</a></span></li>
</ul>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Welcome to my blog</title>
      <link>https://docs.microsoft.com/archive/blogs/rtandon/welcome-to-my-blog</link>
      <pubDate>Tue, 18 Aug 2015 11:22:00 GMT</pubDate>
      <dc:creator><![CDATA[Ravi Tandon MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/rtandon/2015/08/18/welcome-to-my-blog/</guid>
      <description><![CDATA[First post (took a long time)! I will start with introducing myself. My name is Ravi Tandon, I...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">First post (took a long time)! I will start with introducing myself. My name is Ravi Tandon, I joined Microsoft in February 2006 as an SDET in the India Development Center. My first team was Microsoft SQL Server Compact, an embedded database product. In April 2012 I decided to move to Redmond where I now work as a Senior Software Engineer in the Microsoft HDInsight team.</span></p>
<p><span style="font-size: small;">In the last 3 years with HDInsight I have worked on multiple sections of the service: </span></p>
<ul>
<li><span style="font-size: small;">the deployment service (resource provider) - the service that creates your clusters</span></li>
<li><span style="font-size: small;">engineering systems - continuous integration, push-to-cloud build systems</span></li>
<li><span style="font-size: small;">and now I work on Apache Storm - as a PaaS service on both Windows &amp; Linux - additionally providing C# .Net interfaces via SCP.Net</span></li>
</ul>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><span style="font-size: small;"><strong>Why the blog now?</strong></span></span></p>
<p><span style="font-size: small;">Each team in Microsoft operates differently. I used to blog a bit earlier but they were mostly on team blogs as most of the stuff we worked on was proprietary. I am engineer who likes to make things work, so I would naturally have to scrub a lot of information when it came to product code.</span></p>
<p><span style="font-size: small;">Moving to Microsoft HDInsight, things have changed. Now that I work more on the OSS side of things: bring Apache Hadoop, Apache Storm, Apache HBase to Azure, I have started to establish a connection with the community, which I would like to build on.</span></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><span style="font-size: small;"><strong>What to expect?</strong></span></span></p>
<p><span style="font-size: small;">Earlier this year we stood up a repository to host Apache Storm examples that work on Microsoft HDInsight at <a href="https://github.com/hdinsight-storm-examples">https://github.com/hdinsight-storm-examples</a>. The examples are mostly one-command runnable. I would like that repository to mature and provide more scenarios, tools on things that you can accomplish with HDInsight&nbsp;&amp; Storm.</span></p>
<p><span style="font-size: small;">If there are any particular areas of interest where you want to know more about using HDInsight or Apache Storm, feel free to let me know.&nbsp;</span><span style="font-size: small;">My goal has been to share as much scenarios, automation scripts, tools that make my development life easy and hopefully can make the community's life easier too.</span></p>
<p>&nbsp;</p>
<p><em><span style="font-size: small;">Stay tuned.</span></em></p>
<p><span style="font-size: small;">-Ravi</span></p>]]></content:encoded>
    </item>
  </channel>
</rss>