About Siddhartha - App42 Backend as a Service

CEO & Founder ShepHertz Technologies Pvt. Ltd. Email: siddhartha.chandurkar@shephertz.com

9 Points to consider for an App Developer while deciding on Backend as a Service – BaaS

Backend as a Service - BaaS has become a preferred way for many App developers. It’s not only indie developers or start-ups who are using BaaS Service Providers for their server side needs, but even bigger App companies have started using their services.BaaS2 9 Points to consider for an App Developer while deciding on Backend as a Service   BaaS

To stay ahead of the competition, developers want to focus more on their App functionality and User experience than to spend time, money and effort on the Backend functionality . Most App companies are also developing more than one App or release new feature updates frequently and adding support for multiple devices with shorter release cycles.

For those App developers/companies who are still considering using BaaS, there are many questions and decision data points which they might have to consider before deciding on whether to go the BaaS way or not. Listed below are some of the points, which might help the App developer to decide objectively. These points might also help him/her to decide on which BaaS Service Provider is right for his/her needs.

1. Time to Market

            The rate at which new Apps are coming in to the market is phenomenal. If one tries to depict the number of Apps coming out in the market in the last three years on a chart, it will surely look like a “Hockey Stick”. Apps today have to be developed in record time. In today’s day and age if an App takes more than a few weeks or months to launch, it might be just too late. Even after one has released the App and has got the first mover advantage, new updates have to be released in the shortest possible time to keep ahead of the competition. New Apps are mushrooming from all over the world on a daily basis. If one just searches for Chess on any of the App Stores/Marketplace one will find 100s of Chess Apps. You think of an App idea and it is most likely there will be an App in that space.

If somehow the App development and deployment time, cost of IaaS resources can be reduced, it will have a huge impact on the Time To Market and cost savings.

Backend as a Service drastically reduces the Server Side development time because of the Out of the box functionality it provides. In some cases one might not need to write even a single line of code at the backend because of the out of the box features which a BaaS Service Provider offers.

Most BaaS providers also provide Custom code deployment on the cloud which enables App developers to write their own API without the need to buy and maintain servers. Custom Code on the cloud can help them to write their own API which is not supported by the BaaS provider or mash APIs at the backend so that they don’t have to make too many calls on the backend.

2. Savings in Time and Cost

Developing, buying cloud resources, managing and monitoring them is an expensive proposition. Let’s try to dig a little deeper into each of these sections though some of the points here qualify for a separate section but I’ll try to cover it here itself because of their strong inter-dependency.

 Development: Resources have to be hired who have got requisite skill set to develop scalable server side code. The sheer time which it takes to develop even small features, increases the development cost e.g. Let’s take User Management, which is a pretty straightforward module. One needs to support authentication, authorization, role management, duplicate, expiration, locking of a user, ACL – Access Control List, User Analytics etc. Such a straightforward requirement also takes time and money to develop. Not to forget to the challenges to manage scale if your App suddenly becomes an overnight success.

Cloud Resources: Cloud Resources are expensive. Other than the development cost, the infrastructure cost is another area where lots of money gets spent at a monthly recurring level. Even before the App has been launched, during development and testing, i.e. pre-revenue … pre-beta stage one has to shell out hundreds of dollars, which can easily be reduced by using a BaaS provider.

Managing Cloud Resources: Managing Cloud resources require a lot of experience and niche skills. Good cloud administrators are endangered species and pretty costly. In fact, it’s a running joke in the industry that a linux administrator just by adding cloud on his resume increases his demand of the salary hike manyfold. Setting up the App Servers for Load Balancing, Clustering, Geographical redundancy, Backup and Replication, Security, High Availability etc. is pretty challenging.

BaaS Providers offload this activity from the App developers so that the App developer can focus more on the App’s functional features, UI and let the server side non-functional requirements be taken care by the BaaS Provider

Monitoring: The App Servers, Database servers, Async Message Servers, Virtual Machines have to be continuously monitored for unexpected, unplanned and planned downtime, resource utilization, disk space etc. The backend architecture has to be robust to keep all your services live. If there is an incident and if some or all the services are down, corrective action has to be taken immediately by qualified support staff and services plus data has to be recovered to a stable state in the shortest possible time. Setting up the standard procedures and resources to handle this process is also a lot of work and costs money.

