 The speaker we have is Shweta Gupta. Shweta is a senior program manager with Microsoft and has been working on Microsoft Azure for more than four years. Hello everyone, thank you for being here in the last session on a Saturday evening. And I hope I make it worthwhile. Before I get started with standard stuff, whatever I say is my views and not my employer's views. So with that I'd like to get started and probably run through what I'm here to cover. So I've been working on Azure for four years like I used to mention, but primarily I've been working on with companies that have their applications and they want to deploy or they want to use cloud capabilities and whether it be compute or services or basically scale and make it highly available. So I help them rearchitect their applications so that they can be deployed on Azure specifically. And first thing that generally whenever people ask me, oh you do have Linux VM, I thought it was Windows. So I'm here to kind of also diminish that kind of perception and I hope that after this presentation it urges you to go and actually try out Azure. So while they're trying to figure out why the slides are not slow, it'll take time to reflect in slow. So what I wanted to cover was what is Azure, basically its capabilities and we'll take some time just to understand what's there. Trust me it's a day long session but I tried my best to put it in 10 minutes and then we'll jump to how virtual machines work, what are its current capabilities and how we can use Python to leverage DevOps automation on Azure. And we look at some customization options to how you can customize VMs. That's basically whether it's through the container route or through your own application route through basically automating your entire infrastructure on Azure. I'll get rid of this slide which, so this is the momentum in the sense this slide is only to show you that there is a lot of traction and it'll be beneficial that if, especially Python which is such a strong language and preferred language for DevOps be leveraged further to, you know, automate and build and help build applications on, deploy applications on Azure. And one benefit we have is, so one, just now you would have heard a week ago Azure Data Center has been launched in India. So a lot of companies that have latency issues because a lot of companies deploy apps on cloud providers which have latency. You at least have 300 millisecond latency. If you're going and touching Singapore which is generally the closest data center for most of the public including Azure and AWS, yes. So we've just launched India. Data Center Azure is available in India. So the latency issue can be resolved. So I think the message I'm trying to draw is that it's only increased the traction that you'll have of deploying apps, especially from the enterprises that are concerned about data sovereignty issues and they don't want their data out of the country. So clearly my animation is totally screwing up the presentation. So I'll just work without animation for some time. So I had a very nice animation here which highlights everything but I'm just going to talk through this. So you're not able to see this but we have, this is how the Azure is structured. You've got the basic layer that's the infrastructure layer. You've got compute. You've got containers that's virtual machines and containers. You've got storage. You've blocked storage, fine storage for sharing data across VMs. There's premium storage which is SSD based storage for high compute workloads especially like the Sandra, MongoDB and stuff. And then there's networking where you have virtual networks, load balancers, DNS, extra crowds and very, very important for hybrid connection. So if you're building a hybrid scenario where you have on-premise and cloud connected and managing infrastructure for both, it's something that you clearly use a lot of networking companies for. But what I really also want to talk about is the other services which are all available over rest and you can deploy or create applications that stick to it. So I don't know how many of you attended the IoT session today. Yeah, so you saw that, I mean IoT is the talk of the town today, right, Internet of Things. And the biggest issue or the biggest problem that IoT guys need to solve is one is of course the hardware that you know how you build these sensors, that they're lightweight, that they're efficient but the other side is what do you do with the data? If you've got 100,000, 200,000, 300,000 devices sending data to you every minute. The amount of data that you need to ingest and then process is very high and the kind of infrastructure you need is not funny. So you have options like Event Hub, Stream Analytics where Event Hub, you can just, it's a service. You can create an application and you can just create a service called Event Hub, deploy the Event Hub, send the data to Event Hub, it'll handle hundreds of thousands ingests per second. So it's a service which will scale up and scale down. And then you have data coming into Stream Analytics. You can implement a Lambda architecture, that's the data comes through Event Hub. It goes into Stream Analytics or Storm or Spark and does your stream processing. At the same time it goes into Hadoop, like Ashwin site or even your raw Hadoop on an XPM and does stuff. So data can be ingested directly into multiple buckets of data. So there's a lot of stuff, a lot of capability you have that you can leverage. And you can pick up, pick and choose components. So you could either use Stream Analytics or use Storm on Hadoop clusters and build your application or tie these components through your application. Create your dashboards which allow you to process and display this data. And then we have a lot of web and mobile functionalities where you have web apps. I mean apps today is the apps world, right? But you need to have a backend for those apps. Most of these apps are interactive apps, they're not static apps. So you can deploy your backends for across all platforms. Be it iOS, Android, Windows, all platforms, you can have a backend out here. And a simple thing like notification hubs. I mean all of you get notifications, right? And if you even look at a simple scenario, let's say you have an app which is installed in 100,000 devices. And you need to send a notification to those devices. How do you do that now? You will maintain a database of 100,000 device IDs. And then you obviously maintain a database of which is Android, which is Windows, which is iOS. And then individually send those notifications to the Apple notification service, to the Android Google notification service, to the Windows notification service. Just to send a notification, the kind of infrastructure you have to maintain is very high. But there's something called notification hubs, which is a service which maintains. So your device can register with a notification hub. All you have to do is send a message saying, I want this message to be delivered to all devices. And the notification hubs handle that. So there are a lot of services that are available for all kinds of, what do you call it, verticals like Web and mobile, analytics, your data and integration. So you've got queues, you've got service plus queues. And if you work in, do you have, do you work or you have interaction with really large companies that have strict firewall rules, no outbound data, nothing? So it's literally impossible. Let's say you have a SaaS application which you sell it to a company and they want to use that data. So you'll come up with a lot of questions. First question, there's no outbound. How do I even send data from the particular device sitting inside the company's firewall out? So there's something called service bus relay where you don't use an HTTP outbound, but you have a tunnel between the two. You can have a tunnel between your app, I'm not talking about VPN tunnel, but a tunnel between your app and the app sitting inside which can be called. So you can build very smart hybrid scenarios without having to have an infrastructure like setting up a VPN connection and stuff. And the, and data factory. So a lot of times you see a lot of scenarios now. People are just like the burst of data coming, right? You have data in all forms. You have data in SQL, you have data in no SQL, you have data in semantics. I mean streaming data coming in, you have JSON, you have all kinds of data. So you can actually orchestrate. So this is just an orchestration where you have data coming in CSV or data coming in JSON or data coming in from PostgreSQL, from DB2 XML, from SQL server, from MongoDB. Everything can be orchestrated. You can push through, you can run it through a Hadoop server. So you can create a pipeline that says input from five sources, push the data every one hour to us once a day, whatever you want to schedule, push it into a Hadoop, run this Hadoop job, push the output into this, use a BI dashboard and show the results. So you can orchestrate all of that. And all of this can be automated and it has to be automated, right? You can't expect people to go on the portal and create the setup and do it. So that's where I wanted to emphasize that Python, which is the most preferred language for automating these kind of scenarios. And it could actually, you could build a lot of things that could leverage Azure's infrastructure. So I'll skip this slide. There's a lot of stuff in it, but let me, yeah, I think this is better. So I wanted to show you some options on Azure which, so there's a lot of marketplace, a lot of marketplace is available where you can, for example, these are all app services available, which you can, for example, there's speech API, there are these intelligence services. So how many of you have seen that, how old.net? Have you come across that? Where you can, where it checks your photo and tells, guesses how old you are. You've seen that, right? Yeah. So that uses the intelligence services that's running. It's a simple API. Trust me, we just did a hackathon within our teams and we built this app called how drunk are you? So trust me, it was so funny. So you're supposed to speak a sentence like a Betty bought a bit of butter kind of a sentence. And then it'll, we called an API which will try and predict based on how many times you slurred or if you use the curse word or how many times you use it'll detect whether you are drunk or not drunk. So we built a barometer and you would make someone talk and it would submit a thing and it would draw. And we made a French guy speak, poor guy, the moment he spoke probably the service is not meant for a French accent. The moment he spoke it showed man, you're dead drunk. Stop driving. So fun apart, but these are really cool APIs that are available that you can really use and leverage. So there's, there's a image based API that's how old.net which scan images and you can run analytics on that. There's voice and there's a lot of things. So you should, you should try it out. Another important bit before I move on to virtual machines is Active Directory. Have you heard of Active Directory? Okay. Yeah. And do you have, so if you, if you work in a pretty medium to big size companies, they use Active Directory for authentication, a lot of them. Okay. And if you, you are a SaaS application provider and you want your application to be used by these companies, you typically need to integrate with their AT, right? They're not going to have employees logging in with their own, your own applications login ID. So you have an option and this is irrespective of where your application is hosted. So your application can be hosted anywhere, but you can use Azure Active Directory to integrate your, any applications. So if you have five enterprise customers, all those five enterprise customers can have their AD synced with your app. So your application becomes a part of their AD and your application on behalf can authenticate the user and going. So it's a pretty, it's, and if there's no customization, there's no custom coding required. So I actually, if my internet was working, I would have actually showed you how you can, how, how the Python app I wrote actually integrates with your AD. So I, I, as a user can log in and give access to the Python app and say, yeah, manage my resources and it will deploy infrastructure. Yes. Yes. You can. So you can have your application hosted anywhere and you can just have any sync with the AD. Yeah, sure. There's material available and I can, I can share it with you. So guys, I'm just going to use this. So I'm coming to virtual machine. How many of you worked on cloud and understand what you're doing? So I'll just highlight what is different in Azure from on virtual machine side. So you understand the, their pros and their cons to it. Okay. So the first one is it's built per minute. Now I, so, so the pro is that if you're working with 100 VMs and you want to shoot to 150 VMs for 20 minutes because of a peak workload and then come down, it will be built for 20 minutes and not for one hour. While it looks like a small, not a big significant advantage, but if you're working with 64 core machines, then it does really help. Then there's auto scale, high availability, everything built into it. So you can auto scale based on certain parameters that's available. It's like queues, how many messages in case your app, web app is hosted on multiple servers and you want to process based on queue size. You can do that based on CPU size and you can automate this. So that's where actually where the strength lies. You can automate the scaling of how many VMs you want to add. It works like slightly different. So unlike, typically you would expect it to have an image, base image where each time you auto scale or increment, it creates a VM out of that image. But here it, you need to provision. So if you have 20 VMs and you, you estimate that your peak is 20 VMs, then you can, you will have to provision 20 VMs, shut down all of them. So you're not built for it. And Azure just turns off and turns on those VMs. Now the pro is that it's very quick because when you really want it to scale, you don't want it to wait for 15-20 minutes till a VM is provisioned. But here it just turns on and is, and is done. The con is you have 20 VMs only. So you, you have to kind of estimate for it. The way to work around is you automate it. So you have 20 VMs set up and then you, in those rare cases that it might exceed 20 VMs or the website is telling you, you automate to create more VMs or not. Deploy. That's where you get containers and chef and puppet and everything into place. Yeah. If you, right now I'm referring to your VMs basement. It could be windows. No, it'll be what you. So let's say you, you deployed. Yeah. So open, see right now there's, we are looking. I don't know where it is, but an integration between open, so open start is a multi-cloud provider. Yeah. Correct. Yes. Yeah. Yeah. Yes. Yes. Yes. Yes. Yes. Yeah. Yeah. No. It is, it has its own right. It's a VHD format. It is, but what it, what you can do is let's say you want to move out of, you created an image and you want to deploy it in. What do you mean by how? Yeah. Yeah. Yeah. Yeah. Yeah. Yes. Okay. Okay. Okay. Okay. Let me start. So you have a base image. Let us, let's say you, you want to deploy your app on a VM on Azure. Just give me a minute. So you go, you'll go to, you can create a VM from a plain vanilla. You can choose your base OS like Ubuntu or what do you want? Ubuntu or SUSE or CentOS or Windows Server to deploy your application and then you capture a snapshot. That's the image I was talking about. Yes. The snapshot image of your VM, of your application that is hosted. Okay. And that, so the, that comes with us. Second. Third point is that image you can export it. So let's say you want to deploy it on-prem or you want to deploy it on AWS or deploy it anywhere. It can be imported and exported. So there you can, it's a VHD file. So you can export it and import it out of any platform. There are conversion tools available. And the other thing is this persistent and temporary disk. And now you, there's also SSD available. So a lot of times you have really large data workloads. You have caching, caching requirements like you're deploying a NoSQL Hazelcast cluster or you're deploying a Redis cache or a MongoDB or a graph database. It needs SSD. So you have SSD storage, both persistent as well as temporary available, which you can link to a VM. So I wanted to quickly run through the sizes that are available. And so it's, we've got feedback that it's, I just wanted to clear some stuff like we have basic tier and standard tier. Now basic tier is for, is for development. So let's say you want to do development and, and it's, it's, you won't have load balancing and those features, but you want to do a quick development. It, it comes out to be much lower prices. But the course and the RAM is the same. So they are Ace. So when you choose your VM on Azure, you should give people an option of selecting a size, right? So these are the various sizes. Now A series are, are once without SSD. They use a standard hard disk, fmrl hard disk. And then there are these D series which have local SSD. But there are temporary SSD. Then there is D series version two, which have 35% faster CPU. There's an extension VMs. Then there is G series, which is what we call the Godzillas instances. So it starts with two cores, 28 GB and it goes to 32 GB and for 32 cores and 448 GB. So it's, these are like really Godzillas instances, which you can use. But like I said, you know, the power lies in the ability to create and destroy these images. Because most of us, most of you, unless you're really having TBs and TBs of workloads, you're, you would probably use G5 when you have to do a very high compute, like a life sciences genomics. Stuff and then you want to shut it down. You don't want the G5 running 24 by 7. No. No. No. So let's. So for example, you want to, you want to take 34 cores and 500 GB RAM. That's what you're asking. In what sense are the customers? See, there are two questions. In your scenario, I would deploy two VMs, one small and one small. That you can, of course. So you can, you can pick and choose what you want. But can you choose how much RAM it should be there in my, do you want to have a provision to pick and choose your skews, basically? I agree. I agree with you and we do get feedback because the more options you have, the better. But I guess it also has to do a lot with the way underlying engineering happens. So, but I agree with you. And there are these infinite band, which has come up, which is 40 GB per second, infinite band network enabled VM. So I guess if you're writing a DevOps application which helps you manage infrastructure, you also need to probably educate a customer on what would be a most efficient VM skew you should choose, or they should choose before they deploy. They don't, they shouldn't do, end up doing an Apple to Apple comparison. So that depends on, so I think you have to minimum two licenses and after, two licenses are available. Was it a Windows server? What was it for? You'll have to, you'll have to get into that at an individual level, but you can have multiple people connect. There's a remote app functionality available. Yeah. We'll have to connect offline to see why. What do you think about that? Yeah. So, there's a remote app functionality available. Yeah. We'll have to connect offline to see why, what happens? And these are the Susay Linux enterprise server and matrix that are available. Anyways, coming back to our, you won't have time for otherwise. Sure. Actually I have a video to be honest. I, I didn't, I couldn't, I jumped, I showed that to you. I have, I have a video that shows how you can deploy a container based images on Azure. If you just give me a minute, I'll just go through this. So, I just wanted to go through this that how do you end up creating a VM in Azure? Use, you can use the portal or you can use a command line or you can do it programmatically. I'll show you all three options. And then you can start from your base OS image, which could be a plain vanilla Linux or a Windows. Server. And then, or you can have your own image. Let's say you, you are exporting image from another cloud or on your own on-prem, on-prem. So, you can use that as your base. And then you can have marketplace templates. So, let's say you, have you heard of data stacks? Cassandra, right? So, it's data stack is a Cassandra enterprise version and there's a community edition. So, you can, setting up data stacks or setting up Hadoop, multi, multi, Hadoop cluster is not a small thing, right? So, there are templates available. You can go to marketplace and say I want a data stack cluster with 10 VMs or 10 nodes. It'll automatically deploy 10 nodes, install data stacks, have everything up and ready. All you have to do is input your license here and you're done, right? And then we can customize using custom script extension. So, you can deploy your own script or your own program that needs to run. You can deploy chef cookbooks. You can deploy puppet. You can use Docker and there's a desired state configuration that you can use for customizing. One thing that I wanted to, this flow chart was that how customization works is you can write your own script. So, let's say you have your app needs five installers to be installed at the time of provisioning. So, you can create a script that could be a shell script except parameters. And it needs parameters like what is your VM name or it needs certain parameters that the user has to input. So, you can enter those parameters from a portal from the UI and hit on deploy. It'll take those parameters, it'll run that script and then it'll provision the VM. So, you can do a lot of customization and automation and deployment of your app on these VMs. So, let me show a demo. So, first thing I wanted to show you was a, I built a Django application that deploys three VMs or, sorry, that deploys, that takes an input or a name like a deployment name, creates a virtual network, creates a storage account, creates a VM connected to that virtual network and it authenticates a user from an AD. So, that uses OAuths to authentication. So, you can actually deploy it as a SaaS application. Anyone with an Azure account can go to your application, probably go through subscription or whatever, log in with their Azure credentials and give your app access and you can deploy your infrastructure on cloud. So, I unfortunately wanted to show you this but I guess, so basically what you can do is just go on Azure, say I want a Django app or you just type Python and you'll get Django, Flask, all kinds of frameworks that is predetermined and available. I select Django, it creates a web app for me, you can select what tier, you can start with a free tier where you don't get charged and then it obviously will have a limited performance. So, it's good for development in a small startup kind of a thing and then you can scale. You can scale to a basic tier, standard tier, you can have more instances add to it. But it'll give you a FTP deployment, it'll give you a Git deployment, you can deploy from a local repository or from github.com. And within like, it took me 10 minutes and I had my app up and running and deployed on a Django web app. So, it's available for free, if you type Python, you'll get a whole list of options that you have that you can deploy with Python. So, I don't even know some of them as your data science core, Django stack, data science toolkit, there's a lot of stuff that you can use with Python. The other feature is a resource group template. So, this is a, you can generate a template that's similar to cloud formation templates, but it has functionalities where you can write a single template to even deploy a thousand nodes. So, you can make your template as customizable as, I'll just open up a template for you. So, you can, you have resources, you have storage resource, network resource, compute resource and you can have parameters like number of nodes. So, you can say if a number of nodes is 100, it'll create, you can run that template 100 times and it'll generate 100 nodes or 100 VMs for you. And you can use the template to add more stuff. This is what I was talking about automation. So, you can create this template from your Python app. So, let's say a user logs in and then he or she gives you access. So, let's you know that I already have this MongoDB cluster running and I want to add five nodes to it. Okay, this is what would be the complex bit, right? You have a production MongoDB cluster running and you want to add five nodes to it. So, you can do a lot of that stuff with simple JSON scripting. Generate this JSON script, deploy the template and you're done. It generates it for you. So, I'm running out of time but I have a video. Let me see if I can show that. I had these demo ready but I got a little worried with the Internet connectivity issues here. So, let me just quickly... So, I had written a simple Python script that generates this template and then here I'm asking the user to log in. So, this is one way of authentication. The user logs in whenever they have to deploy it could be a one-time login and the user gives you access. The moment I deploy it, it created a virtual network. It created three storage accounts. It created three VMs. It deployed a MySQL persona cluster using the custom script extension I said. So, it deployed Chef and it deployed a Chef MySQL persona cookbook and within like 10 minutes I had my entire MySQL persona cluster running. You have that option but obviously the generation of template is the key bit and the fact that how do I do and customize these workflows is what we add value in the application that we built. So, there are SDKs available for all of this. So, this is a Django app that I wanted to demo where I just enter the deployment name and I just skip through. I'm selecting a canonical Ubuntu image. I wanted to run you through the code quickly but I'll just show this. I select the subscription that I want to deploy in and you can see I'm using a free trial. So, you can work pretty okay. I mean all the functionalities are available and I have like slowly I have all the resources getting rated, the virtual network resources. Yes. So, I have two flavors. The one the demo I showed you before used to the raw REST API to call and deploy a template. This one I'm using the Python SDK which is written over at REST API. So, if I open the code for you, this is my views where I'm just importing a Python SDK. So, this is the SDK functions and I'm just calling it here. I wrote a layer on that. So, it's just a simple get me list of vm create, vm create storage networks or deploy template and it's underlying as a REST API call or I can use raw REST API. So, everything that is on Azure including Hadoop generating Hadoop clusters or deploying MongoDB or Docker container, everything is exposed to a REST API. So, you can code it if you want. I'll just quickly show you, I'll be sharing these links but these are, this is the SDK for Python and there's a lot of open source development that's going on. There are a lot of open source projects that are there. Just not in Python, in PHP, Ruby and mobile services which you can be a part of and contribute and use it. So, any more questions? Yeah. I could but the internet's not working. No, actually I was trying to do but I was unable to actually deploy my own image captured by DISM and Cysprit so I was unable to do that. I'll have to show you on this one. To your media server. So, right now in Azure media services, media or whatever, when I'm assuming I don't know a developer that much. Okay, yeah. I get your question. I'm asking you what is a media server? What is it? Encoding and... So, encoding and... Video calling like one user can call to another user. Got it. For those things we need media server on. So, how things work on Azure? See, Azure, so there are two flavors to it. One is if you're using this similar approach that you're using in AWS, you can have a Linux Ubuntu VM, you deploy whatever media server software that you've deployed and you have a nick or you create a virtual nick for every VM and then you control all the traffic rules through that nick. That's how it works on Azure. But there is also media services that is available which you can use for... No, I don't think so, but I'm not an expert. But I know that traffic incoming and outgoing is controlled by using a virtual nick on the VM and you can use... Yes, that's where you configured the traffic. Okay, thank you. Yeah, hi. Thank you for the presentation. Another question. Essentially, for the images that you use in Azure, is there a method to actually create images and consume? Basically, what I'm coming down to ask is, in OpenStack, we have something called a disk image builder. So essentially, we can configure images based on the requirement what you want to create. So when you build an image in a disk image builder, you can create a QCUT image or a VMDK image. So does Azure have any platform or any application where we can actually build images? Yeah, so at this point in time, Azure allows you to capture what you have and create an image which is in a VHD format only. And then you have tools that are available that convert VHD to other formats, but you don't have a facility which will allow you to create multiple image formats within Azure. Okay, like for example, essentially, in my infrastructure, we have OpenStack and we have ASX environments. And we have KVM as well. So we need to have a QCUT image to boot from KVM, right? And for ASX, we can use a VHDK or OVFI, right? So to support this multiple platforms, we use disk image builder. So for Azure, I thought maybe there's some application or some service that we have. No, it's not really. It's very limited to how Azure works and it's more of for you, it's an ability for you to import and export data in and out of Azure. So let's say you decide to move out of Azure, you can export your image, instead of just reinstalling it everywhere, you can export your image as this and deploy it somewhere else. That's the functionality that is limited. You had a question. Performance is not equal. The performance of the application servers in different VMs are changing and altering. Then how the load balancing factor will come? I'm not sure. Why would they not be equal in what sense? I'm telling you the load balancing factor of different application servers in different VMs, suppose. I deploy different application servers creating different VMs. Now, suppose those are performing not equally. Suppose there is a difference of the application servers in case of performance and or whatever you see. You can say performance tuning. So how to balance, how to make the efficient load balancing in Azure? In that sense, you're saying if the application is, how would you load balance it theoretically? How would you like to load balance it? I'm not sure. So let's say if there are two VMs, one is not doing that great. Right. And one is 100% optimized. Okay. So theoretically, how would you want it to be load balanced? I'm not clear on that. Load balance means suppose that the application servers should be efficiently handling on different VMs. Just what do we mean by about load balancing in different concepts? Right. See, typically how a load balancer works is how it works on Azure as well, right? So where you either have layer four or layer seven or layer three, depending on, you could have session infinity or it could just be protocol based load balancing. So it could be just be a round robin. It could be a random algorithm. So that determines how your application is load balanced. But obviously any load balancer is another assumption that all the VMs perform equal. So if one VM is not performing equal, the other performing equal, ideally you should shut that not performing equal down and make sure it is performing equal. That's what might take it. So I'm not able to understand what do you expect from the load balancer. Okay. One more question you told that Hadoop cluster. Can we entirely deploy HDFS in one of the VMs in Azure? Yes. So if you're looking at running Hadoop workloads on Azure, there are multiple ways. One is you take your five to ten VMs and deploy your Hadoop on your own Horton work. So whatever Hadoop distribution you want to deploy and it works fine. And you attach SSD or regular disks and the data is stored in a normal HDFS system. The other option is HD inside, which I think is a recommended way to go is it uses, you have an HDI, you can have Linux or Windows server flavor of it and underlying data is stored in a blob storage. So the benefit you get is that data is, it uses HDFS, but HDFS has been integrated with blob storage. So the benefit you get is data stays there. You get the input data, you do run the map reduce job and then you push the output data and then you shut down the cluster. So you don't pay for running Hadoop five or ten, twenty clusters, twenty four by seven. You just pay for those twenty minutes or twenty hours or ten hours it ran. And you have the data input and output with you. So you don't really need those computer running. So that's how you can do it. Thanks a lot, thanks a lot. I think he had, sorry, he had a question. Hi. Does Azure provide pass platform as a service? Yes. Yes. So there are... For Django. Yes. So actually that's what I was trying to deploy. So you can deploy Django applications on cloud services and on web apps and websites but maybe not on service fabric. But it does. You can. And what are the advantages that Azure have over the like Heroku or Elastic Beanstalk? See it's, you can't do an Apple to Apple comparison. Trust me, I've gotten into that. Like you mentioned that data centers have put in India. Right. Like that one. Yeah. So there are a lot of enterprise ready or enterprise driven workload. So let's say your customer is an enterprise. Okay. So the kind of security, the kind of, like I said, AD integration, VPN tunneling, hybrid scenarios it needs is inbuilt in Azure because traditionally Azure has been an enterprise thing. Right. And it's not being so much adopted by the consumer thing. So that is one differentiation. And the other is like you mentioned data centers. It's got more data centers and especially with us in India, with the data center opening in India, you have a latency advantage. Yeah. So thank you. Azure supports all other platforms. Right. Yeah. Other all web frameworks. You told Django, right? Yeah. Other than that Django is like bottle, pyramid, glass. Yes. It's, see, we have a marketplace which has, you can see, let's say there is flash, there are a lot of people publish. It's like an open marketplace. So you can publish an image. So let's say there are available, there's flash, dango available already. So many other frameworks are available. Yes. A lot of them. Like around 3,000 images available. So let's say if there's something missing, you can create and deploy one as well. Okay. The template is already designed for that? Or how can you show me, you told me like Django web app already designed. Yes. So that's already there. So there are multiple flavors of Django. There's a basic flavor of Django where it creates a web app entire setup. And then you need to create or you can integrate your local GitHub repository and deploy your code. Then there is, there are some Django web deployment frameworks available which I think are paid services. So you can, you can choose what you want. Okay. Okay. Thank you. How active the directory marketplace is different from Facebook login, login with Facebook? See login with Facebook is, underlying technology is the same because both of them use OAuth to authentication. But so you, your app can do both. Your app can actually provide the user. Do you want to log in with Facebook? Although I don't see such a scenario happening or with your login employee login account. Technically you can do both. Underlying technology is not different. This is that one is Facebook and Facebook will do the authentication for you and active directory. You can build your own directory or you can integrate it with another directory and they do the authentication. Thanks. Thanks so much.