Friday, October 6, 2017

Azure App Service

Updated 2019 sept. 3rd
Topic : An update on Azure App Service offering, available from summer 2018. Here are some explanations, details and useful links

A little bit of history:

2015- Summer 2018
First simplification : Creation of the App Service offering that gathers Web App, API App, Mobile Back-end, Logic App and Function.

Before 2015, for Azure classic portal, there was 2 offerings - Azure Websites and Azure Mobile services.
Since the beginning of 2015 and in Azure new portal, both of them got rolled into something called Azure App Service which also included two more kinds of apps - API Apps and Logic Apps. Recently a new App Service the Function has joined the Microsoft Azure App Service offering


2015 General presentation

App Service is a new offering for Azure wich pull in bunch of services into a single offering called App Service including Web Apps, mobile, API and Logic. It is a new way in Azure to gather different sevices so as they can enjoy the same capabilities. All the new features what we had in Azure Web Sites are available across all for new type of services (mobile, API and Logic). That includes:
  • How they are scaled
  • How they behave
  • Things like application insights
Summer 2018- now (2019)
Second simplification. The App Service offering becomes even more simple :
  • Web App, API App, Mobile back-end, everything become a Web App.
  • Arrival of the Container (sept. 2017 Linux).
  • Logic App and Function become serverless App
Since 2018, looking at the 2019 Microsoft welcome page for App Service, we have now rather the choice between Web Apps, Web App for Containers and API apps (1).



We will see bellow that the API App seems to be technically included in the Web App feature. The API App category seems to have been kept for marketing reasons only.
Logic App and Azure Functions seem to have been removed from the App Service offering, although they are still mentioned in the Microsoft App Service documentation as serverless Apps, but not very visible...(2).
useful links:
Link to Microsoft App Service Portal
Fantastic training courses on Azure from Microsoft including App Services

More details

As written above, for App Service creation in the portal and as mentionned in this other Microsoft doc, it seems to have actually no more disctintion between Web Apps, Api Apps and Web App for Containers, everything has become a Web App. You have to chose at creation between Web App for code or Web App for Container but no choice reagrding Web App or API App. Thus, regarding the global name, create an App Service comes back to create a Web App since we have now, no more other choice left, using the "App Services" left menu item in Azure Portal.




For sumarizing, in 2019 App Service = Web App, and Web App can host everything: Web Applications (Web Sites), API, Mobile Back-end and Container. Furthermore, New Web App can
  • be based on any environement (Windows, Linux),
  • any techno, (.Net, PHP, Python, Node.js, etc.),
Logic App and Azure Functions seem to have been removed from the App Service offering, although they are still mentioned in the Microsoft App Service documentation as serverless Apps, but not very visible...(see 2 at first screenshot).
And even if, when creating a Function, it still appears in the App Service section of the portal.

Regarding the Mobile App

Mobile App (back-end API) is deprecated although the creation is still available in the portal, but a message warns you that this feature will be removed on 2019 November 11.



The name Mobile App still remains but refers now to a global offering to:
  • create Applications on mobile device +
  • create the back-end in Azure for the mobile application (that is an App Service) +
  • solutions for the other concerns (storage, authentication, push notifications)
This was the key benefits of the App Service Mobile App feature in 2015. There are still relevant but has to be seen as a global offering and no more as an App Service.
Accelerate your mobile app development with this turnkey way to structure storage, authenticate users, and send push notifications.
With native and cross-platform SDKs for iOS, Android, Windows, and HTML, as well as a powerful and flexible REST API, Mobile Apps empowers you to build
connected applications for any platform and deliver a consistent experience across devices.

Integrate with SQL, Oracle, SAP, MongoDB, and more.
Make your app work offline and sync.
Connect to on-premises data.
Leverage enterprise single sign-on with Active Directory.
Integrate with social providers like Facebook, Twitter, and Google.
Broadcast push notifications across platforms, with customer segmentation.
Gain insights with mobile analytics.
Auto-scale to millions of devices.
source : Azure Portal Description when attempting to create

