5 steps how to move your app from Parse to AWS or Heroku
Yesterday we got to know about a surprise move made by Facebook: shutting down Parse.com. This BaaS service used for developing the backend infrastructure of mobile apps is going to wrap-up it's activities by January 27, 2017. That means Parse users have a year to perform data migration and move their applications elsewhere.
Thus, it’s high time to look through the alternatives and choose suitable cloud computing service. Parse.com has introduced the utility that allows making the migration run smoothly, and provides maintenance of apps until the very shutdown. Still Parse officials recommend to move off the platform as soon as possible. Besides, you surely don’t want your apps to get stuck on the non-existent platform. That’s why we propose you to take a look at some alternatives.
Common Parse alternatives
Cloud computing platforms market is undoubtedly one of the most competitive: Amazon Web Services, Microsoft Azure, Google Compute Engine, Salesforce Heroku are able to offer services of building and hosting mobile apps. Quite logical that mobile app will intend to migrate on one of them.
Amazon Web Services is the leader in it's niche thanks to a large number of features it can offer and reasonable prices for the quality of provided services. Heroku cloud computing platform offers it's adherents the benefits of fast deployment and cost efficiency. Besides, when Parse stops working, Heroku seems to be the simplest alternative thanks to an existing partnership between Parse and Heroku.
No matter what your choice is, here are some must-have attributes of any company that strives to take over hosting duties:
- OS and Android SDKs availability
- Being Node.js friendly
- Automated backup
5 steps to migrate from Parse
The migration recommended by the Parse team itself requires no more than 5 efficient steps:
Step 1. You have to move the data from your Parse-hosted app to a self-hosted database, for example, Elastic Compute Cloud (EC2) instance or suggested by Parse, MongoDB.
Step 2. You set up a local Parse Server and as a result you have your app running locally but still connected with the data located in the database (watch Step 1).
Step 3. You migrate the Cloud code to Parse Server. Note that some of the native Parse modules are not available on Parse server, which is going to cause some great inconvenience to developers.
Step 4. You deploy your Parse Server to any infrastructure provider (AWS, Heroku, etc.) Now you make all the necessary changes to the code using the platform backend and receive a renewed app.
Step 5. You publish your new app in any of the App Stores replacing the existing one.
The detailed instructions can be found in Parse migration guide. When you cooperate with the company that has a great expertise in dealing with backend architecture and cloud computing, the process seems rather simple and obvious.
Still such solution is going to result in the necessity to rewrite 30-50% of your code, especially if your app functionality goes beyond the functions of data storing. Parse server presently has a very limited number of supported functions to serve complex apps. Let’s examine these limitations in details.
When your app is based in Parse Server, you should pay a careful attention to it's functionality as there are a few functional areas where Parse Server doesn’t provide compatibility with Parse hosted backend:
- Analytics. If your app provided it's users with analytical tools, you will have to set up it anew using Google Analytics or Mixpanel, for example.
- User Authentication is allowed only with the use of Facebook (if a Facebook App ID is configured) and with the help of username and password-based authentication.
- Push Notifications feature in an app will be off, as well as welcome emails and email verification. Update: Parse Server announced iOS and Android push notification support.
- Among other unavailable functionality is Dashboard, Webhook, In-app purchases, Jobs, etc.
It’s quite predictable that you may want to fill in missing functionality and fix the bugs by turning to the company that built your app. Your motives are clear – who can better fix everything but those who created the app?
Still, this approach may be risky, especially if your company-provider doesn’t have the Web-development department. Quite possible that they don’t: initial Parse choice largely indicates that. Look closely to the team that potentially will migrate your application, you don’t want them to outsource this job to someone else for your money, do you?
Cleveroad specialists can carry out straightforward migration and ensure your app smooth running any significant changes in the client-side code and, therefore, your customer’s user experience.
Not to be unfounded, we will share our approach with you right away.
How we help to eliminate the risks
Parse has provided developers with an open-source repository: API compatible router package for Express. Parse web apps are built using an integrated Express framework. As at Cleveroad we have a fully-staffed Web-development department that has built over a hundred apps with the Express framework (from 2.x to 4.x), we can freely handle with integration of push notifications, payment gateways, in-app purchases, social media, analytics and everything you may require. We are going to use the following tools:
- Authentication. Using Winston logging library that is integrated in Parse. Winston is designed to be a simple and universal logging library with support for multiple transports. A transport is essentially a storage device for your logs. Each instance of a winston logger can have multiple transports configured at different levels.
- We perform authentication via social media using Passport.js library. An enormous collection of means to serve your app logging needs.
- Webhook which is used for periodic parsing of third-party resources is delivered by parse5 toolset.
- The best way to provide an app with audio / video / archiving functionality is to use decompress-zip kit.
- Database setup and maintenance can be best performed by any of these options: PostgreSQL, MySQL, or Redis. Parse recommends using MongoDB, but it doesn’t support the horizontal scaling, which can be inconvenient for some apps. Redis at the same time provides similar functionality and horizontal scaling in addition. MySQL databases are known to be extremely simple to maintain.
- Nodemailer is the fastest way to handle emails.
- Push notifications are set up with either GCM (Google Cloud Messaging) or APN (Apple Push Notification) services.
All in all, applying these tools the migration time can be reduced from 60% to 25%. So, get in touch with us without wasting your time and make sure that nothing wrong has happened with Parse shutting down.