Smartphone applications can not exist in vacuum. Expect for the most basic utility and game types of applications, mobile applications rarely work in standalone mode. They require network access to get various types of information. For example, if you are creating a location based deals application, to retrieve the deals pertaining to an area, the application will need some sort of server access. Typically such application will gather the user location information and then it will access a web service to get deals for the location.
This means that as the owner of a smartphone application you will need to bear the hosting cost of the server throughout the lifecycle of the application. This is why it is important for the owner of the mobile application to understand the various types of hosting solutions available.
Here are the main types of hosting solutions available:
1. Shared Hosting
2. VPS Hosting
3. Dedicated Server Hosting
4. Cloud Hosting (IaaS – Infrastructure as a Service), etc.
This means that a single server machine is shared in hundreds of websites. Because of this shared hasting is generally very cheap, like below $10 per month.
These generally have preconfigured OS and server side software. No additional software can be installed on this type of server. For example, if the standard shared server provided by the hosting provider comes with MySQL 5.1 and you want to use MySQL 5.5, then you are out of luck. There are many other short comings of shared hosting in terms of reliability.
For such reasons shared hosting is suitable only for low traffic websites.
VPS is Virtual Private Server. This uses OS virtualization so that single big server can run multiple isolated Operating Systems as virtual machines. Here the user has complete control over the OS and software installed on it.
Most VPS plans are mainly based on the amount of dedicated RAM available to your virtual machine. Though VPS hosting plans start with something as low as 256MB of dedicated RAM, generally during development of your Web Application it is advised that you should use a VPS with 1GB of RAM. As your application goes into production a VPS having more RAM can be set up as per the requirement of your application and the expected traffic.
Generally an unmanaged VPS plan with 1GB RAM will cost you around $40 per month. In a VPS, either you or your smartphone application developer must have the system administration knowledge. Of course you can go for a managed VPS plan but generally these are much costlier.
Dedicated Server Hosting
This is similar to a VPS in the sense that you have complete control over the Operating System and the software installed on it. However the whole server is available to your application and no virtualization is involved. The server hardware can be provisioned as per the requirement of your application. Your monthly cost depends on the hardware provisioned. Generally unmanaged dedicated hosting plans start around $170 – $180 per month.
Cloud Hosting (Iaas : Infrastructure as a Service)
In IaaS avatar, cloud hosting can be viewed as huge pool of computing resources. You can provision the servers on the fly as required, in contrast to dedicated servers where you have to notify your provider 3-4 days in advance regarding the computing capacity required by your application.
The resources used by your application can be scaled up and scaled down on the fly (within few minutes) as required in a cloud infrastructure. So you can have set ups like, during off peak hours your application will use 2 servers and in the peak traffic hours 2 more servers will start automatically and start handling additional traffic.
In its lowest form a cloud based server is similar to a regular VPS. Once you need more computing power than a single server, cloud hosting can deliver many useful solutions.
Here again the OS and software administration is your and your smartphone application developer’s responsibility. So the automated solution I mentioned above does not happen automatically. Your system administer actually needs to write automation scripts to make it happen.
In barebones Amazon’s EC2 cloud is a IaaS service. (Though Amazon also provides PaaS on top of EC2).
Calculating cost of a IaaS cloud like EC2 is a complicated affair because you are actually charged for the computing capacity you use. So the server charge is by hour, disk space charge is per GB per month, the network bandwidth charge is per GB of outgoing traffic.
This is a blessing and a curse too. On one hand you can just turn off the unwanted servers (during development time especially) and save on cost. On the other hand you don’t know what will be the exact bill at the end of the month, though you can make an educated guess like, for a small server instance with 1.7GB of RAM you will end up somewhere around $60-$70.
Read More About How to Host a Mobile App Here.