3. Supporting multiple devices and access channels

There are plethora of examples where a Web App has been ported into a mobile App and there also a lot of examples, if not equal, where Mobile Apps have been ported to Web Apps. Within the Mobile App itself one needs to support multiple devices. Supporting each new native device means that one has to write native code on respective platforms to interface with the backend. Most often the Preferred message format is JSON. The marshaling and de-marshaling of JSON messages from and into Native Objects itself is a very tedious, error prone and time taking activity. Most BaaS Providers offer Native SDKs on various platforms. Also some of them provide JS libraries and serverside language support if the App developer is taking the HTML5 route.

4. Feature Upgrade

BaaS providers keep on adding new features and enhancing existing ones. It’s like a partner who is taking care of the road map for your backend functionality. Most BaaS providers also provide an execution environment i.e. Custom Code, which allows one to extend the functionality of the existing API or add a new one.

5.  Scalability and Performance

One Tweet or a comment from an industry influencer or a TechCrunch Author can drastically drive traffic on your App. Setting up autoscaling on your cloud resources is not a trivial task. Stories about Apps doing well in a very short time are spread across on the Internet. Re-Architecting your backend might not be a luxury, which one might have. To have a scalable, high performance and reliable architecture requires a lot of time, effort, skill and cost.

6. Domain Knowledge

Every App developer is balancing and redrawing his Product Map continuously, since the market and competition is changing at breakneck  speed. One needs to be super agile to pivot in the direction of the market and customer’s demand. Sometimes very important features keep on getting postponed to further increments even when these are crucial for the App’s success. It’s a very difficult decision which an App developer has to make i.e. which features to be taken in the next release and which have to be postponed.

Apart from the sheer time to develop, sometimes the domain knowledge to develop it might not exist in the company. BaaS Service Providers provide out of the box functionality, which the App developer can integrate directly with a few lines of device side native code. And even if the App developer decides to hire a domain expert, the feasibility of the domain expert for being full time on board might not be there, especially for the start-ups.

7. My Data

Most often App developers have concerns on what happens if they need to change the BaaS Service Provider. Most BaaS Providers provide the ability to export data through their Management Console thereby giving the freedom of Vendor Portability to the App Developer.

8. Security

This is another most frequently asked question or concern. Is our data secured? BaaS services are accessible through APIs which are called through set of keys, signatures, timestamp etc. similar to the widely used AWS APIs. No user has direct access to the servers and most of the BaaS Providers also provide ACLs (Access Control List) to protect the data from unauthorized usage.

9. Flexible Pricing Plans

Most IaaS providers offer free plans based on which it is very difficult to launch a non-trivial App. The VMs are so small that developers can just do trivial tasks on the server or just run the App Server for testing. If one wants a higher configuration one has to still forecast and reserve larger instances in advance for a defined period which is in conflict with the whole concept of cloud computing where one can scale and descale as the business requires.

Almost all BaaS providers provide enough free services that the App developers can use before they become successful and launch their App on the free account and later on upgrade to a higher package as they scale both in traffic and revenue.

This list is by no means a complete list of issues or features which BaaS Providers cater to. But one can use them as  a guiding compass when they are taking a decision objectively, whether to use a BaaS provider for their backend needs or DIY (Do It Yourself).

It would be great to hear the views from the readers of this blog. In case you have any more questions, constraints, shortcomings that you think one might encounter when they are considering using BaaS please write to us at support@shephertz.com

twitter 9 Points to consider for an App Developer while deciding on Backend as a Service   BaaSfacebook 9 Points to consider for an App Developer while deciding on Backend as a Service   BaaSgoogle 9 Points to consider for an App Developer while deciding on Backend as a Service   BaaSlinkedin 9 Points to consider for an App Developer while deciding on Backend as a Service   BaaSpinterest 9 Points to consider for an App Developer while deciding on Backend as a Service   BaaSreddit 9 Points to consider for an App Developer while deciding on Backend as a Service   BaaSstumbleupon 9 Points to consider for an App Developer while deciding on Backend as a Service   BaaStumblr 9 Points to consider for an App Developer while deciding on Backend as a Service   BaaS
Follow Us
Facebook twitter linkedin google