Here is an old video about Mobile App from 2015:
Microsoft Azure Mobile App Service Presentation - Azure Friday, (03-19-2015)
Useful links for Mobile App global offering:
Link to Azure Mobile Apps documentation
Link to Azure Friday Video - Azure App Service Mobile Apps with Kirill Gavrylyuk
Link to Mobile App Microsoft Portal
The Microsoft documentation for Node.js backend with Mongo DB has changed

"Try Azure App Service"

Want to play with Azure Portal and Azure App Services for free (no credit card information needed by Microsoft, just a social account for signing)? Go there:



By the way, you can notice that, in "Try Azure App Service", you can only chose between Web App and Web App for Containers and that, thus, Web App and API App has become the same thing.
From summer 2018, the only resource running an application (Web site, API, Mobile Backend, Container) in Azure App Services, is the Web App .
You can also notice that serverless Apps (Logic App, Function) has been removed from the App Service offering.

The new types of App Service : Web Apps (API Apps), Web App for Containers, (Serverless App)

Web App


Azure App Service is an HTTP-based service for hosting web applications, REST APIs, and mobile back ends. You can develop in your favorite language, be it .NET, .NET Core, Java, Ruby, Node.js, PHP, or Python. Applications run and scale with ease on both Windows and Linux-based environments
source: Microsoft App Service overview
Create and deploy mission-critical web applications that scale with your business
  • Supports Windows and Linux platforms
  • Built-in autoscale and load balancing
  • High availability with auto-patching
  • Continuous deployment with Git, Team Foundation Server, GitHub and DevOps
  • Supports WordPress, Umbraco, Joomla! and Drupal
  • Jumpstart your app building
    Get your web apps into users’ hands faster using .NET, Java, Node.js, PHP and Python on Windows or .NET Core, Node.js, PHP or Ruby on Linux. Use a fully-managed platform to perform OS patching, capacity provisioning, servers and load balancing. Configure from CLI or the Azure portal or use prebuilt templates to achieve one-click deployment.
  • Increase developer productivity
    Start fast and finish faster with source code integration from GitHub, live debugging and one-click publish directly from Microsoft Visual Studio IDE. Easily connect to your database of choice and tap into an ecosystem of OSS packages, APIs, connectors and services through the Azure Marketplace, expediting development. Quickly add custom domains and SSL, single sign-on (SSO) integration with popular identity providers and application health monitoring to your apps with the Azure portal.
  • Ship updates faster
    Automate deployments with continuous integration/continuous deployment (CI/CD) capabilities using DevOps, Bit Bucket and GitHub. App Service creates an association with the selected repository, so your apps are updated each time your source code changes. Schedule performance and quality tests with staging environments, use deployment slots to swap staging to production in seconds and roll back to previous versions without downtime.
  • Achieve global scale on demand
    Get high availability within and across Azure regions as you deploy data and host services across multiple locations with one mouse click. Automatically scale vertically and horizontally based on application performance or customisable rules to handle peaks in workload automatically while minimising costs during off-peak times. Meet the most rigorous app performance and scalability requirements with the newly introduced D-Series compute option.
  • Get actionable insights and analytics
    View application performance and health end to end, so you can make the decisions that improve your business. Azure Monitor provides detailed views of resource usage, while Application Insights provides deeper insights into your app’s throughput, response times, memory and CPU utilisation and error trends.
  • Take advantage of hybrid consistency
    Get a flexible and unified approach to building and managing apps that can run across both the cloud and on-premises. Deploy your apps to App Service in your cloud of choice—Azure, Azure national clouds or even on-premises with Azure Stack. Securely run your apps in your Azure Virtual Network at large scale with enhanced privacy, power and performance using an App Service Environment.
  • Choose enterprise-grade services
    Host your apps on a highly-secure cloud platform that complies with ISO information security standards, SOC2 accounting standards and PCI security standards and count on App Service to deliver on enterprise-level SLA. Use Azure Active Directory (AD), as well as other popular identity providers, to authenticate and authorise app access. Azure AD provides identity management and secured single sign-on (SSO) integration with thousands of cloud SaaS applications such as Office 365, Salesforce, Dropbox and Concur.



