 Hi, my name is Ning, Program Manager from Azure Compute, working on open-source Java tools, and welcome to Microsoft Connect. Today, I'm going to run a Java application with Cloud Foundry on Azure. Cloud Foundry is an open-source Cloud-native platform. It simplifies the infrastructure deployment, so the developer can focus on coding. It's multi-Cloud and make it very easy for scaling and monitor your applications with great spring integration. Cloud Foundry uses open-source broker for service access. It simplified the service provision and connection, works across multiple Clouds platforms, and consistent between Cloud Foundry, Kubernetes, and OpenShift. What I'm going to do today is to CF push the spring music application, use OSPA to access Azure SQL. So let's get started. To prepare my application for Cloud Foundry, I need to install the CF CLI and prepare a manifest file for my application. Let's first take a look of the manifest. It tells Cloud Foundry runtime how to deploy my application. You can specify parameters like app names, memory disk usage, and the router information. Now I'm ready, I'm going to run CF push. CF push is the single command that combines all the steps from build to publish your application. It consists of three major steps. First, it will upload your file, pick a build pack, and wrap them into a package called Droplet. Second, it will select a container for this Droplet, and finally, it will configure a network to publish your application. This CF experience is consistent across all the Cloud providers. You can always run CF push with additional parameters to customize your application deployment. Now it's ready to publish. Once it's done, I'm going to run CF apps to get more information about my application. Let me run CF apps. Now I have an application called Spring Music. This is the how many instances I have, memory disk usage, and most importantly, the URL about my application. So let me see if I can access my application online now. Great. So Spring Music application is currently running online. I can send this URL to all my customers. At the same time, I'm considering how my website can handle the load. Luckily, it's super easy to scale application in Cloud Foundry. You just run CF scale and you specify your application name, and how many instances you want to scale to. Within one second, I got three instances running. Let me just make sure. Okay. So I have three instances here. Going back to my website, now I have multiple instances running. I want to add a new feature. So when a new record is added, this record is added to a Cloud database. To do that, I need to use the OSPA to connect to my databases. Let me first check CF marketplace. Since I have just installed OSPA on my deployment, when I run CF marketplace, it displays all the services that is available in my working space. Since I'm going to focus on Azure SQL, I will need to create a service instance for Azure SQL and buy my application to this instance. I have already done these steps, so let me check to make sure the service instance is running. Yes. So a service instance called Spring SQL is created from Azure SQL, and my application Spring music is already binded. Let me go back to my website and double-check. So this is the service instance my application is using. Since my application is already binded, I can add a new record. This time, it will be added to the database. Let's make it a rock sound. Okay. So this record is saved. Now I have an application running in production with database in backhand and multiple instances. I really wanted to make sure it runs well, especially performance and reliability. I will use App Insights to monitor, which will give me the 360 degree view of my application, and then it's very easy to enable that. You don't need to change your code. You can either insert a script to your pipeline, or you can use the Java build pack. I'm already done with these steps. So now if I log on to my Azure portal, this is what I get, a dashboard for my application. It display multiple information about my performance and reliability, including the usage, the sections users, reliability, responsiveness, and the browser page load information. I even created an availability test that pings my website on a regular basis, and these are the result. You can also explore the additional functionalities, like smart detection, which provides the rules you can define and detect the abnormal activities on your website and send you the alert. You can also access your website with the real-time information and connect to your website in real-time. So let's see if I sort the records with different parameters and refresh my website, generate some traffic, and then going back. Then this website will display the incoming outgoing activities with the overall health. In addition, it will show the status about all the three instances that are running. So that's all for today's demo. In summary, using CIPush on Azure have greatly simplified the application deployment experience on the Azure. If you want to access more information, you can access additional resources on how to set up Cloud Foundry on Azure and running Java on the Azure. Enjoy the rest of your time with Microsoft Connect. Thank you.