Why Backend as a Service – BaaS cannot be ignored for developing Apps

BaaS2 Why Backend as a Service   BaaS cannot be ignored for developing AppsIn today’s day and age one does not have the luxury to build applications, which have release cycles beyond few months leave apart years like before. One needs to be super agile and focus on your core expertise, leverage whatever one can use and release the app at the earliest. Sticking to the non-invented-here syndrome, just might be a recipe for disaster.

You imagine about an App idea, be it Mobile, Web, Gaming or Social App and most likely you will find it in one of the AppStore, if not most likely someone, somewhere in some garage or a big company is working on the same idea. Time to market is essential, releasing the app late might just lose its relevance in the market or catching up with competition might become a daunting task.

Developing a non-trivial App requires expertise at various layers of the architecture and platforms.

Device : iOS, Android, Windows 7/8, HTML5, J2ME for Mobile devices

Server Side : PHP, Ruby, Python, Java, Scala, Groovy, Closure, .Net, Node.js etc

Databases : RDBMS, NoSQL, Embedded etc.

Cloud Computing : IaaS – Infrastructure as a Service, Traditional Hosting, PaaS etc.

The developer also needs to have knowledge on setting up the right configuration for Firewall ports, Security, patches, high availability, Scalability, Performance etc.

System Monitoring & Management – The health of the backend servers and managing the servers and data (e.g. Backups), geographical redundancy etc.

For a  developers the list activities to be done and skills required across platforms and layers of architecture might consume too much of their time since instead of focusing on their core features. Lot of time goes into non-core activities.

Developers eventually might think that their idea to see the light of the day might be quite far from what they had imagined.

Even if the developer is an expert, the sheer time and effort it will take to achieve this might be more than the time and budget they have.

- It might not be cost effective for them because taking up virtual machines with IaaS provider is quite expensive than one imagines and paying them even before your App is released in the market itself is something which might effect his total budget significantly.
- Development of server side logic requires different skills, different than Device technologies and might consume lot of time and effort. Even if one decides to develop in-house, which in turn might inflate the cost.
- For Service companies engaged in outsourced App development. The development is done by two separate teams, one doing development on the device/client and the other specializing on the server side. The device team is always dependent on the server team and they always end up fighting on the desired interface or their frequent changing. This dependency adds on to un-necessary pressures on time lines and team morale.
- Managing your servers and infrastructure for Non-Functional requirements is complex e.g. Scalability, Performance  High Availability, Security etc. Also requires lot of time, effort and cost. Not to forget specialized skills especially for capacity planning, sizing and setting up the Physical Architecture.

What if some of the pain points illustrated above is taken care by an external service provider. Somebody whose bread and butter is to manage backend apps. 

- Continuously keeps on adding new features and maintaining current ones with public interfaces which are versioned.
- Keeps the developer oblivious of the complexities of the deployment of the app on the cloud, server installation and its management.
- Offers out of the box features for most of the common cases.
- For the ones which require some custom logic, gives an execution environment for custom code to be deployed and run on the backend server along with the existing servers.
- Provides native SDKs for all popular platforms for device and web.
- Makes supporting more than one platform easier since the backend remains the same, only the native SDKs which have similar interface has to be changed.
- Provides a Management Console, which allows access and management of all the data generated through the usage of the SDKs.

Backend as a Service - BaaS comes to the rescue. It is a logical evolution of Platform as a Service – PaaS, which tries to solve the above pain points and more. BaaS is a layer which sits over PaaS. Most often it provides a REST based interface to all its services which can be accessed through native SDKs. A further more specific platform for Mobile development is Mobile Backend as a Service – MBaaS

- The developer just needs to add the respective native SDK library based on the technology in which he is developing, write few lines of code to integrate and voila.
- Gets out of the box functionality from day one. No need to manage servers, spend time in writing boiler plate code.
- Have flexibility to write custom code.
- No need to learn, hire or develop most of the server side functionality.
- And with all of the above, save time, effort and cost.

