Developers have one year to transition their programs from Parse to other services. Parse even offers a migration guide for moving everything from Parse to your own MondoDB server. The point of Parse, however, was to keep developers from being involved in infrastructure decisions and scalability concerns. Hosting your own MongoDB may not be the best option for all Parse applications and indeed lacks complete support for all that Parse provided developers. So we have compiled a list of alternative services to help you find the right solution and to make a smooth transition.
What did Parse offer?
Before we get into the alternative platforms, let us recap the basics of the Parse services. With Parse, you could develop for mobile, desktop and web, and even Internet of Things (IoT) devices. For these systems, Parse featured three main services:
- Stored locations, media, etc. without having to manage a server
- Local data storage to protect against network failures
- Secure signup and email
- Social logins
- Automated background services like email, updates, and push notifications
- Ability to connect to Webhooks and Heroku for advanced configurations
- Customized push notifications for single devices and groups
- Ability to create channels for large groups
- Dashboard control for targeting audiences based on age, location, language, etc.
- Localized messages
- A/B testing
- Ability to push to 1 million devices per month for free
- Track all types of data from one central dashboard
- Slow Query tool to identify inefficient queries
- See how users interact with your app through the Parse Explorer
What do I do now?
If you are looking to move everything over to one comprehensive system, then Amazon Web Services (AWS) is for you. They basically offer the same services as Parse for mobile and IoT applications and managed NoSQL solution like AWS's DynamoDB will most likely not be shuttered anytime soon. You could also setup the Parse open source platform on an AWS EC2 server and host your services on your own boxes. If you just need to move a small application, then consider DigitalOcean for hosting the Parse platform.
DigitalOcean is the perfect solution if you only need simple servers for basic websites. With SSD hard drives and plenty of developer resources at your disposal, DigitalOcean makes it easy to get up and running quickly. While they lack a lot of managed services, their basic server offering is wonderful and with a little infrastructure know-how you can have the Parse platform self hosted rather quickly. Once you do pass the 1GB level, you may have to consider how to handle load balancing and horizontal scalability. The main benefits of DigitalOcean are:
- Floating IPs for high availability and to assist with failover
- Simple control panel with DNS management included
- Team accounts to manage account access and keep information safe
- Tier-1 bandwidth and SSD hard drives for fast imaging and file access
- Versatile API for easy auto-scaling and resource control
Amazon Web Services (AWS)
From file and archive storage to load balancing and database migration, AWS products feature everything you need to host and develop robust applications for mobile, web and IoT. Within AWS are many levels of self-managed, auto-managed, and ad hoc services, so you can fully customize your backend service needs. Some of the main features of an AWS-powered application include:
- Analytics and monitoring
- API management and hosting
- Code deployment services
- Database migration services
- Identity management
- Load balancing
- Monitoring and logs
- Performance optimizations
- Scalable file and archive storage
- Virtual private cloud servers
Amazon Elastic Compute Cloud (Amazon EC2)
AWS EC2 servers are an excellent cloud server solution for hosting web applications and services for mobile apps.
- A secure, virtual private cloud (VPC)
- Ability to run multiple instance types with memory, CPU, storage, boot partition size resource allocation for fine-tuned performance
- Complete control over all instances
- Easy scalability both vertically and horizontally
- Load balancing is available as a separate service
- Use it to host your own app and NoSQL services
DynamoDB replaces the Parse NoSQL solutions. It offers fast and flexible managed databases to your stack.
- NoSQL databases (Cassandra, Couchbase, MarkLogic, MongoDB, Titan, Neo4j, OrientDB, GraphDB)
- Automatic scaling and fast performances
- Flexible handling of document and key-value data
- Ideal for mobile, web, gaming, IoT, and more
- No need to manage hardware/software provisioning, partitioning, etc.
- Use it as a replacement for managing your own NoSQL server
If your app only needs key-value storage like Memcached and Redis then AWS Elasticache is exactly what you want.
AWS Lambda handles code processing in response to events triggered by connected apps and works seamlessly with DynamoDB.
- Automatic scaling
- No servers to manage
- Perfect for workflows and batch processing
- Use for data processing and back ends for mobile, web, and IoT apps
Amazon Simple Storage Service (S3)
AWS S3 replaces the Parse file storage system and features an easy way to pull stored information across web-connected devices.
- Automatic migration to appropriate storage classes (i.e.: Glacier)
- Configurable settings for managing data lifecycles
- General-purpose storage with scalability built-in
- Inexpensive archival storage
- Use it for long-lived data and deployment of SQLite DBs to mobile apps
Amazon Elastic File System (Amazon EFS)
AWS EFS attaches scalable file storage to an EC2 server when the latency of S3 is not going to cut it.
- Multiple instance access (i.e.: shared file storage)
- Perfect for big data applications
- Storage capacity shrinks or grows when you add or remove files
- Supports Network File System version 4 (NFSv4) protocol
- Use it to attach scalable disk storage to your app servers
Amazon Simple Notification Service (SNS)
AWS SNS is a scalable way to handle mobile push notifications and other mobile app event messaging.
- Choose individual or all devices to send messages to
- Deliver across multiple protocols (Android, iOS, SMS, etc.)
- Includes message delivery analytics and reporting
- Use it to send push notifications to your mobile app users
Are there any other options?
While AWS includes all the features of Parse on the same ecosystem, and both DigitalOcean and AWS are capable of self-hosting the Parse platform now that it is open-sourced, there are some alternatives you could use. Here are some other platforms and tools to consider:
- Developed by RedHat engineers
- Automatic and allocated scaling
- Manage containers and applications
- Monitor apps, debug, and tune on the fly
- PaaS development environment
- Push updates directly to an app
- Dynos - run any language at any scale
- Data - enterprise-grade SQL and data storage
- Elements - integrate with other apps/programs
- Heroku Connect - Salesforce integration
- Available for provisioning most anywhere including to AWS
- Containers make for easy scalability and portability
- Does take some skill to set up
- Known for their Fanatical Support
- ObjectRocket for MongoDB, which is MongoDB-as-a-Service offering
- Has similar offerings to Amazon Web Services but not really at scale
- May be the "cheaper" alternative to Amazon Web Services
How do I move forward?
Amazon Web Services (AWS) has several advantages over other platforms available for hosting web and mobile application services. Since AWS offers separate services, you do not have to run a big infrastructure but you gain the flexibility of easy scalability. Also, you only pay for what you use, which helps manage cost. Everything is metered which means a lot of the services are just as affordable as fixed-cost alternatives. If you do have a large infrastructure, use Amazon CloudFront to absorb some of your traffic and a separate RDBS if necessary.
If you have additional questions or simply want to talk through your current system and options, give us a call. We would be happy to help you come up with a plan to transition from Parse to another service.