 Okay. Great. Good afternoon. Thank you guys for coming. So obviously this session is a workshop. We did a quick introduction yesterday. We did a keynote kind of stuff. It was a bit rushed. We were tight on time. We'll essentially be covering similar stuff here, but we'll be going into much more details. We'll actually do the code walkthrough, going through the code, seeing how it is set up and stuff like that. Any questions more than welcome, please interact, jump in, ask questions, and we'll see what is best fitment that we can do. Quick agenda. We'll go through a bunch of stuff. Again, we have an agenda, but if you guys have questions slightly outside of it, given the time constraints, we'll be more than happy to discuss those as well. Quick thing that we discussed yesterday, lighting up of your Android apps. So you come back and build an Android app, you come back and build a Java app, you come back and build a game, you come back and build a traffic monitoring app, whatever it is. You think of a great business scenario, but to enable this, you need a whole bunch of backend services. So one of the first things that you do is you come back and start consuming a bunch of backend services. We're talking in this case about Azure. Azure, sometimes there's a perception that it's a Microsoft technology. We have to use Microsoft platforms or Microsoft programming languages to code and stuff, which is not necessarily true. You can come back and continue to use the languages that you're comfortable with. You can come back and you continue to use the platforms that you're comfortable with in most instances. So as an example, backend services, you can come back and build the entire backend services using a node.js. We give you a mobile services, which is a service out of the box, but you can also come back and set up a complete website using node.js, doing the entire configuration in node.js and take your entire code that you had today and migrate it onto the Azure platform as well. So you can come back and continue to harvest backend services using either.net or a node.js kind of a platform. Once you have this kind of a backend, you can choose to talk to different kind of a data stores. One of the first challenge that happens is we want to come back and work with data. I want to have a to-do list. I have a corporate app. I have some other stuff. I want to store data. I want to pull in data. Data, you have a choice. We do give SQL server. Obviously, you do have choices of Oracle or virtual machine kind of stuff. You do have the option and I'll talk quickly about that wherein you can choose not to use a relational database at all. You can come back and say, I just have a JSON object. I want to store it in a blob or a table kind of format, but I want it to be understandable. I want it to be queryable. So you can come back and choose multiple different kinds of storage implement it instantly and quickly get started with it. You can also come back and use a whole bunch of big data kind of a scenarios, no SQL kind of a scenarios wherein you can use something called HD inside, which is a Hadoop kind of an instance or something like MongoDB to come back and say, I will use my node services to talk to those kind of a data storage and harvest them. The moment you have got plugins into those kind of a data storage, you pretty much have the entire span. Whatever you can connect to any kind of a data storage that you can connect to is something that you can come back and start working with. And remember your front end is still we are looking at it as a mobile device in terms of what you want to target. You get a whole bunch of additional services. So the challenge is putting up your first app, talking to a data, talking to a database doing a crowd operation is relatively easy that after that you start facing a bunch of challenges, right? Authentication is one of them. We do want to some kind of an authentication. You want to come back and say in a Facebook authentication, Twitter authentication, Google authentication, Microsoft live ID authentication, etc. In many instances, you also want to take your app and target it to corporate users who already have their own setup, active directory setup, etc. And you want to come back and say, I want that authentication as well so that I can come back and cross sell it to my corporate customers. So touching upon services like authentication, like notifications, etc. Is something that you have to end up writing a lot where in Azure comes back and gives you a whole bunch of these services out of the box. Quick note here. We will be talking of some of these services, but these services are pretty vast, right? There's a whole bunch of these services in Microsoft keeps adding on newer services on a regular basis. Media services is one of them. It seems for people who are not very familiar with it, it seems not too big a challenge. But as you get into it, multiple encoding, live streaming of the video coming back and having multiple different bit rates, targeting multiple devices in terms of how you want to deliver it, whole bunch of server side challenges, right? And all of these become services that are given for you, right? So in many instances, the benefit more than the initial structure that I talked about, which is, you know, having a service talking to data kind of stuff that you pretty much can do anywhere. It's a quick starter on Azure. But the moment you start seeing a whole bunch of other services, that's when you realize that, you know that is something that will help us a lot. Most people end up benefiting from one of these services and it's one of these services that pull them in. Somebody needs a media service, which is what pulls them into Azure. Somebody needs push notification services. That's what pulls them into Azure thing. So a whole bunch of these services is typically what gives you a lot of value add when you want to come back and look at adding onto this platform. As part of all of this, one of the things that you can also do is you can come back and connect to the whole Microsoft stack Office 365 one node, Skype, Yammer, et cetera. Again, typically in use for corporate customers, right? So we had this customer who was building a project management kind of an app, completely non-Microsoft technologies entire company had never worked on Microsoft technologies, but they had this Android app. They had this, you know, JavaScript web based app for project management and they had their entire set of services, agile project management kind of stuff. But when they interacted with customers, the customer came back and said, I have all my project data already in my enterprise ERB store, right? I have all my users already in active directory. I don't want to sit and replicate all of that. I already have a bunch of documents in SharePoint. So while I love your app, I would want it to come back and integrate with other pieces in my enterprise. So if you want to come back and integrate with other pieces in the enterprise, that is also something that Azure makes it quite easy and simple for you. Along with mobile services, like I told you, we have notification services. Sorry, we have notification services. We'll talk about that. That's one of the big pushes gives a lot of value add and works with multiple different providers. So we can deliver notifications to the Windows platform, to the iOS platform, to the Android platform, etc, all from one single hub. And that's a very largely scalable hub for you to come back and work with a notification kind of scenario. Now, when we're talking of the cloud, there are three aspects to the cloud. And if you're familiar with cloud, I can probably skip this, but I'll give a quick introduction. If anybody has questions, we can go a little bit more deeper into it. Microsoft started off in terms of offering SaaS services. This is what everyone does, a Gmail, a Hotmail, Outlook, etc, are all SaaS services. Microsoft nearly four to five years ago introduced a whole bunch of SaaS services, which is what Azure was. So Azure came back and said, you know, you've got a website, you've got a SQL database, you've got a notification services, you've got a mobile services. Initially, that is something that didn't pick up too much, right? Because people were already used to working in a certain way. Today you had a Linux box. Today you had a Windows box. You were developing a whole bunch of applications on that. Moving became a pain. What happened was Microsoft also came back and introduced IAS. IAS is infrastructure as a service. When you come to infrastructure as a service, you essentially get a box in the cloud. The box can be Windows. The box can be Linux. The box can be any operating system that you want which is supported. You can choose your own customized version of an operating system. You have Oracle boxes online. So you pretty much can come back and set up any kind of a box that you want. So if you quickly look at Azure infrastructure, when you log on to Azure, you get the whole dashboard. As part of the dashboard, you have a bunch of services that you can come back and work with. One of these is what we call as a virtual machine. So you come back and see new compute still loading. Virtual machine from Galway. So if you look at it, we have Ubuntu, we have CoreOS, we have CentOS, we have Suze, we have Oracle, we have puppet labs. So when you come back and take a look at it, the infrastructure is not limited to the Microsoft platform at all. It's a box in the cloud. And you can pretty much come back and implement any box in the cloud. So most people came back and said I am familiar with a certain way of working. I will come back and move my box in the cloud and I'll get a lot of scalability benefits. And that was one of the first movements. That's what got us critical mass. In fact that's true most other places when you go to Amazon, you get a box in the cloud. But you also need to understand that when you're talking of IAS infrastructure, you get a bunch of cloud features, but you still are looking at the OS, the way it was putting it up there. You still have a lot of work to do. A step behind or a step better than the whole IAS services is what we call as past services. So in past services, what we do is we come back and give you a bunch of features. So we give you a SQL database in the cloud. We give you storage in the cloud. We give you media services in the cloud. You don't necessarily get an OS. You don't do an RDP. You don't connect to it. You don't work off it. But internally behind the scenes, it's still a virtual machine, a virtual machine which gives you one service and that service is extremely fine tuned to deliver what it promises. That's the whole concept in terms of benefits of using something of a past services. Other advantage of a past service, past service is always upgraded from the back end. It's always on the latest version. Compatibility is maintained. Rarely anything breaks. So it sort of evolves and you get to evolve with it as you go ahead. And also from a cost perspective, it is dramatically cheaper than the IAS services, right? Typically one tenth kind of a stuff. So thought process, we are primarily looking at a whole bunch of past services that we can come back and work. Microsoft offers a bunch of past services, right? So you can come back and say, I want to work with websites. I want to work with mobile services. Like I told you, all of these are things that you can use cross platforms. Even when we say websites, you can have a node.js implementation, implement a website with that, open it up as a service, restful service and consume from your apps. Across all of these, you have the option in terms of getting a scalable platform at the back end. So you can come and choose that I want to start with the free stuff. I want to move up to a basic environment. I want to move up to a standard environment. I want to downgrade it. You have choices of adding on more compute power. You have choices of scaling it out to multiple geographies. So all the benefits in terms of moving on to the cloud is something that you get automatically configured for all of these past services as well, right? Something that you should look at and that's pretty much available across most of the cloud providers. So that's typically the reason in terms of why you would move to the cloud. Quick questions and comments. Has anyone looked in terms of moving to the cloud? Any quick questions around Azure per se? Anybody tried Azure? Anybody tried any other cloud services, Amazon, Google, which ones? Amazon, right? So you're comfortable with Amazon. So you get similar kind of features wherein you can come back and scale and stuff. Obviously there are minor differences which you can come back and harvest, right? But using the service in the cloud is something that gives you a lot of flexibility in terms of what you want to do, right? That's primarily the objective there. Let's take it forward in terms of specifically how do you build for Android? Okay, high level. There are three ways you can come back and use your, you can continue to use your platform, which is a native way of developing using your Java kind of stuff. Eclipse plugin come back, developing Eclipse, publish it to your Android app kind of stuff. You have the option of a hybrid using something called PhoneGap wherein you can build your user interface with HTML5, but you can come back and say I want to now put it onto a mobile application, right? Advantage with things like PhoneGap is the fact that you can come back and say, you know, I will port it to iOS, I will port it to Android, et cetera, et cetera, right? A third option is Xamarin, right? It's no longer called Mono. It's Xamarin. So basically you can come back and use something like C-Sharp to again come back and say I will use C-Sharp as a development environment and port it to one of these different kind of a platforms, right? Quick set of development tools. You have multiple choices. We'll talk more about this later. So you do have multiple choices from a development platform kind of a perspective. Now let's take a quick look in terms of using Eclipse. How do I go about building an app on Azure? I attempted this yesterday and I got some errors, so I'll attempt it again today. I'll start off in terms of saying I want to build a new mobile service. Troidcon BLR. I will create a new SQL database say East US server. So essentially what I'm doing is I'm coming back and creating a mobile service which is a front end for the mobile app and I'm creating a database at the back end for that. The moment I do this wizard based configuration, it creates a front end for me, creates a back end for me, connects both of these in terms of connections, string security, passwords, etc. and gives me a up and running site which I can come back and consume for my mobile services. How are primarily mobile services different from websites? A very subtle difference websites has a user interface, HTML page, etc. It's configured for people to come back and visit your website. Mobile services are primarily back end services. They open up a restful interface wherein you come back and say you consume these services but by default there is no direct user interface hosted out of that, right? Subtle kind of a difference but essentially that's at a high level what it does. Most operations as part of Azure happens as part of a background async process so you can come back and configure multiple stuff. You can start servers, you can start other operations and it goes on and it tells you what are the status once it is done. So it will take a minute or so to configure it. Like I was quickly mentioning yesterday once it does that what it does is it gives you a quick starter kit wherein you can come back and say pick the mobile service, come back and say create a default table and say give me a Eclipse project for it so that I know the entire shell structure for me to come back and quickly get started, right? So that's something that it sets up in the background. Once it sets up the basic structure you have an app, you have the service at the back end and you have all the pieces for you to get started, right? Then it's a matter of coming back and adding more tables, adding more definitions in terms of storage and scaling it up. You do have an option wherein you can configure it for dynamic table columns wherein you come back and say as a JSON if I send you six more columns create those columns and store it in, right? So I don't have to do a table design up front, right? It's something that's commonly in use especially if you're using a ORM kind of a tool, especially if you're using a dynamic kind of a storage it allows you to come back and add columns on the fly as and when you want to come back and store it. Give it a minute. Successfully created. I will take this. I will say that I want to target Android. You do have starter kits for others as well so you can come back and choose what is the kind of starter kit that you want. I will come back and create a default table for me to get started and I will download an app session. So I just wanted you guys to get a perspective in terms of saying if you want to get started how do you go about doing that, right? Now I will go to my clips. I will come back and import an existing Android project this in, okay? So it gives me a start up project if you open up the source you get three things to do activity to do item to do adapter to do item and to do adapter are just wrappers if you go to the to do activity that's where the logic is in terms of all the method calling and one of the things it has which is pre-configured for you is the URL that you're using and a key. So if you were doing this manually what you would have done is you would have got the URL from the application, right? So it comes back and tells you what is the URL that you want to work with and you would have gone to manage keys and taken up the application key and configured it there. So these are two entry points that you need for your app to come back and connect and when you use the sample site that sort of automatically gets configured for you. So you know just add those keys in there and get started with it. So I will do my attempt at deploying this, right? So it deploys to an emulator and I can come back and say now I have the emulator I now should get all the pieces I can come back and start working with it quick note here, right? The moment we come back and set up an application, one of the first things that we are challenged with is to come back and use some kind of a data services the back end. How many of you work with different kinds of data stores? What are the kind of data stores that you work with? Relational, non-relational what kind of non-relational? MongoDB, right? MongoDB. Other than MongoDB? Okay. Anybody who works with files a lot media files, files, objects, blobs, storage kind of stuff. Not much? Okay. So you have both the choices. You know relational is one option in most instances. Relation is not necessarily the best option. MongoDB is a classic example in terms of people coming back and saying that you know we want a no-SQL kind of a database and we want to come back and store data as part of it especially if you have got things like a survey with a whole bunch of tags, right? A dynamic kind of a data, things which are very flexible. It makes a lot of sense to use a no-SQL kind of a database, right? First item one of the things that Azure also gives you is it gives you what is called as a table storage, right? A table storage is an inbuilt structure when you come back and say I want to create a table, treat it like a flat file but it's a structured flat file, right? So I send a JSON object, it stores the entire JSON as it is and makes it queryable for you, right? So you can also come back and that's a very lightweight kind of a stuff. That's something that you can use and you can also use Azure storage for a lot of heavyweight objects like files, documents, media files. I want to have database backups, right? Where in each of them is 150 gig, right? Each of them is one gig kind of of stuff but I want to organize all of them. I want to tag all of them. I want to query all of them. I want to search through all of my backups that are there. So you can go all the way through small files up to extremely large files as part of working with the storage, right? And across working with all these file systems kind of a stuff you can also come back and use relational database and you can use MongoDB, right? No SQL kind of a environment system. Now, I came back and added the item here. If I go back to my app, my mobile services app, right? This is the droid con. I have a data section. I have a to-do list item, right? You will notice that that data is visible to me here, right? This is where I come back and do all my work with data. Now, this data is very open right now. I can come back and configure my columns. I can come back and work with permissions. I can work with scripts. The scripts are the equivalent of back-end triggers. It's not necessarily a trigger but it's more like saying if I save some data behind the scenes come back and do something with it, right? And we'll see an example of that when we want to do notifications when we want to do some other operations. We'll come back and take a look at that, right? So you have a structure wherein you have an app. You have the app talking through a restful kind of interface. You are getting the app to come back and push data. It stores data in a structured format. As part of this data, you can work with permissions. You can work with a back-end logic. In most instances, you will use this when the logic is very simplistic, right? Not very complicated kind of stuff. You can come back and use something like this and get started with the whole set of services, right? Any questions? Any comments so far? Now let's come back and start enhancing this, right? Let's come back and say as an example, I want to add authentication services, right? I want to come back and say I want your app to use a Google authentication and I want people to log on with a Google authentication and then use my app, right? So I want to add on authentication services. Authentication services works in two levels. First, I log on to my Google account, right? I go to accounts.google.com I log on. I come to my Google cloud console when I come back to cloud.google.com and here I start creating a bunch of projects. I create an API project and for the API project, I define my authentication, right? I define what is my OAuth. So I create a new client. I come back and say what is the type of client where am I going to access it from, etc. And once I create a client in my case, I've already created a client. I've come back and said this is where I'm going to access it from. This is the redirect login and I have a client secret. So I have a client ID and a client secret, right? So when we work with authentication, we configure this on the Google side, right? And come back and say this is the trusted app. So even though you're using an Android app, we are coming back and saying as part of the Android app, I talked to my server which is hosted in Azure as part of mobile services, but because it needs authentication, please redirect me to the Google stuff. It'll pop up its own authentication dialog box. I will authenticate myself. It'll get a key back and I will continue, which essentially means you're not storing user IDs in your system. You're not storing passwords in your system. You're not doing any of that in your system, right? So you can set up something like that. Once we do this, I will go back here, take the example of the authentication stuff. For me to ensure that my system needs authentication, I will go to data. I will go to permissions. By default, the permissions is configured to come back and say anybody with a valid app, anybody with a my key, that I showed you before, come back and allow them to do what they want. But if I want to enhance that, I can come back and say only authenticated users will have insert update delete permissions. So now what the system does is it says that for you to work with any of these features, I need you to be authenticated. How it's to be authenticated, you tell me what is your choice, but user IDs and passwords are maintained in that authentication system and I will use that to come back and log on and continue my operations here. Come back here to do this. Now for us to know that our backend system uses what kind of an authentication, we have a section called identity. So when I go to identity, Azure gives me an option to come back and say Microsoft account settings, Facebook settings, Twitter settings, Google settings. So remember I told you about when you log on to Google and create a client authentication ID, you create a client project API project, it gives you a client key and a client secret. You come back and enter those here, you enter the client ID here and the client secret here. That's how Google authentication knows that this is a system from this URL will come back and make a request to me and I have to honor that request. The logic is pretty much the same in everything. So whether you're using Facebook authentication, Twitter authentication, etc, you go there and come back and define an app. It gives a client ID and a client secret. You come back and configure the equivalent of that here and that's how the two systems trust each other. But like you mentioned before, what you can also do is you can come back and extend this to Active Directory and Microsoft accounts as well. Microsoft account is the live account. Windows Azure Active Directory is the corporate Active Directory. There are two levels from Active Directory perspective. If you're looking at a company which does not have Active Directory infrastructure today, but would like to use it as part of Azure, you've got Active Directory services. Turn it on, create a bunch of authentication, create a bunch of users. You can get started with it. It's a session all by itself. This is your whole bunch of permissions gives you a whole bunch of features and you can choose whether you want to use it or not. Second, which is the kickstarter for most people is I've got an enterprise which is already using Active Directory in which case I want to come back and integrate with that. So one of the things that Microsoft has done is all the newer versions of Windows as part of Active Directory already support OAuth. So you go to your enterprise existing installation of Active Directory. Come back and right click and say I want to enable it for OAuth. You get a similar API URL and a client ID and allowing of multiple tenants. So you come back, take that client ID, configure it here. Now what will happen is the moment you come back and hit your cloud service, it goes back against your enterprise Active Directory authenticates you and then comes back and takes you forward as part of working with the application. When I go to my to do application and I set it up for authentication I define here what is the authentication provider to be used that typically what you'll end up doing is you'll put multiple buttons. You come back and sign in with Google sign in with Facebook sign in with Twitter, etc. Sign in with Google. You'll come back and say use Google as a provider sign in with Facebook. You'll use Facebook as provider so on and so forth. Right? So you use each one of these to come back and work with that quickly do this again. Did set up the authentication back in right? So if I've done all my configurations, right, what it should do is it should pop up a dialogue for me in terms of saying, you know, use your Google credentials and based on that log in and then take the whole thing forward. I'll have to check why it's not popping up. Right? I think I registered this device with my Google ID, right? So which is why it probably comes back and says, you know, it's already registered and so it's taking forward, right? I'll quickly change the configuration. Check it out. But logically this is where you come back and start adding on authentication kind of a definitions. Now let's take a look at one extension to this. One of the common scenarios that people come back and look at is push notifications, right? Multiple examples of push notifications. I want to come back and notify users. It could be as simple as an information that I want to give saying there's a new version of the app, something has changed kind of stuff. It could get as complex in terms of saying that, you know, there is some event right now and I want to notify you right now. Notifications can be as effective as your flight has got delayed now, right? You had a flight in the next half an hour, it's got delayed. There is an information that I want to push to you. There are other examples. For example, there is an IPL match. It's either got delayed or canceled or changed and I want to notify all the people who have got tickets immediately at this point in time, right? One of the challenges in a push notification kind of a scenario is the fact that we want to send out a blast push notification to multiple different vendors, right? Typically when you come back and do something like this, how would you do it? Anybody implemented notifications as part of their apps? So how do you logically do something like that? Okay, right? But how do you trigger the notifications? So you use some kind of a local script to come back and say, you know, I will as part of my logic, I will pull it up, push it to C2DM and then it will push the notifications. One of the challenges that we have is the moment you run a local script, the moment you run your own logic, right? It takes a while for it to run. So if you take an example of saying I want to send out a notification to 10,000,000 people now, right? Just for your script to look at your data in a loop, come back and push it out to the notification engine itself takes a lot of time. Notification engines are already in the cloud, they scale, right? That platform is already there. But the source entry point for us to come back and create this notification itself takes time, right? So there are examples wherein, you know, by the time we start sending notifications 1.5,000 people by the time we finish that sending process itself takes over 4 to 6 hours, in which case the whole notification becomes useless and void, right? What Azure does as part of the whole notification engine is it uses the concept of a notification hub, right? So the moment you come back and say as part of my mobile services, I want to do a push notification. In the background, it sets up a notification hub. A notification hub is a server-based, Q-based platform. It's a service-based-based platform. Where in the moment you come back and say send notification asynchronously, it accepts it, right? And it decides how to scale out and how to send, right? Which means I can actually take a lakh and a half, you know, notifications that I want to send, send it to Azure in terms of saying this is the notification I want to send. It will accept all of that within a few seconds, right? It now raises multiple events to come back and target what are the different notification hubs I want to connect to and how to actually deliver all of these notifications, right? So depending on a performance kind of stuff, you can actually in around, you know, a few minutes or so deliver lakhs of notifications across multiple user bases, right? How do you go about setting it up? On the Google side, you come back and define a public API access method. So you define your API key and how you want to connect to it. On the mobile services, you come back as part of the push definition, you configure saying I will use the Google Cloud Messaging Services, right? So I will use the GCM infrastructure for me to come back and define the key here, right? And remember the script I was telling you about? So you then go back to the script as part of your data, right? And as part of the script, you define saying that whenever I get an input message or whenever I get some kind of a logic based on which I want to trigger, I will now come back and here do a push.gcm.send where in because I know the GCM key, I will come back and configure this and send it out. You have multiple options as part of the whole notification hub. You are not limited to just using the GCM platform. You can choose to use the Apple platform. You can choose to use the Microsoft platform. So you can choose to come back and say I will deliver my push across multiple different platform notifications all as a hub. In fact, one of the scenarios you could continue using your existing backend for your mobile service and you could integrate that with just the notification hub. So you don't need to move your entire mobile backend to Azure. You can come back and say, I already have my setup. I already have my data center. I already have the entire thing hosted, but for me to scale up on my notification instances, I will just take that piece, connect it onto the notification services and come back and say I want to notify a few million users at a point in time. That's how you come back and you can connect to it. So you can configure Apple push notification. You can configure Windows phone notification, so on and so forth. Yeah. Right. And then change it to GCM. Right. And the whole code whatever is written is to be changed. So in a funny way, while that's not a direct benefit that we offer in a funny way, that's a value that you get in the sense that because you're using this testful service, if Google decides to change its notification services, the backend, Microsoft will come back and update Azure for the new set of services. You, as long as you're talking to the notification hub are still abstracted from that. Right. So in that sense, that makes it slightly easier. Right. But that would be true of any other service provider which connects to GCM or connects to services. Right. What's the scalable model here? So one of the things, you know, I'll quickly show you the notifications hub notifications hub is technically independent of your mobile services. Right. So if you go to the notification hub, you can use the notification hub as an independent service which got nothing to do with anything else. The notification hub is event based. Right. So rather than, you know, coming back in a loop and saying, you know, for each send kind of a stuff, you can come back and say, I have these, you know, so many records. I want to push it up there and asynchronously. Now you raise events. So if I send 10,000 records to it, it'll accept 10,000 records and internally it will raise 10,000 events saying these notifications are now to be delivered. And because it's a cloud based service, it scales to handle all of these 10,000 events and triggers of what is the kind of notifications to be sent. Okay. So two different things. Right. In the example that I gave the bottleneck was sending. Right. The moment I come back and say, I want to send one by one. And that is true whether I connect to a GCM or whether I connect to a Windows notification platform, even if I connect to a Windows notification platform and I say, one by one, send out these notifications. It's going to take me a while just to send out the notification. Right. The concept of the notification hub is the fact that it scales. Right. Now the problem that it solves is not just the scalability factor. There are two other things. One, you want to deliver to multiple different notifications. Right. Second is you want to target notifications. Right. So a simple example is I sent a notification to you. I don't know whether you have read it or not. You don't know that you've got multiple platforms. Right. Now I can come back and say, if I don't, if I know you haven't read the notification in say 15 minutes, send a notification to another platform. Right. So the logic and the value behind it in terms of targeted notification is the value that it provides along with scalability. Right. So that's the problem that it's trying to solve that will have to be done by you. There'll be some trigger point. Right. So as an example, you can set up a job. Right. So you have to listen to the notification. So I can come back and push it. Make a generic base for that. Which with name and that's good. I got it. You know how to stay in the end. You get a name. You go to color. I have the value there and it's clear. Sending to regular. And what you're trying at, this can help you. You're working with a person that's a major. Right. Now. We just got back. You. Right. So. You're working with the same. Right. So. You're working with the same. Right. So. So. So. So. So. So. So. So. So. So. So. So. So, you can think of it in three ways, there are three problems from notification perspective that it solves, one is performance from a sending perspective, a rules engine and a delivery. Performance from a sending perspective, you still need to do the work of saying pick data and send to the notification hub, right? But because notification hub is event based in asynchronous, it can receive millions of records pretty much instantaneously, right? Second, like he mentioned, you take this run through a rules engine wherein you come back and say, do I want to target in French? Has somebody come back and said send me notifications only in the morning? Has somebody come back and said, don't disturb me at this point in time? Do we want to do something like a multiple retries? So you have a rules engine based on which you can come back and configure what is the kind of notification that you want to target? And third is delivering across multiple different platforms, right? So that sort of becomes the engine in terms of what notification hub gives you from a benefit perspective. You also have that small benefit in terms of saying if the delivery platform changes some definition as part of the notification hub, that's something that we do as part of the infrastructure because it's a past service, right? So you're safeguarded from that perspective as well. Somebody else had a question here. No, no, so, right? So like you mentioned, it's extensible. So if you want to come back and say I want to do web based notification, you can come back and implement a signal or send to that and signal or can come back and notify you on the web, right? So it's an extensible platform. You can add on multiple extensions to it, right? We shake you won't come up and set up your machine. So quick summary. I had a bunch of slides around the whole stuff, but essentially you have the option in terms of coming back and saying that there's a bunch of services that you can use. And as part of all of these services, you can leverage, you know, the Azure backend services, all the benefits of scale, all the benefits of performance, all of that is something that you can get. One last thing I wanted to mention while he's setting it up is Azure also gives you a complete environment for managing your development. So as an example, you can come back and say, I have, I have maintained all my source in GitHub, right? Or in some other Git repository, Azure gives you the benefit of coming back and saying I will do a regular continuous integration deployment from Git direct to Azure, right? So it also has a whole bunch of development tool support where you can come back and say, you know, I have a backend system. I come back and maintain all of that repository in Git. I go through a continuous integration in the cloud. I go through a continuous deployment to the cloud. I deploy it here. I can get multiple staging environments. So I can get like environment one, two, three, four, when I say environment one is a test environment, right? Where in it'll get deployed, but it's not yet hitting production, right? Environment two is an upgrade to that, when I come back and say, okay, for some of my users, it's been upgraded. And that's the environment that they use, right? So I can set up multiple environments and I can set up the equivalent of a continuous integration or continuous deployment kind of a process direct from something like Git, Bitpocket, et cetera, onto the Azure platform, right? So along with all the services that you get in terms of, you know, features that you want to leverage in your application, development and release kind of a process in the background is also something that you get, which is integrated into the same account, right? This is one of the things I wanted to mention. If you are using your own IS platform, you're using your own box, there's a lot of grunt work that you still have to do, right? You have to configure for deployment. You have to configure multiple environments. You use a ChefPuppet kind of stuff to create multiple environments. You have to decide when to move it from which environment to which environment. So Azure sort of gives you all of those things in the background in terms of maintaining it as well. You get a dashboard. You get to log, you view all the logs. You get to view all the performance. It gives you a graph in terms of number of hits. What is the performance that is happening? CPU utilization, memory utilization? What is the response time? You can put up rules which says if it goes beyond a certain point of time, alert me. You can write PowerShell scripts to come back and see if it goes beyond a certain point of time, add one more load balancing setup to it, right? So a lot of development administration kind of a feature is also integrated into it, right? Which is what in nowadays we call as DevOps. So the whole DevOps piece is also something that's integrated as part of the cloud platform. So whether the pricing policy is for the architecture or for the service-wise? We do for each service-wise also, right? So you have an option wherein you come back and start like, for example, 10 mobile services and 10 websites and one small database is something that you can get free of cost, right? Now beyond that, depending on services that you use, you can come back and touch it up. Again, all the pricing is on a per minute kind of a step. So you can come back and choose to say, I want to use notifications and I want to use a bunch of them for the next one month. Then I want to downgrade it and not use it beyond that, right? So you can choose to do things like that as well, right? It is dynamic. It becomes slightly difficult to do a direct kind of a comparison. It's like our Airtel bills, right? All of us get the bill, we pay, right? None of us really know what we got billed for, right? An example is giving, you know, if there's a discount post 10 o'clock and you made the call at 9.45 and talk till 10.30, you really don't know what bill you got, right? So there's a lot of, you know, problematic from a comparison perspective, but the moment you run it for one month on Azure and run it for one month somewhere else, you realize that because of the flexibility, the pricing actually works out better for you, right? Thanks Praveen. So we have still some time left. So I'll quickly run you through some cool things. How many of you are interested in seeing some media stuff? Media? Media, media, media, media, okay? So as we said, right? Azure is huge and how many of your app developers or indie app developers or consumer app developers? How many of you do that for enterprises? So it's a mixed one, right? So how many of you actually need media in your app or stream media in your app or plan to stream media in your app? Okay, right? So common issues which you would have faced, did you guys actually stream media? No? No? Okay. Cool. So I'll quickly set this up and show you how you can start in like 10 minutes. What would be your base? I'll give you different options, how you can quickly start with media. How many of your Java developers? All of you. PHP? Seesha? Okay. Okay. Cool. So I'll set this up with Java, so we'll talk about Java and how you leverage this. One of the simpler things is, this is the portal which you would have probably got used to seeing now. There is an option called media services here and you can create media containers here and as many as you want. So if you want to create another media service, name space here, you can quickly set that up, quick create, you can select a particular region where you want this service to be hosted based on probably you will keep it in vicinity of your users and I can select Southeast Asia or whichever India is going to come up soon as well storage account because all these media content which you're putting on to the cloud needs to be stored somewhere. Right. So what you would be using is you will be using Azure storage for storing that content over there and you will be using the media services was like app service layer to actually create because the media streaming is not just about giving a particular video output to a player and then player starts playing. You care about good experience to the user when the user is traveling his internet is fluctuating it should be adaptive in nature the media stream and stuff which means you need to have multi bit rate video there. Right. That's the common thing especially in India where we are struggling with internet especially on a mobile phones. It makes a lot of sense to have an infrastructure which can do multi bit streaming. Right. It sounds all complex but let's look how simply that can be achieved. So you go ahead you create a media service here. You use a particular storage here and then a subscription which you will have for Azure right. That's all you do. I just did some time back here DroidCon and this is how it looks like and once you come here inside a particular media service entry which you have created you will have all those tabs on the top. It does look confusing in the you know lots of things to actually digest. You have a dashboard content protection content jobs streaming inputs channels and encoding. So it's very simple as a guy you look into dashboard to understand who all how many people are streaming my video to see all the stats and stuff of because you will be charged for that right. You will be basically charged for the servers here like you have an encoding server which encodes it to multi bit rate to the format you want if you want to stream HLS you can stream HLS if you have an Android app or iOS app which requires HLS stream to be there you can do that you can't do that on a Windows server but we ensure through media services we do give you HLS output as well quickly to get started. Now there are two ways one you upload the media content through this portal which is a very native way of doing it but yeah for trying it out stuff you can do it but you would want control over application like a back end program which kind of ingest ingest this particular video into my storage and then it starts the encoding as well. So we have the API is there. So if you have Java developers just click on this Java tab and then this is what you need to copy and paste. So what here you get is a console app code what you will need to install is the tools here are the tools install the media SDK services SDK for Java and then copy and update this code snippet. This is basically from my configuration. So this automatically generates your based on you know I created a container called right gone so you can see all those things with the particular access control URL which Azure gives me and all those details. So don't worry about it just whenever you create a particular container just copy this piece of code and paste it in your code. So this is basically for uploading a video programmatically you will have to point out you know path to your video as well. So it's assuming it's using this. So of course replace this with your particular video the path and then just go ahead run this what this will do is it will create a particular with this particular path file. It'll upload that on Azure and put it there. So media service will have access to this file now then comes the second job which is encoding the video. Now you have put maybe MP4 video onto the cloud. The next job is I want that to make it adaptive so that that can be streamed seamlessly on devices on 3G or 4G or when I'm traveling on a cab I can still stream it if my internet connection or the bandwidth goes low it starts streaming the low streams and I'm in the quality goes bad but the video still continues without buffering right that's the idea of adaptive streaming. So now second thing is these are basically three presets which give you here so that you know you can do your own set settings as well. This is the three presets which we are offering through your code as in the sample code here. So you can select either HTML5 stream which is supported across all native HTML5 players or if you want to target a particular flash stream or silver light stream as in you're using those players then you can use this if you want to do only for specifically for iOS devices and PC and Mac. So these are some of those streams which can leverage right. So the moment I select something else it kind of updates the stream endpoint preset here. This is what you can actually manipulate and play around with to get the preset of your choice. You can find the list of all the presets on the documentation side of media services. Now once you're done with this encoding you are actually done you just need to set up your stream server where which will start streaming there. That also you can do programmatically here right. So here it looks like you can see the other tabs here the streaming endpoints the content which I uploaded so you can actually do it all through the portal as well. If not programmatically you can have access to this content. You have an upload button here so I can actually click on this particular upload and I can target from my local folders whichever file I have. I can just go ahead and select that starts uploading. So that's how simple is it. And also if I have put manually like imagine I'm running my whole workload on on Azure. So now like imagine if it's a CMS website right and I also give an option of creating a video stuff over there and I'm storing that video on Azure storage. So it makes a lot of sense to programmatically pull it up from Azure storage rather than actually downloading it and then uploading it through another service. So you can use Azure storage as well even programmatically while uploading this video. So now you see it shows you I had already created three encoded formats. This was my input so you can actually see all the presets here the ones which you are seeing these were common presets which were available in that code snippet there are some advanced presets as well which you can look into right. So they are it supports smooth streaming as well as adaptive streaming for iOS devices. And the beauty of this idea is like if you are a developer targeting Android iOS and Windows generally you do have you know a common format across them. But if you want to give like also support Windows Phone 7 or lower version of Android which probably didn't support HLS. Now those are the situations where you can use this encode your video into multiple bit rates and from that client player as in the client app you can target to that get that stream right that's that's the good thing here. And again the common question which comes across is content protection right because I'm streaming over HTTP anyone can actually get that stream and then do whatever he wants out of that stream right download the video out of it. So there is a two ways to protect your video using a common AES encryption. So we do that right from here you can also upload AES encrypted video and there are frameworks across platforms. So we have a player frameworks which ones which is for Android iOS Windows and HTML 5 which covers all across right. So using that player framework you can play these encrypted videos AES encrypted videos as well. So this this kind of saves you saves your stream from a third party accessing that stream right. But now if you want to further put conditions like my video should be playable only thrice per user like I have a in-app purchase model and and someone when he does an in-app purchase he can watch my movies for like three times not more than that right when I want to set like those advanced conditions you will have to look into DRM right digital rights management and we also have a DRM parody DRM available here on the cloud. So you can use that the licensing cost is a little higher. So don't want to talk about those but if you want to develop your own you can still use media services to create your own DRM here but DRM is available if you want to secure your content and set conditions over there for access. So DRM kind of creates for each user it creates a particular certificate right based on that that has his access terms what kind of access does he have and blah blah and then this is the jobs which you're doing so when you're doing programmatically you are running a lot of jobs you're running a lot of encoding and stuff you can have a look at all over here. So these are the tasks which I have done and these are finished hundred percent encoding done just to keep a track of those things and then the two kinds of thing right first I encode using encoding server and then I have a streaming server which is very very very important to stream my videos right. So there's a there's a concept called dynamic packaging as well for instance you don't want to keep your data encoded for instance I have five different apps all of them using five different kinds of streams but I don't know why should I keep the streams of all five apps on my storage doesn't make sense it's eating up a lot of storage so there's a concept called dynamic packaging where you actually based on a request coming from a older android phone which requires a particular scheme stream which is not understood by the new one so the older format maybe supports mp3 audio encryption I mean for for audio it uses mp3 and that is something used little older now people use AAC for audio so imagine if you have run into such situations right you don't want to keep that whole stream converted those GBOs of data converted into that format you can use a dynamic packaging there where when once a request comes in for a particular format you start encoding that and give it so it doesn't take time because encoding servers are huge here so it will do in the real time that helps you save cost on multiple storage if you already have a hundred GB of data for your media you don't want to have like 500 GB of data all the same data in different formats so that can help you save that task and then you have the streaming server you can set up a new streaming server or endpoint and you have a lot of things here in terms of scalability that's the coolest part like it's it's a cloud service so it better be scalable otherwise why should I use that right so you can set up all those scalability conditions here you can set up caching age you can set up your CDN providers if you use a CDN provider maybe Akamai you can set up their certificate and start using Akamai with this particular set of media streams and here's the capacity so I can go up up up and so on so you can see the streaming units the bandwidth which it increases so it can give me a huge bandwidth a dedicated bandwidth of like 2000 mbps so so that my stream can easily afford to go through 2000 mbps of requirement and still it just works fine if you need a bandwidth beyond this you will have to set up another endpoint and start using that consuming that right so it's not a big deal because but there's the max limit is 2000 mbps beyond that you will set up another endpoint point of the same videos and to your app so you can actually keep multipliers of this so what I did is I just hosted how many of you know about Azure websites Azure websites Azure websites that's that's one very simple thing how many of you have your own blogs only one you better create your own blogs and I'll show you one very very very cool thing to do that so here if you go of course you can use WordPress but it's even cooler if it's hosted on your own domain and if if you customize the version rather than what that WordPress gives you and then they charge you extra for that right so as geeks you would love to do do such stuff even though I hosted what I did is I hosted a HTML with the same stream which you see Bucks Bunny video here and I'm playing it through a website so the website is kind of hitting back on the media services pulling that media content playing it here so this is my website let me just start with this media streaming is running I can quickly browse this and this is using a player framework to play this video and I have multiple options here for instance I can do something like an autoplay so here's my HTML 5 player this works on Android device as well you can actually try this URL media streaming dot azurewebsites.net I just hosted it sometime back so it the player framework gives me all other options like accessibility which means it shows me a video here and this video is supporting you know different languages so I can see it in English or maybe in Spanish based on if my video has a support so the player framework basically supports that right so you guys can play around with this from your mobile device as well works pretty well over there now but since I talked about websites it's a pretty cool thing especially for geeks like just quickly get started with I don't want the Tomcat or to set up a server behind or IIS behind and then start hosting stuff over there so this is basically like a pass service in fact I'll say one level above pass service so you don't even have to do much off a code to get started here if you just go into the websites and create a new one so we give you a lot of different options in the gallery which you can just select and start working on it right so we give you a different CMS solution so you can see how many of you gonna go set blogs your own blogs right it's cool so if you have if you have a customer who is looking out for a hosting a particular solution like which is mostly e-commerce based or CMS based website is the ideal scenario because I'll say if you say if you consider infrastructure services real cloud or real scalability it's not true because you know at the end of the day if you have a virtual machine which has all your stuff you can scale up and scale out right you can have multiple machines and then you have to take care of how do I manage my data concurrency and and those things so there are solutions to everything right but in a pure pass play like websites you you are not talking about the OS level at all what you know is how many instance of your websites are on and you can switch on switch off based on certain conditions like the moment my CPU goes beyond 80% start another instance of the website so in cases which happens like a flip cut for instance runs a particular promotion where they say on this day come on my website and buy it if they fail to give that probably they are not looking to pure play pass because if you were in a pure paper pass even then it can fail but you have much lesser chances of fail because use you can set up trigger conditions based on that it automatically creates a new instance of your you know a virtual machine which you don't need to care about and deploy your same package your app package onto that machine and it starts up up and running right so it can happen a dynamic scale is really available over there so in this case you can actually go ahead and select any one of these blog engine.net there is a wordpress as well just go ahead click on this give it a URL your name one two three should be available okay yeah it's available right you can use a new database for this or currently my SQL database the existing one is going to use what particular web scale group do you want you can set different web scale group again costing differs here so I have three subscriptions which so it shows up here so I can select either a basic so here are thing in websites you when you when you say free tier it's like a particular instance of web server that's been shared across multiple people so you don't know about others apps and stuff but if you are critical about your security and if you want dedicated machine where your app is hosted you want to go for basic or standard right so there's no guarantee on free whether it will be hosted separately on a separate p.m. because it will be shared that's how probably it's free select your stuff and just go back to the next wordpress database yes next this is how simply you can set up your own blog here and I did that sometime back on websites I was going through this solution I just set up a jumlah there how many of you use jumlah no one okay it's a CMS solution again so I just set this up you can actually browse this link is live test one to three jumlah so all these crazy domain names not domain names these names like test one to three jumlah is kind of blocked by me by for all those demos and testing right so you guys have any questions till now but it's it's like a quick start so if you have your current application in PHP Python you can just try and put this on on this the scalability is like pretty awesome so scalability looks like this you can set this conditions here standard you can see instance size which it's running on it can go up to this now there's a beautiful thing called set up schedule times generally if your application is hosted in India and you know this is working hours of my company enterprise app 9 to 6 you can set up scaling stuff up stuff now between 9 to 6 but again you want to set another scaling stuff which is by metrics right so I can set up based on my CPU scale if my instance count should range between 1 to 10 and you know I can say 2 to 10 and then my target CPU should be 60 to 80 percent so this will be the main factor which will ensure how many VMs are up so unless my my if my CPU falls below 60 percent it will close start closing down instances if it goes beyond 80 percent it starts starting up instances right up till 10 max and min just to keep a control over that but if you are using partial you can go beyond these 1 to 10 right so this is how I can really make it scale up and scale down in like seconds right so even if I start getting requests at 7 0 1 it's the car ticket booking happening on it's it's about to start the moment user starts hitting in there will be a downtime of like 5 10 seconds maybe till I start up a new instance with my application loaded on it right so this is one cool thing so if if I use this with timing if I'm already aware of I am pretty sure I can make a website which never ever kind of crashes because of overload or more bandwidth issues and stuff like that okay so now moving on this was the Joomla thing my XYZ I just created it again a CMS solution so you get all these things for free you don't have to pay anything here right just for especially in a free tier there are some some things like max you can host up to 10 websites and stuff but and also it's running on a shared tier share shared virtual machines but apart from that it's pretty cool pretty cool to play around with good for having a personal blog on unless you are your blog is getting something like thousand hits a day you might want to move that from free tier to a basic tier okay now probably I'll call up which will so I had some stuff regarding IOT as well so it's it's a very simple thing so how many of you interested in IOT internet of things okay and his nice offering from Microsoft which is known as events hub so events hub is basically a ingestion engine in our IOT scenario you will have millions of devices 10 millions of devices all of them talking back and forth every second which means that you need a engine which can collect like 10 million or 50 million and data points per second right and you don't want to run a relational database query you know on a relational database to figure out real-time values like if you want to run real-time values of how many people here are are sitting inside this room are wearing black right so this is something which I can figure out because you all are in the room but how many people who are crossing this door and I won't black color right this something which I need to go back in time and figure out at different instances how many people were inside and then run that query right becomes little difficult IOT queries are like that analytics are like that so here events hub is one cool thing of data ingestion onto the cloud which is highly scalable and then the other thing is basically you need to make some value out of this right you only have data you need to make information out of it and you want to run queries which are very much like sequel but it can support this kind of a huge bulky data so we have stream analytics or another service which kind of analyzes based on your set conditions if you want to set a condition like I have these many air conditions in my you know in in a particular enterprise I have 100 buildings each building 10 floors each floors has like 25 k cubicles 25 each cubicle has like two sensors one light sensor one sensor for temperature and then all of these guys are talking every second to the cloud right so those kind of scenarios is not so easy to handle like if you want to set conditions based on my temperature goes less than 25 switch on my AC goes above 27 switch off my AC right so to set those conditions and analyze what kind of lighting conditions should I have inside my room because it's sunny outside so I don't want much light at night I want more light right so I can do a drastic amount of cost savings here for big enterprises right so there are a lot of guys who are actually working on such solutions for enterprises because that's a huge huge market in the coming days and things like events hub and this analytics engine helps you stream insights let's you look into those data and you can use you can analyze that you can set conditions based on that I want to do this or do that so that's that's the basic idea here so one cool stuff which I was running here is an small piece of code which basically does nothing but it generates those random data and sends it to the event hub client right and this data basically contains temperature simulator so simulated temperatures inside each of my rooms which I just talked about different cubicles having those temp sensors and it's sending it to the back end so it's a huge amount of data actually which it keeps sending so if you look into my payload it's sending a timestamp building ID temperature Celsius sensor ID and room ID these are like basic bare minimal data which I need to actually control stuff so it's it's sending this in a payload in JSON format and then I'm dumping this data on to events hub that's the ingestion of it so it's calling that event hub method over there and then event hub is already set up there so what I did is I quickly went to the storage and the output of my stream analytics which I'm like in stream analytics engine you get some basic features like average some and so on so now what I'm doing is based on my per second input I can set a condition like start time for my stream analytics I want to start because office working hours nine o'clock so I'll set a preset condition so my event ingestion I mean my data ingestion is happening 24 hours but my analytics engine needs to work only for nine hours a day right so I can start at a particular time at 9 a.m. and what this stream analytics does is it starts looking into data only which has come after 9 a.m. and then gives you based on if you want to sum or if you want an average temperature it'll give you that so it'll give you average temperature of the room based on a particular time zone so here is what is what I get 1.2 let me refresh this because so you see the size of this file has increased because it's been constantly dumping data I just switched this on like 20 minutes back and if you open this this is a blob explorer I can see the whole JSON format which I'm sending there now it's calculating average so it's giving me a room which room which particular building this room is in what's the average temperature over there and the timestamp when this guy last send the data right so I have all this information of each building and I'm calculating the average temperature now I can set a condition saying when the temperature goes beyond 36 which on my AC or switch off my AC right that's that's fairly like what you use things in IOT for but but to read to actually make some meaning out of the data is where you need such engine analytics engine there cool so I think which will we start like little late is so okay it's a it's a so see ingestion you want to do a media over there right so yeah so see media server is nothing but a streaming server and an encoding server I don't think it's a real right application of events up there because you see events up has limits it cannot capture like a live stream or it cannot capture a size file size of like 1 GB or more than some given size right so it's meant for capturing small data but you scale data per second kind of things for media content what I would suggest you just have a worker role like a process running which is uploading the pushing the media on media onto the storage okay and have a backend service running which is collecting the whenever there is a media coming in it just starts to encode it basically that's that's the trigger to the media services to encode it and to keep it ready for stream right but your ingestion is like you know you can use the same thing whenever I'm creating a media something from multiple devices I'm just dumping that media onto my cloud service as in cloud storage right that's all because media can be stored there right so now do you want to do that for live stream or something live streaming is going is going to be a little different so live streaming also is a port in media service it's in preview currently so you can but live streaming you know right you can pause play those things it's just like a stream comes in goes out to that player you can do very much that with media service live stream but you will have to create that many number of streaming servers like to stream you can have multiple streaming endpoints on a single server that's not an issue but just that it's sharing the same bandwidth but you can do that so I know it's already time so I'm not going to take so my name is Ujjwal I work as a technical evangelist as well and I lead games mostly on windows platform but not necessarily windows so we founded India gamers community as well I'll quickly show that account to you as you know if you guys have interest or few of your friends who are building games on any platform and at iOS or Windows you know you can always go ahead and join there but but then what I'm going to show today is quickly very very briefly about identity so I think Praveen already mentioned about it but and I have already created so there's no slide as such I'll just go ahead and I'll just go ahead and show you a very quick use of Facebook login how you can use it in your apps and in this case I'm choosing a game basically you need not and not at all a game I just use a unity UI to connect and so I'm sure like most of you what people use Google Play services but play services has a limitation of only two platforms right Android and iOS and it doesn't connect to any other platform as such including Windows however if you go ahead and use you know Azure mobile services which we have covered earlier you can do that very very quickly so I'm just going to quickly login to my Facebook and show you from where we can get the IDN token so it's just a sec here so sure you can see this so I have created one app so basically you need to create one app and the tokens you can get the access key we can get from here right for this particular user I've got this token ID now in in Azure media services sorry in Azure mobile services so let me show you I have created some you know I wanted to show you from scratch but I think just once so I'm going to quickly connect to one of these existing ones here if you go to identity you can find the multiple ways to connect to Azure using even Google you can also connect using Facebook so quickly I've copied the same ID and key from here so if you if you go back you know you can find sorry I don't need to do a new one so by the way when you click new you choose website in that case but I already have created one for the website so here we get the ID and you can just say show you'll get the access ID I've copied that and then the second thing I just mentioned was the key so all you need to do is provide this ID and the key for a Facebook and a login and that's pretty much after that I go ahead and connect to my media services the same to do table or same to do thing which Praveen used I'm going to use the same thing but quickly want to mention here so we have something called bitre by the way bitre site was hacked sometime I think maybe first or something but this is a absolutely free plugin which is available to you source code is available on github you can connect to either of these so either the platforms windows phone android iOS for that matter and so I'm going to go ahead and say data right so I have created three tables for that matter right just want to show you with one of these tables so go to dashboard what you need to do is get the URL and the app ID for this so if I want to let's say create if I want to create a connection with one of these existing windows phone windows 8 I can choose a platform for that matter so I can choose for android I can choose for windows I get the same ID and token so let's say I choose a platform to connect for now I wanted this ID and password so key so I'm just going to choose this okay since I'm going to use this in multiple locations I will copy in a notepad kind of environment so this demo I'm going to connect with unity right my UI in the mono editor we have already copied the ID and the password is something which I'm going to change so this is already on github I'll be blogging and sharing the link later on this and tweet about so probably you can download from the tweet link if you're interested and then just need to save right and once you save this in unity also you get the same stuff already downloaded and saved so pretty much here I'm also going to since I'm going to put this on the site as well I'm going to copy the same URL here right the good thing is about unity is its cross platform so you can actually target one any of these platforms or whatever platform you're building and using you can do that so I'm going to just go ahead and save this scene and I'll run this from unity itself I want to save as save scene I'm going to run this so you'll see an ID basically where I am already pre-populated connection to my azure account and the table and I've already said so first thing I need to do is authenticate since I've provided my access token it connects to my azure site and then you can see right now it's grayed out the other stuff as soon as I'm validated as a user from facebook account I will be connected to my table and and you can you would be able to see this highlighted wherein you can enter stuff you can download stuff so in the meantime I'll just go ahead and quickly show the data so this is my table so to do item is where I have stuff and this is going to connect from to there still not connected depends on the network speed again right yeah so speed is a little less but some text I entered earlier which you can find from the same site so basically token access and then using the same azure connectivity ID which I created here which is the access token I can create apps or games or I can connect to a new one or existing one very very simple by saying which platform I want to target so I can choose android I can say create a new android app and then connect in fact I can let's see if I already have installed so I already have a to-do table as well if I say download in the meantime since this is taking a lot of time to connect I'm just going to say so this is going to download this download basically a java file which you can go ahead and install onto your machine with the java project and if you have android adt or android any of eclipse or any of the bundles which you use you can just open that there and you can connect so it's very simple start just connecting there so in any case so azure you know we have covered a lot of stuff one important thing which I want to talk about is that it's for for trying it out it's absolutely free okay so you can actually go ahead and try let me show that in fact that would be a better thing to show so if you go to a simple azure microsoft com right you will find all the related information so it's absolutely free if you want to try it out for one month all you do is sign in with any microsoft account id it could be even gmail id but you just have to sign as microsoft account right and you can go ahead and subscribe to it's for example you know why i want to use it so you can say try it out so try for free is here by default you know whatever we have done so far a lot of blogs are already available you can actually try it out but this is free and you get about 200 dollar credit now all you want to do is if you continue either you can contact us you know we can provide you some more pass maybe 100 dollar pass up to extend and try it out or you can just sign with a different id and you'll have a different subscription but you can continue with that so not sure it's still connecting and the other stuff is also downloading if you have any questions maybe i can take questions in between for from from anything from azure related stuff like thanks this is going to take time so so so how many of you are looking forward to use azure like so so far but you know got to so three hands all right so you're already using it you guys are already using it so the thing is it's absolutely free so just give a try at least see if you you know it fits to your scenarios and and if you need any assistance we i just tweeted i think we have connected use use the hashtag right con iron so if you are interested like you can always reach out to us saying you know i am interested to use azure and we will help you out so if you need more passes or something we can we can provide it to you there are multiple scenarios that you can use from login authentication to websites media services data of blogs cdm so many things are there available core logic you know so there are so many things all right thanks a lot you know we will see you later