Create Azure Management Site - azure

Can we create a sites that can:
showing available VMs;
deallocate VMs;
show pings.
I prefer using Node, but other language is accepted.
Currently, I'm monitoring using azure-cli. But, I'm asked to create a more user friendly UI.

Most of the operations that you can perform on the azure portal can be done using azure management api and powershell azure commandlets.
Azure management API are REST based and hence can be consumed from any platform that supports http.
Sample to start and stop VM - http://code.msdn.microsoft.com/windowsapps/How-to-start-deallocated-c23b7cbe
Likewise you can write your own program to do the required management activities.

Related

How can I add static HTML pages in the Azure Developer Portal to display some documentation text?

I need to add pages (kind of static web pages) in Azure APIM Developer Portal to display documentation. Is there any tutorial to explain how to achieve it?
Is there a way I can read the text content from REST API calls and populate the pages in Dev portal?
I believe the issue is more or less similar to this where you are trying to update documentation properly at Azure Api Managment developer portal.
In that case, as mentioned in the thread, you can try with swagger but in APIM portal it might not work immediately. Microsoft product team has confirmed that they working on improvig support for OpenAPIv3. The ETA is about end of September.
However, you may also check the self-hosted gateway feature
The self-hosted gateway feature expands API Management support for hybrid and multi-cloud environments and enables organizations to efficiently and securely manage APIs hosted on-premises and across clouds from a single API Management service in Azure.
Overview

Is Azure Management Library deprecated in favor of Azure Resource Manager?

For Azure automation we used Management Libraries in order to provision Cloud Services & BLOB Storage along with SQL Database. This seem to be no longer maintained. Shall we stop using this in production?
Need to provision:
Azure Web APP
SQL Database
BLOB
Azure Search Index
Any authoritative information on the recommended approach now, would be much helpful. Thanks.
As you may already know Azure Management Library is a wrapper over Azure Service Management API (ASM) which provided a REST based interface to manage the underlying infrastructure. Old Azure Portal (https://management.azure.com) makes use of ASM API.
Azure Resource Manager API (ARM) is the new REST based intefface to manage underlying infrastructure. ARM is more robust, feature rich and will be used going forward. New Azure Portal (https://portal.azure.com) makes use of ARM API.
Eventually old portal will be removed and you should be able to do all the things on the new portal. When that will happen is not generally known (someone from Azure product team will be able to comment on that). Until then, both ASM and ARM will be supported and after that ASM will be removed (or not supported).
General recommendation would be to start using ARM API wherever possible. Only use ASM API for the features that have not been ported to ARM API. You mentioned that you are using Azure Web APP, SQL Database, BLOB, and Azure Search Index. To the best of my knowledge, all of these are supported in ARM so the recommendation would be to use that instead of ASM. In fact, I think Azure Search is only supported via ARM and not ASM.
I can't find any information on which the currently advised library to use is.
However, a few weeks ago Simpler Azure Management Libraries for .NET was released into preview. It might be worth checking it out and keeping an eye on it for the future.
At the moment it seems only capable of managing Azure Virtual Machines, Virtual Machine Scale Sets, Storage, Networking, Resource Manager, Key Vault and Batch. However, since this is a preview, MS is asking developers to provide feedback and what they would like to see support next.

How do I programmatically access the Azure Management Service "operations log"?

Whenever an active operation is issued via Azure Management Service (previously known as Management API) such as creating a new deployment of a cloud service or scaling it up (using "update deployment" operation) two entries appear in the "operations log" in Azure Management Portal. One entry is for operation being started and the other is for operation completing (successfully or not).
Can this log be accesses programmatically, perhaps via Management Service?
I believe what you're after is List Subscription Operations. REST API documentation for the same can be found here: https://msdn.microsoft.com/en-us/library/azure/gg715318.aspx.
I'm not 100% sure about it but if you were to use Azure Management Library, SubscriptionOperations class is the one that you would use. Source code for the same can be found here: https://github.com/Azure/azure-sdk-for-net/blob/master/src/ServiceManagement/Management/Management/Generated/ListSubscriptions/SubscriptionOperations.cs.

Azure application status page

I have an application running on the Azure cloud.
Currently this is deployed as an Azure web app.
Is there any way to monitor the website status and build a page like this or this?
As you can see in those examples both have:
a service global status
An historical status which is grouped in hour/day/months period
Does azure has an API that I can use to monitor my services?
Application Insights and the Azure portal will give you a rich monitoring and diagnostics experience for your web app. It is in preview at this time.
You can get very granular data points or high-level graphs and trends. The historical data can go back as far as 13 months for aggregated data points. You can read more about the data retention policy here.
The Azure portal (the new one at portal.azure.com) gives you a rich UI to interact with the telemetry data from your app. And if you want to customize a blade to view specific data for your app you can do that too.
Azure Web Apps also has built-in monitoring support that you can use. It won't give you the depth that Application Insights does but you should look at this too to see if it will give you the data you need. And of course, you can customize the monitoring blades in the Azure portal to suit your needs.
Azure does offer a robust RESTFul API for managing and monitoring your services. Essentially anything you can do through the Azure Management Portal is accessible via an API, including analytics. The portal itself often uses this same API.
https://msdn.microsoft.com/en-us/library/azure/ee460799.aspx
You can also use MSFT authored .NET assemblies to create your own monitoring applications in Visual Studio. I find the monitoring and analytics features more robust via this model. These are available on GitHub:
http://azure.microsoft.com/en-us/updates/management-libraries-for-net-release-announcement/

How can I allow other users to deploy to my Azure cloud services?

I created an empty Azure cloud service and I want to allow other developers to deploy to it. So far the only route I can see is adding the developers as Azure subscription administrators. I would rather give them more specific access to the cloud services only.
No such functionality exist today which will allow you to grant/revoke permissions at the cloud service level. Once a developer is provided access to the subscription, they would have access to all the resources under that subscription.
There's a REST API behind cloud service deployments and all the tools (including Windows Azure Portal and Visual Studio) consume this API for creating deployments. One possible solution would be to build your own solution consuming this API. In this solution you will implement access control based on your requirements so that when your user use this service, they will only see the cloud service they're assigned to and can only manage that cloud service. There's a managed library for consuming this API. You can find more information here: http://www.bradygaster.com/post/getting-started-with-the-windows-azure-management-libraries.
It seems that if the original developer downloads the publish profile from Azure (it's an xml file that with a .PublishSettings extension), you can copy the userPWD from that file, give it to another developer and they can paste it into the password field in the Connection section of the Publish dialog.
The userPWD is a string that looks something like this:
EFFCLfDqDKHlXcA2YDZPvX4BZXWFaobxaLN0aPJd4HCfa8WxlqEkt2yywBsx

Resources