Backend as a Service is getting evolved everyday. Its also participating in the MEAP vision  helping app developers to become successful with MEAP – Mobile Enterprise Application Platform a term coined by Gartner in their Gartner Magic Quadrant.

Applying the cliched 80-20 rule. Intention is to cover 80% of the features which one requires on the server side for App development. For remaining 20% features, some BaaS Providers have started offering provision to run custom code on the cloud. One can even mash two or more APIs and carve out a higher level facade API.

Most Common services which the BaaS Providers offer are :

- User Management
- Storage
- Push Notification
- Social
- Geo Spatial

Some of them provide many more services across domains

Already Backend as a Service is being used by many developers across platforms. The pace at which it is evolving, it is surely a technology which one cannot ignore and to reckon with.

twitter Why Backend as a Service   BaaS cannot be ignored for developing Appsfacebook Why Backend as a Service   BaaS cannot be ignored for developing Appsgoogle Why Backend as a Service   BaaS cannot be ignored for developing Appslinkedin Why Backend as a Service   BaaS cannot be ignored for developing Appspinterest Why Backend as a Service   BaaS cannot be ignored for developing Appsreddit Why Backend as a Service   BaaS cannot be ignored for developing Appsstumbleupon Why Backend as a Service   BaaS cannot be ignored for developing Appstumblr Why Backend as a Service   BaaS cannot be ignored for developing Apps
Follow Us
Facebook twitter linkedin google

Grails Plugin for App42 Backend as a Service

We have launched Grails Plugin for our 300+ App42 Backend as a Service APIs

http://grails.org/plugin/app-forty-two-paas

To install the plugin -
For Grails 2.x

1
grails install-plugin app-forty-two-paas

For Grails 1.3.x
you need to add an extra plugin repository definition in BuildConfig.groovy

1
2
3
4
5
6
repositories {
grailsPlugins()
grailsHome()
grailsCentral()
grailsRepo "http://grails.org/plugins" // You have to add this line
}

To use various modules one needs to just inject the respective service. For e.g.

- To use the User Management Service you can inject the userService

1
2
 def userApp42Service
userService.createUser("userName", "password", "email@shephertz.com")

- Upload and CDN Service

1
2
def uploadApp42Service
uploadApp42Service.uploadFile("FILE_NAME", "FILE_PATH", UploadFileType.IMAGE , "FILE DESCRIPTION")

- Storage Service

1
2
3
4
5
def storageApp42Service
def dbName = "DATABASE_NAME"
def collectionName = "COLLECTION_NAME"
def json = "{"name":"JSON_NAME"}" // example to create json
def storageObj = storageApp42Service.insertJSONDocument(dbName, collectionName, json);

Checkout our 18+ modules ranging from Technical Services to Business Service i.e.
File Upload
User Session Management
Email
Message/Queue
Gallery
Storage
Logging
Recommendation
Geo Spatial
Gaming
Review/Rating
Shopping Cart/E-commerce
Catalogue
Image Processor
Social

To read in detail about each of the modules you can visit our website http://api.shephertz.com .

twitter Grails Plugin for App42 Backend as a Servicefacebook Grails Plugin for App42 Backend as a Servicegoogle Grails Plugin for App42 Backend as a Servicelinkedin Grails Plugin for App42 Backend as a Servicepinterest Grails Plugin for App42 Backend as a Servicereddit Grails Plugin for App42 Backend as a Servicestumbleupon Grails Plugin for App42 Backend as a Servicetumblr Grails Plugin for App42 Backend as a Service
Follow Us
Facebook twitter linkedin google

Email Service

Configure Email Server configuration (server, port, isSSL) and use simple App42 Cloud APIs – Backend as a Service (BaaS and MBaaS) and start sending emails through your Mobile and Web App using native SDKs for Android, iOS, Windows 7, J2ME, S40, Java, PHP, Ruby, C#

8046709a 9a4d 4fc3 910a a3e6abc0436f Email Service8931e3f4 f630 47a3 9675 fa5b55cf7e24 Email Service


//

twitter Email Servicefacebook Email Servicegoogle Email Servicelinkedin Email Servicepinterest Email Servicereddit Email Servicestumbleupon Email Servicetumblr Email Service
Follow Us
Facebook twitter linkedin google