Azure App Services


#1

Hi has anyone deployed an Ionic 2 app to Azure?

I would like some help setting up app api and a web site for my app


#3

I have no experience with Azure, not a big fan of Microsoft services. But I did deploy apps on other cloud service providers. I think the infrastructure has no impact on the process itself, so I’ll share with you the technologies that I find reliable and easy to use.

For your API, there are endless choices out there and many different languages and technologies to use. I personally like to stick to NodeJS based technologies because I will end up writing my server code with JavaScript/TypeScript, which is the same language I will be using for my front-end applications. A very popular framework for building APIs is ExpressJS. It is almost a minimal framework, with lots of tutorials and large community. They’re pretty popular on Github too. Express can help you build anything from a small API to a full server-rendered site.

Express, as well as almost any NodeJS framework, isn’t the best at doing large computations but it’s very good at helping different users at the same time and performing database CRUD operations. You just have to write your code correctly so that everything runs asynchronously.

I did some load testing not too long ago on a $10 container from DigitalOcean. The container had 1GB of RAM, 1 CPU, and SSD storage. The server was able to handle 150+ clients at the same time requesting a URL that had to do over 10 geospatial queries with MongoDB before it started timing out and/or delaying requests. As for easier requests, such as retrieving an object by ID from my database, the server as able to handle 400-500 requests/second with almost no timeouts. These are pretty good numbers for a single-cpu container. Now put a few of these containers together in a cluster, and you will have a great setup.

There are other frameworks out there that can help you out, they kinda excel in different areas compared to Express:

  • Restify: light-weight / minimal API. Kinda similar to express, but not as big, not as popular. They focus on being just an API, not an army swiss knife.
  • Sails.js: this is a different concept than Express, they’re really good with realtime data management and they also make database/model management easier!
  • Meteor is the leading Isomorphic JS framework. It’s basically an all-in-one framework that lets you build the whole stack in one project/codebase. Angular has a similar thing called Angular Universal which you might find more interesting if you’re more of an Angular person, it kinda works better if you’re working with Ionic 2 so you can copy most of your components code and providers.

Once you build your server with any of these frameworks, you can deploy it to (1) a container/VM/server and configure it manually, or (2) app engine which comes preconfigured with all the things you need. Not sure what names does Azure use but I’m sure they have these things.

I hope that helped.


#4

Thanks for taking the time to write such an thoroughly answer.

Creating a mobile app with Ionic is new territory for me. I am a .NET developer and have been working with microsoft technologies the last 20 years.
That’s why I want to use .NET for the back-end, and another reason are that I have a MSDN subscription that pays for a monthly server setup.

I have been looking at the MEAN stack but nosql and node is just to much to take in for now (-:

Again thanks for writing.


#5

.NET will work just fine.

What part of the setup or communications do you need help with?


#6

Hi. I was looking at an msdn article about that exact thing. Published in April 2016, so should be pretty relevant.

https://blogs.msdn.microsoft.com/visualstudio/2016/04/04/visual-studio-taco-update-8-and-new-ionic-templates/#comments

There’s a cordova plugin for Azure, maintained by the Microsoft VS team
https://www.npmjs.com/package/cordova-plugin-ms-azure-mobile-apps

There are a few plugins that would help in the first link.

B