Azure Archive Storage

This week during our discovery session with one of our new customer and Azure Black Belt Team members we came to know about a new storage type called Archive Storage which is still in development phase.

It is also mentioned in the Microsoft Cloud Platform roadmap documentation which provides a snapshot of what Microsoft is working on in their Cloud Platform business. You can use the document to find out which cloud services are

  • recently made generally available
  • released into public preview
  • are still developing and testing
  • or are no longer developing

image.png

As per documentation,

Azure Archive Storage is a very low cost cloud storage for data that is archived and very rarely accessed with retrieval time in hours.  It can be useful for archive data such as medical reports, compliance documents, exchange mails, etc. that are accessed rarely but need to be stored for many years.

Currently Azure Storage offers two storage tiers for Blob – Hot and cool storage.

Azure hot storage tier – is optimized for storing data that is accessed frequently.

Azure cool storage tier – is optimized for storing data that is infrequently accessed and long-lived.

image.png

Azure Archive Storage is different than Hot and Cold because it’s in a way offline data storage. And that’s the reason if the Archive Storage data need to be accessed then it will be made online with retrieval time in hours. It will also be cheaper than Cold storage almost half price.

With Archive Storage there will be an option to apply a policy to move the data from hot or cold tier to Archive. For example, you can have an automated process based on a policy to move any data which is one-year-old to archive storage.

I hope archive storage type would provide an option to enterprise customers to store archival data in most cost-effective way in Azure.

Logic App to detect sentiment and extract key phrases from your text

Microsoft’s Cognitive services provides set of powerful intelligence APIs. These APIs can be integrated into your app on the platform of your choice to tap into ever-growing collection of powerful artificial intelligence algorithms for vision, speech, language, knowledge and search.

Integrating Cognitive Services into an application provides the app with the ability to SEE, RECOGNIZE, HEAR and even understand the SENTIMENT of your text.

In this blog post, I am trying to experiment with the Text Analytics API in Logic App. The API is a suite of text analytics services built with Azure Machine Learning to evaluate sentiment and topics of text to understand what user want.

For Sentiment analysis the API returns a numeric score between 0 and 1. Scores close to 1 indicate positive sentiment and scores close to 0 indicate negative sentiment. For Key phrase extraction the API returns a list of strings denoting the key talking points in the input text.

Cognitive Service account for the Text Analytics APIs

To build to Logic App to use Text Analytics APIs, first you need to sign up of the text analytic services.

  • Login to Azure Portal with your valid MSDN Subscription and Search for Cognitive Services APIs.

image.png

  • Create a Cognitive Service account by providing the details as shown below.

image.png

  • Make sure Text Analytics is selected as the ‘API type’ and select free plan – free tier for 5,000 transactions/month
  • Complete the other fields and create your account.
  • After you sign up for Text Analytics, find your API Key. Copy the primary key, as you will need it Logic App.

image.png

 

Logic App to detect sentiment and extract key phases

Logic Apps is a cloud-based service that you can use to create workflows that run in cloud. It provides a way to connect your applications, data and SaaS using rich set of connectors. If you are new to Logic App, please refer the Azure documentation for further details.

Now let’s create a Logic App to detect sentiment and extract key phrases from user’s text using the Text Analytic API.

Go to New >Enterprise Integration and select Logic App as shown below.

image.png

Create a Logic App by providing the details as shown below.

image.png

After our deployment success, we can start editing our Logic App.

To access it, in your left, browse All Resources > [Name of your Logic App].

Clicking in your Logic App will open the Logic Apps Designer. In welcome screen, there are a lot of templates ready to use. Choose a blank template from Logic Apps Designer

image.png

On Logic App designer, a search box is available where you can look for available Microsoft managed connectors and APIs available. Select the Request from the list which would act as a trigger to your Logic App and can receive incoming request.

image.png

Now we need to define a request body JSON Schema and the designer will generate tokens to parse and pass data from the trigger through the workflow.

We can use a tool like jsonschema.net to generate a JSON schema from a sample body payload

image.png

JSON schema for the above payload looks like below

image.png

Now use this JSON schema in the Request trigger body as shown below

image.png

Next step is to look for Cognitive Service API connector in the managed API list.

image.png

Select the Detect Sentiment  and provide a connection name and Cognitive Service Account Key which we have copied in the previous section and click on Create.

image.png

Now you need to provide the Text value to the Detect Sentiment API from “text” variable of the Request trigger as shown below.

image.png

Next step would be to add Cognitive Service connector for Key Phrases same way we did for Detect Sentiment.