Web App for Containers



I have tested these Web Apps. First thing to know:
  • It is free for a Linux stack but you have to pay for a Windows one
  • It is not available for all regions
  • When created, the icon in the portal is exactly the same than for the other Web Apps (only API App kept a different icon)
When familiarized with Docker that doesn't take much time, it is amazingly easy to deploy a container in these Web App through the portal. You can practice with this tutorial: Build locally a docker image and deploy it to an Azure Web App for containers




API App


Warning:
As written several time before, it seems that this category has been kept only for marketing reason. It seems that there is only Web App category left from now in the Portal. App Service = Web App.
Anyway I post here a way to create Api Apps. I tried and didn't receive a message saying they are deprecated (as I received for Mobile Apps)

Microsoft information:
Create and deploy RESTful APIs in seconds, as powerful as you need them
Leverage your existing tools to create and deploy RESTful APIs without the hassle of managing infrastructure. Microsoft Azure App Service API Apps offers secure and flexible development, deployment, and scaling options for any sized RESTful API application. Use frameworks and templates to create RESTful APIs in seconds. Choose from source control options like TFS, GitHub, and BitBucket. Use any tool or OS to develop your RESTful API with .NET, Java, PHP, Node.js or Python.

  • Fastest way to build for the cloud
  • Provision and deploy fast
  • Simple access control and authentication
  • Secure platform that scales automatically
  • Great experience for Visual Studio developers with automatic SDK generation
  • Open and flexible for everyone
  • Monitor, alert, and auto scale (preview)
source : Azure Portal Description when attempting to create

Useful links:
Link to Microsoft Azure API App Service Portal
Link to the old API App Service Video (11-18-2015) not updated

Creation of an API App

The only way to create Api Apps today (september 2019) is to use the + Create a resource and make a search. The API App has been hidden from the web category. Thus they have not been deprecated but might be soon I think.



Then, click on the API APP button to access to the creation blade. No deprecation message for the moment.



you can plug your App on an existing (free) service plan, useful!



You can notice that the API Apps kept their icons.



I checked a little bit and for the moment, no difference with a Web App found, excepted the icon.

I didn't update this last part because serverless apps seems to be outside of the real App Service scope from mid 2018.
Even if, when creating a Function, it appears in the App Service section of the portal.

Serveless App

Logic App



Logic Apps allow developers to design workflows that articulate intent via a trigger and series of steps, each invoking an App Service API app whilst securely taking care of authentication and best practices like durable execution.
Easy to use design tools - Logic Apps can be designed end-to-end in the browser. Start with a trigger - from a simple schedule to whenever a tweet appears about your company. Then orchestrate any number of actions using the rich gallery of connectors.

Compose SaaS easily - Even composition tasks that are easy to describe are difficult to implement in code. Logic Apps make it a cinch to connect disparate systems. Want to create a task in CRM based on activity on your Facebook or Twitter accounts? Want to connect your cloud marketing solution to your on-premises billing system? Logic apps are the fastest, most reliable way to deliver solutions to these problems.

Extensibility baked in - Don't see the connector you need? Logic Apps are part of the App Service suite and designed to work with API apps; you can easily create your own API app to use as a connector. Build a new app just for you, or share and monetize in the marketplace.

Real integration horsepower - Start easy and grow as you need. Logic Apps can easily leverage the power of BizTalk, Microsoft's industry leading integration solution to enable integration professionals to build the solutions they need.

source : Azure Portal Description when attempting to create

Creation:

On Azure Portal Click on App Service, then on Add:



Then, scroll down to display the Logic App Section, and on the "More" link to display all the options regarding Logic Apps:




Function


Write any function in minutes – whether to run a simple job that cleans up a database or build a more complex architecture. Creating functions is easier than ever before, whatever your chosen OS, platform, or development method.
source : Azure Portal Description when attempting to create


No comments: