<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SendGrid on Ash Tewari</title><link>https://www.tewari.info/tag/sendgrid/</link><description>Recent content in SendGrid on Ash Tewari</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Fri, 11 Mar 2016 00:23:06 +0000</lastBuildDate><atom:link href="https://www.tewari.info/tag/sendgrid/feed.xml" rel="self" type="application/rss+xml"/><item><title>KeyNode with Node.js and Microsoft Azure</title><link>https://www.tewari.info/2016/03/10/keynode-with-node-js-and-microsoft-azure/</link><pubDate>Fri, 11 Mar 2016 00:23:06 +0000</pubDate><guid>https://www.tewari.info/2016/03/10/keynode-with-node-js-and-microsoft-azure/</guid><description>&lt;p&gt;&lt;a class="link" href="https://github.com/ashtewari/keynode" title="KeyNode"&#10; target="_blank" rel="noopener"&#10; &gt;KeyNode&lt;/a&gt; is a application to issue and verify software license keys. Technology stack for KeyNode is &lt;a class="link" href="https://nodejs.org/" title="Node.js"&#10; target="_blank" rel="noopener"&#10; &gt;Node.j&lt;/a&gt; s, &lt;a class="link" href="https://www.mongodb.org/" title="MongoDB"&#10; target="_blank" rel="noopener"&#10; &gt;MongoDB&lt;/a&gt; and &lt;a class="link" href="https://azure.microsoft.com/" title="Microsoft Azure"&#10; target="_blank" rel="noopener"&#10; &gt;Microsoft Azure&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;I had built this functionality with &lt;a class="link" href="https://c9.io" title="C9.io"&#10; target="_blank" rel="noopener"&#10; &gt;C9.io&lt;/a&gt; (a cloud-based IDE with a built-in source code repository and debugger), &lt;a class="link" href="http://www.prnewswire.com/news-releases/mongohq-becomes-compose-270174611.html" target="_blank" rel="noopener"&#10; &gt;mongohq&lt;/a&gt; (MongoDB as a service - now part of &lt;a class="link" href="https://www.compose.io/" title="compose.io"&#10; target="_blank" rel="noopener"&#10; &gt;compose.io&lt;/a&gt;) and &lt;a class="link" href="https://www.ctl.io/appfog/" title="AppFog"&#10; target="_blank" rel="noopener"&#10; &gt;appfog&lt;/a&gt; (Cloud PAAS built on top of &lt;a class="link" href="https://www.cloudfoundry.org/" title="CloudFoundry"&#10; target="_blank" rel="noopener"&#10; &gt;CloudFoundry&lt;/a&gt;). It used SMTP/gmail to email license files. That was the version I created a couple of years ago to issue tamper-proof signed xml license files for &lt;a class="link" href="http://codedemo.net/" target="_blank" rel="noopener"&#10; &gt;CodeDemo&lt;/a&gt; (a code snippet tool for developers, presenters and instructors).&lt;/p&gt;&#10;&lt;p&gt;For KeyNode (open source) I switched to a different toolset : &lt;a class="link" href="https://code.visualstudio.com/" title="Visual Studio Code"&#10; target="_blank" rel="noopener"&#10; &gt;Visual Studio Code&lt;/a&gt; and &lt;a class="link" href="https://azure.microsoft.com/" target="_blank" rel="noopener"&#10; &gt;Windows Azure&lt;/a&gt;, simplified the code to remove signed xml file and open-sourced it on &lt;a class="link" href="https://github.com/ashtewari/keynode" target="_blank" rel="noopener"&#10; &gt;GitHub&lt;/a&gt;. Signed xml allowed offline verification in CodeDemo (a Wpf/Desktop app). Removing signed xml requires verification to happen online. I am working on adding the web endpoint for verification of license keys. This version uses &lt;a class="link" href="https://sendgrid.com/" title="SendGrid"&#10; target="_blank" rel="noopener"&#10; &gt;SendGrid&lt;/a&gt; to email license keys. KeyNode is deployed as a &lt;a class="link" href="https://azure.microsoft.com/en-us/services/app-service/web/" target="_blank" rel="noopener"&#10; &gt;Windows Azure Web App&lt;/a&gt;. The Azure Web App is on Continuous Deployment feed from the source code repository on GitHub.&lt;/p&gt;&#10;&lt;p&gt;I created and tested this Node.js application locally without IIS and deployed it as an Azure Web App without making any changes to the code at all. Node.js applications are hosted in Azure under IIS with &lt;a class="link" href="https://github.com/tjanczuk/iisnode" title="iisnode"&#10; target="_blank" rel="noopener"&#10; &gt;iisnode&lt;/a&gt;. &lt;a class="link" href="https://github.com/tjanczuk/iisnode" target="_blank" rel="noopener"&#10; &gt;Iisnode&lt;/a&gt; is a native IIS module that allows hosting of node.js applications in IIS on Windows. Read more about iisnode &lt;a class="link" href="https://tomasz.janczuk.org/2011/08/hosting-nodejs-applications-in-iis-on.html" target="_blank" rel="noopener"&#10; &gt;here&lt;/a&gt;. Iisnode architecture also makes it significantly &lt;a class="link" href="https://blogs.msdn.microsoft.com/hanuk/2012/05/04/top-benefits-of-running-node-js-on-windows-azure/" target="_blank" rel="noopener"&#10; &gt;easier&lt;/a&gt; to take advantages of scalability afforded by Azure.&lt;/p&gt;&#10;&lt;p&gt;KeyNode is a work in progress. My plan is to use this as the basis for further explorations in the following areas :&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;DevOps, Docker and Microservices (at miniature scale of course!)&lt;/li&gt;&#10;&lt;li&gt;Create a Web UI with &lt;a class="link" href="http://expressjs.com/" target="_blank" rel="noopener"&#10; &gt;Express&lt;/a&gt;(a Node.js web application framework)&lt;/li&gt;&#10;&lt;li&gt;Integrate with &lt;a class="link" href="https://azure.microsoft.com/en-us/services/storage/" target="_blank" rel="noopener"&#10; &gt;Azure Storage/Queues&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;and more&amp;hellip;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;I invite you to check out the &lt;a class="link" href="http://keynode.azurewebsites.net/" target="_blank" rel="noopener"&#10; &gt;live site on Azure&lt;/a&gt; and fork it for your own experiments : &lt;a class="link" href="https://github.com/ashtewari/keynode" target="_blank" rel="noopener"&#10; &gt;KeyNode on GitHub&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Resources :&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://azure.microsoft.com/en-us/develop/nodejs/" target="_blank" rel="noopener"&#10; &gt;Node.js Developer Center&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://tomasz.janczuk.org/2011/08/hosting-nodejs-applications-in-iis-on.html" target="_blank" rel="noopener"&#10; &gt;Hosting Node.js Applications in IIS on Windows&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://blogs.msdn.microsoft.com/hanuk/2012/05/04/top-benefits-of-running-node-js-on-windows-azure/" target="_blank" rel="noopener"&#10; &gt;Top Benefits of Running Node.js on Windows Azure&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Photo Credit : Piano Keyboard (&lt;a class="link" href="https://www.kpmalinowski.pl/" target="_blank" rel="noopener"&#10; &gt;www.kpmalinowski.pl&lt;/a&gt;)&lt;/p&gt;&#10;</description></item></channel></rss>