image.png

Now we would use the Compose and Response action to send HTTP response for the sentiment and key phrase analysis.

image.png

This is how I have composed the response using a simple new JSON message using the variable “key phrase” and “score” from the Key Phrase and Detect Sentiment APIs.

image.png

You can also use code view to compose the response message as shown below.

image.png

And finally use the output of compose action to send the HTTP response.

image.png

So here is complete workflow look like

image.png

Quick and easy! Now once you save the workflow the topmost Request trigger will have the URL for this particular Logic App.

Now let’s invoke this Logic App from one of my favorite API testing tool, Postman.

I submitted the sample JSON message to the endpoint with following text – I had a wonderful experience! Azure cognitive services are amazing.

Sure enough, I got the key phrase and sentiment score as below:

image.png

image.png

Conclusion

Clearly Microsoft’s Cognitive Services are easy to use in your app on the platform of your choice. The Text Analytics API is just one of many different Artificial Intelligence APIs provide by Microsoft. I am sure this new platform would mature in the coming days and different types of app can leverage this technology.

 

References:

https://docs.microsoft.com/en-us/azure/cognitive-services/cognitive-services-text-analytics-quick-start

https://social.technet.microsoft.com/wiki/contents/articles/36074.logic-apps-with-azure-cognitive-service.aspx

Is it a Bird? Is it a Plane? No, it’s a Book #robustintegration

Few months back, I approached Abhishek  – 2 times MVP, for a quick interview and published it on my blog.  After that blog post Abhishek reached out to me and expressed his interest in writing a technical book about Modern Integration Solution using Azure. In fact he had already submitted his idea to PACKT publisher. He asked me if I would be interested in co-authoring the book. I found it as a great career opportunity and joined him immediately.

After more than a month of email communication with publisher PACKT about the book outline, they gave us green signal and also came up with the title of the book as – “Robust Cloud Integration with Azure”. They asked us to submit the detailed outline of the book in a week or so.

The book primarily talks about Microsoft Cloud Integration Technologies and how Azure App Services, PaaS platform can help you connect your applications, data sources and APIs in the cloud and on-premises.

Target audience for the book can be anyone who is interested and curious about developing apps for Cloud Integration Platform in Azure. Whether you work for a small start-up or for a large enterprise, this book can help you understand Microsoft Cloud Integration technologies to integrate application and business processes. By using this book, readers will be able to support their apps (web, mobile and enterprise) that connect to data anywhere – be it in the cloud or on-premises.

While preparing the detailed outline I and Abhishek reached out few people in integration community for the review of our detailed outline. We received lots of interested feedback and also surprisingly few people showed their interest in co-authoring the book. The idea of writing this book is to produce high-quality content which can be useful to its reader. I also thought if I pick any book and found it useful I really don’t care if it was written by one author or multiple. So it should really does not matter how many people teamed up to write the book as long as it solves its core purpose. So we went ahead and expanded our team with following great professional.

Mahindra Morar, @mmorarnzMahindra has a great expertise in Integration Space. In last few years he primarily focused on integrating systems as a principal integration consultant in Datacom, New Zealand. He also co-authored the book SOA Patterns with BizTalk Server 2013 (2nd edition) last year.

image.png

His areas of interest include exploring new technologies and deciding how to use them in the world of integration.You can view his blog at https://connectedcircuits.wordpress.com

 

James Corbould, @jamescorbould

image.pngJames also works in Datacom, New Zealand focusing on Azure and BizTalk Server and the surrounding Microsoft technology stack. He has designed and built integration solutions for a number of leading and well known organizations in New Zealand, across a broad range of industry sectors.

He is also a technical reviewer of eBook BizTalk Server Extensibility. Active in the community, James maintains a blog at https://jamescorbould.wordpress.com

 

Ashish Bhambhani, @ashbham

image.pngAshish is Integration Sr. Premier Field Engineer with Microsoft living in the Los Angeles, United State region. He has been working in the integration space for more than a decade. In his current role he helps Microsoft’s enterprise customers with architecting, designing, building and maintaining their integration solutions. He has worked with some of the world’s biggest customers for Microsoft in the integration space.

I and Ashish were in the same team when I was a PFE in Microsoft, India.

We have already started first couple of chapters and would be finishing and submitting them for review to PACKT. We are looking for the reviewer for our book. We are talking to few great experts in integration community including someone from Microsoft Logic Apps product team.

image.png

We are keeping our fingers crossed to finish this book with high-quality content to be released by end of this year.

Note: If this seems to be exciting to you and you are interested to be a reviewer for our book, feel free to reach us at #robustintegration.

Logic App Templates

Logic App Templates  are a set of curated pre-built Logic Apps to help you quickly get started building your own integration application.

You can find these templates in the Azure Marketplace under the Web + Mobile category and then you can search for “Logic Templates” which will show you a list of all of the logic app templates.

image.png

The intent of these logic app templates are to help you better understand patterns that can be used in logic apps. This would be really helpful for people coming for BizTalk background to understand which all BizTalk integration scenarios / patterns can be achieved using Logic Apps.

image.png

These templates show how to use some of the many connectors available in the marketplace as well as being a good way to discover various patterns that can be built using Logic Apps. You can either use these as is or modify and them to fit your scenario.

image.png

The logic app templates are intended to be used by anyone who is planning on building their own logic apps. They range from simple scenarios using your everyday consumer SaaS and productivity services such as Facebook, Twitter and Office365 to complex scenarios doing Hybrid Enterprise Integration including connecting to SAP, SQL, using messaging protocols, message transformations and EDI. They can be used to either to discover different integration patterns and learn how they are done or as a starter template that you can just modify and start using.

There have been lot of session in last couple of months delivered by product group to help people to under the concepts of Logic Apps. Last week product group also started a community webcast for Azure Logic Apps, hosted by the Logic Apps PM team.

image.png

Resource:

http://azure.microsoft.com/blog/2015/06/25/getting-started-with-logic-app-templates/

https://gautambiztalkblog.com/2015/06/18/exploring-and-evaluating-azure-logic-apps/

https://gautambiztalkblog.com/2015/06/28/logic-app-concepts/

Logic App Concepts

Logic Apps is the part of the new Azure App Service which is a fully managed PaaS (Platform as a Service) for developers that makes it easier to build web, mobile and integration apps.

image.png

Logic Apps provides a new way to automating business process and running them in reliable way in cloud. Anyone who can use Azure should be able to start building long running business process that orchestrate data and services across cloud and on premise data centre. It is a browser based workflow engine that makes integrating disparate data sources, from cloud to on-premises easy.

image.png

So Logic Apps are basically a foundation of connectivity which provides very slick orchestration engine that allows you to build integration solutions using different pieces available in Azure App Service.

image.png

 

 

The following are some of the key pieces that comprise the Logic Apps experience.

Workflow

Logic Apps provides a graphical way to model your business processes as a series of steps or a workflow. It’s a visual designer where you can bring in logics from many different places and put them into a common surface to create your business process work flow.

You can check this demo by Josh showing how you can create a simple work flow to get a notification message on you mobile if a new customer is getting added in your Salesforce application.

image.png

If you come from BizTalk background you can relate this to orchestration where you can use different shapes to create a business process workflow.

Orchestration is much more powerful and have lot more features. Product team has announced that they are working on to bring most of those features in Logic Apps.

image.png

 

Connectors

Your logic apps need access to data and services. A connector is a special type of API app. It is created specifically to aid you when you are connecting to and working with your data. See the list of available connectors as of now.

image.png

    • Social Connectors: Facebook, Yammer, Twitter, Chatter, Twilio
    • Enterprise Connectors: Salesforce, SAP, Marketo, QuickBooks, SugarCRM
    • App + Data Services: Azure Media Services, Azure Mobile Services, Azure Service Bus, Azure Storage Blog, Azure Storage Table, Azure WebJobs, Box, Dropbox, HDInsight, Microsoft SQL, Mobile App, MongoDb, Office365, OneDrive, Oracle Database, Sharepoint
    • Integration: AS2, BizTalk EDIFACT, BizTalk Flat file encoder, BizTalk JSON Encoder, BizTalk Rules, BizTalk Trading Partner, BizTalk Transformation Service, BizTalk X12, BizTalk XML Validator, BizTalk XPath Extractor, Informix Connector, MQ Connector, Wait
    • Protocol Connectors: File, FTP, HTTP, POP3, SFTP, SMTP

All these connectors are technically API apps that uses a metadata format called Swagger and REST as pluggable interfaces and JSON as the interservice data format.

Swagger, most popular metadata format, is a specification for documenting REST APIs. It is language-agnostic so there are different implementations for different platforms.

In Azure API Apps, Microsoft adapts Swashbuckle to implement Swagger2.0.

By the way, if you don’t find any API App for your solution in Azure Marketplace, you can create your own custom API App.

image.png

So API apps in Azure App Service make it easy to develop, publish, manage, and monetize APIs. If you have some capability you want to expose as an API you should deploy it as API App and benefit from scalable RESTful API with enterprise grade security, simple access control, automatic SDK and Access on-premises data using Hybrid Connections.

You can bring your API as-is. You can use ASP.NET, Java, PHP, Node.js or Python for your APIs. Your APIs can take advantage of the features of Azure App Service with no changes.

 

Triggers

Some connectors can also act as a trigger. A trigger starts a new instance of a workflow based on a specific event, like the arrival of an e-mail or an insert of new record in the table of your database or a change in your Azure Storage account.

There are following 4 types of trigger are supported as of now:

  • Recurring Schedule – “every X minutes”

image.png

  • Polling an API for a response
    • A 200 response means “Run”
    • A 202 response means “Wait”
  • WebHook – Every workflow has an endpoint you can POST to from any service
  • Registering an API App to “push” to a workflow – using a custom contract implemented for API Apps

You can also trigger a Logic app manually by clicking on “Run Now” button in portal.

image.png

 

Actions

·Each step after the trigger in a workflow is called an action. Each action typically maps to an operation on your connector or custom API apps. Actions can have dependency and they can be executed based on the condition like success or failure of the previous action.

image.png

3 ways to introduce dependencies between actions:

  • Implicitly – whenever you reference the output of an action you will depend on that action execution first.
  • Explicit “dependsOn” condition – you can mark certain actions to run only after previous ones have completed.

image.png

  • Explicit “expression” condition – a complex function that evaluates properties of other actionsimage.png

If there is no dependency between actions then they would run in parallel. In this demo there is no dependency between Twitter and Dropbox action and hence both get the same message every time a new post is posted on user’s Facebook timeline.

image.png

 

BizTalk

For more advanced integration scenarios, Azure App Services includes capabilities from BizTalk. BizTalk Server is Microsoft’s industry leading integration platform. The BizTalk API apps allow you to easily include validation, transformation, rules and more in to your Logic App workflows. Find out more in what are BizTalk API apps.

BizTalk API Apps also bring the EAI and B2B integration functionality to Logic Apps. Watch this session by Prashant where he cover how you can work with XML data in Logic Apps, receive, process and send B2B data and use the new Rules Engine to implement business policies that are a part of your logic.

Resources:

https://azure.microsoft.com/en-in/documentation/articles/app-service-logic-what-are-logic-apps/

https://gautambiztalkblog.com/2015/06/18/exploring-and-evaluating-azure-logic-apps/

Exploring and Evaluating Azure Logic Apps

Azure App Service was announce almost three months back on 24th March but the word “Microservice” had got popularity and gained new interest in Microsoft integration community just after the Integrate Summit  in December last year.

Josh Twist who has recently taken over a product manager role in the Integration area at Microsoft introduced Azure Logic Apps in Azure Friday where he shared how this new service can help developers to automate the access and use of data and business processes across your web and mobile apps.

image.png

He was supposed to do the keynote session in BizTalk Summit 2015 but was unable to make it, so he shared some of his thoughts and offered a Q&A in Integration User Group Event.

image.png

Apart from Josh there are other experts from the product group and from community have shared their thoughts in different events like Build 2015,  BizTalk Summit London, Microsoft Ignite  & Integration User Group

So I have put together a list of all the sessions for anyone who is interested in exploring and evaluating Azure Logic Apps for their integration solution.

image.png

If you have any feedback or ideas on Azure Logic Apps you can send them to Product Group team at http://feedback.azure.com/forums/287593-logic-apps

Related Links

https://channel9.msdn.com/Events/Build/2015/2-628
http://www.biztalk360.com/biztalk-summit-2015-london/
https://gautambiztalkblog.com/2015/04/06/integrate-facebook-to-twitter-and-dropbox-using-azure-app-service-logic-apps/
https://gautambiztalkblog.com/2015/04/10/api-app-in-azure-app-service/

Are you interested in a new challenge?

Challenge.png

Challenge

Imagine a rabbit that can either jump of a distance of 2 or walk a distance of 1. How many different ways can the rabbit cover a distance n?

Create a program in your choice of language that takes n as an input and returns the count of ways.

Create a simple UI for the user to input the distance and view the result.?

You can use Azure free developer trial to implement the solution.

 

Deliver

A description of the algorithm used and performance thoughts.

How you have tested this code?

Share the Web App URL.

You can also create an Azure API app that takes n as an input and returns the count of ways.

 

Note

This Challenge is actually created by David Burg