In the software development lifecycle(SDLC),
deployment is the final step. It’s the step where we host the product/application/app to make it available for our users and customers. Where all the team’s hard work over days, months and years finally pays off.
Usually we ship a product (or app) to a customer’s location and help deploy it on the customer’s premises. Alternatively, we deploy the app in-house and make it accessible to whoever needs to use it.
Both of these traditional approaches have plenty of disadvantages because there are so many additional requirements involved. We need to:
- Identify a dedicated person/team who is knowledgeable about deployment processes.
- Procure and manage one or more physical machines.
- Maintain those machines with hardware and software upgrades.
- Patch the environment periodically with security vulnerability fixes.
- Actively consider factors such as performance, cold start and high availability.
Thankfully, with the advent of Cloud computing,
Software as a Service(SaaS), and
Platform as a Service(PaaS), the traditional model is rapidly being replaced. More and more developers, organizations and hobbyist programmers are hosting, managing, and maintaining their products and apps in the cloud. It’s freer, simpler, and more convenient.
In this article, we will talk about 10 such platforms which allow you to deploy your apps and live happily ever after.
Website Link: https://vercel.com/
Vercel is a serverless app deployment platform designed to quickly deploy and host web applications. It is equipped with an easy-to-use user interface, which enables you to smoothly trigger a workflow and deploy the app.
Let’s take a detailed look at the many excellent features that make this the product of choice for many developers.
- Build and Edge Deploy: You can deploy your app with a few clicks and host it for free. The CI/CD is enabled automatically, and it allows you to preview your app’s state for every git branch before merging them. Vercel deploys the app on CDN, so it’s fast and secure.
- Flexible Plan: It is free forever for non-commercial and hobby projects. The pricing plans are here.
- Serverless Edge Functions: The serverless functions enable you to move the server-side logic to an edge managed by Vercel’s network. You benefited from added dynamism in your app without sacrificing speed and performance.
- Server-Side Rendering: Server-Side rendering (SSR) could be an excellent choice for your application architecture. Unlike many other deployment platforms, Vercel supports it.
- Domains: Vercel provides you with an app-specific domain. However, you can easily configure it to map to a custom domain.
- Integration with Marketplace: With Vercel, you can integrate your application with many other services and databases, which helps you to extend your app. You can find the list of integrations here.
- Starting Templates: As a quick start, you receive templates out of the box to deploy and then continue the development and deployment. These templates are available for various tech stacks, and you can take a look at the template list here.
- Analytics: The analytics help you ascertain how your app site is doing from customer/user responses and visits. This function is not available under the free plan, however.
Website Link: https://www.netlify.com/
When it comes to speed in shipping the client-side application, Netlify is an excellent choice. Deploying your app with this product is insanely easy, and it is equipped with a whole bunch of outstanding feature offerings.
- Built-in CI/CD: Set up your code with GitHub and other version control services in a few clicks. It supports auto-deploy and offers a preview build for each of the branches.
- Generous Pricing Plan: You can access a very generous pricing plan to host your client-side app. However, you want to use Netlify as a team, you need a different plan. Please see the plan details and pricing here.
- Domain and DNS Management: Netlify provides you with an app-specific URL that you can customize and map as you see fit. DNS management is easy.
- Cloud-Scale Serverless Functions: Netlify enables you to write back-end serverless functions powered by AWS lambda. You can think of them as back-end services that can be written to carry out tasks.
- Identity & Authentication: You can manage logins and registrations using Netlify’s Identity and Authentication service, and enable the function via app hosting (you can learn more about identities here).
- Plug-ins: Netlify plug-ins will supercharge your build. Using these plug-ins, you can perform various checks including accessibility, e-2-e tests, HTML validations and many others. You can always develop a custom plug-in if you do not find the pre-built alternative you are looking for.
- Forms: Netlify forms allow you to manage form submission without any server-side code.
- Analytics: You can enable analytics with Netlify for every deployed project. However, analytics is not part of the free plan.
Website Link: https://www.heroku.com/
Heroku is a Platform as a Service (PaaS) that offers support to several different programming languages including Node.js, Python, Go and Java. Heroku is a more generic platform than Vercel and Netlify, and here are some of its key features.
- Multiple Programming Language Support: This makes Heroku different from other deployment providers; you can host the application in configurable
dynos, a virtual system.
- Entire App Deployment (Fullstack): Thanks to the support of multiple languages, we can deploy a full-stack application on Heroku.
- CI/CD: It is easy to connect to the code repositories in the source control services like ‘GitHub’ and enable auto-deploy.
- Add-Ons: You can extend and run your applications with services like SendGrid (email), MongoDB (database), and many more. It is a huge advantage that we don’t have to manage these services ourselves.
- Plans & Pricing: Heroku is free forever for hobby projects. It includes non-commercial apps, prototypes and side projects. However, you need to get the plan that is best adapted to commercial projects. Check out the details here.
- Code & Data Rollback: Your code and data can roll back to the previous instance if something goes wrong, so you’ve got guaranteed security.
- App Metrics: You can monitor and make decisions, which helps you to know how the apps are performing.
- Buildpacks: You can extend and customize your tech stack using community-driven buildpacks.
Website Link: https://firebase.google.com/
Firebase from Google offers application hosting, deployment, and many helpful back-end services. Here are some key of its key advantages:
- Hosting: You can host microservices, API, and single-page web apps. Setting up an SSL and custom domains all comes with the hosting service.
- Support of Real-Time Database: The NoSQL database helps store and sync data in real-time.
- Free Plan: The spark plan helps you start free, explore and build prototypes. You pay as you consume.
- Authentication Providers: With Firebase hosting, your app can integrate with several auth providers. You can leverage social logins using Google, Twitter and Facebook.
- Analytics with GA: As an offering from Google, it integrates seamlessly with Google Analytics (GA) and is free to use.
- Rich in Utilities: Other utilities like Firebase ML help you enable machine learning features in your app.
5. GitHub Pages
Website Link: https://pages.github.com/
GitHub Pages is an app hosting site where simplicity wins. If you are a user of GitHub, getting started with GitHub Pages is a cakewalk. In most cases, you don’t even have to know any programming languages to get started. The key features are:
- Simplicity: GitHub Pages are great if you’re looking for simplicity in deploying and managing the site. If you are using GitHub already, you don’t have to learn anything additional.
- Perfect for Documentation-Driven Sites: It is perfect for document-driven websites like blogs. You can also host a static site.
- Custom URLs: GitHub allows you to map your GitHub pages site to a custom domain.
- Security: The site will be created for your repository under
GitHub. So it is already secured and running in GitHub’s infrastructure.
6. AWS Amplify
Amplify is an essential AWS service for building, deploying, and hosting apps. Be it static websites, single page apps (SPAs) or server-side rendered apps (SSRs), amplify works really well. The key features are:
- Amplify Toolset: AWS Amplify has a rich toolset to help you with development, building, deploying, and hosting. With
Amplify Studio, you can build a full-stack application visually, and
Amplify CLIhelps you to configure the app back-end. You can connect to other AWS services using
Amplify Libraries. Finally,
Amplify Hostinghelps to host the app.
- Part of AWS Ecosystem: As part of the AWS ecosystem, you can bring in many other AWS services and integrate them to solve compelling use cases.
- Fullstack App Management: Unlike many other platforms we have discussed, you can manage both front-end and back-end applications with Amplify.
- Extensive Documentation: AWS documentations YouTube videos are extremely informative. The community is so vast that you will get all the help you need.
- Pricing: AWS Amplify includes a free tier service for one year, and is chargeable on a usage basis after that. Please check this link to know more.
7. Google App Engine(GAE)
Website Link: https://cloud.google.com/appengine
Google App Engine is an offering of Google Cloud Platform (GCP). It is a serverless platform that helps in building highly scalable apps. Its key features include:
- Support for Various Programming Languages: You can deploy applications built with Java, Python, Node.js, Go, and many more.
- Docker Supported: Google App Engine supports containerization. So it-s a big win.
- Completely Managed Serverless Platform: This is a fully-managed platform, so as a developer you don’t have to worry about deployment and post-deployment challenges.
- Application Diagnostics: You can check the health and performance of the app anytime using Cloud Monitoring. Also, you can run app diagnosis using the Cloud Debugger.
- Part of GCP Ecosystem: Google App Engine is part of the Google Cloud Platform(GCP) ecosystem, which helps connect to other GCP services easily. Please check this link for the platform’s pricing information.
The DigitalOcean app platform is a robust programme to build, manage, and scale your apps. It provides you with a fully managed platform so you can place your entire focus on one thing: building applications. Here are some of the fantastic features,
- Security: The platform secures your apps by default. DigitalOcean takes care of SSL certificate renewal, mitigating security attacks and securing connections out-of-the-box.
- Fully Managed: Infrastructure, deployment, provisioning and dependencies are all managed by the platform. As a user, it provides a simplistic workflow for deployment. You can deploy a static site, web app, background workers and APIs.
- CI/CD: We can deploy code directly from GitHub repositories with the auto-deploy enabled.
- Alerts & Monitoring: As a user, you can see how your app performs post-deployment.
- Price & Plan: There is a starter free plan with restrictions. You can find out more about it here.
Website Link: https://surge.sh/
Surge is a popular choice among front-end developers for hosting and deploying static apps. It is a perfect platform if you want something lightweight yet powerful for static-site deployment. The key features are:
- CLI Driven: You will love working with Surge if you are a Command-line interface (CLI) lover. You can literally deploy and host your app with a few keystrokes!
- A highly generous free plan: Surge is free forever. You get unlimited publishing, custom domains, and a basic SSL setup with the free plan. The Surge professionals have more power to add and are priced every month. You can read more here.
- Custom 404 pages: Surge shows a default 404 page when the user hits a URI that doesn’t exist. You can customize it.
- Build tool integrations: Surge has build-tool integrations with Jekyll, Grunt and Gulp.
- Cross-Origin Resource Support: You can perform the CORS setting at your project level, allowing you to easily access the resources from your other projects. Please read more about enabling the CORS here.
Render is an all-round platform that hosts static sites, APIs, Containers, databases, workers, and even cron jobs! Let’s take a closer look at its features:
- Varieties of services: Render supports static websites, web and private services, background workers, Cron jobs, Docker containers and Postgresql databases.
- A Great plan for all: If you are looking for a static site, services, or database hosting, it’s all free. You pay for additional SSD disk and Cron Jobs support. Please see the detailed pricing plans.
- CI/CD: Render provides the CI/CD and auto-deploy by connecting to your code repository through GitHub.
- Security: The deployed websites come with free TLS certificates and protection from attacks like DDoS.
- Infrastructure as code: Render provides a configuration file called
render.yamlto define the infrastructure configurations for different services and databases. Learn more about Infrastructure as Code here.
- Render API Services: Render provides public REST APIs to manage your render services over HTTP. It is an excellent offering as you can personalize the service-related experience using these APIs. Here is the link to learn more about these APIs.
With so many products to choose from, the selection should be driven by our requirements and budget. Each of the platforms we discussed above has lots to offer. At the same time, however, they also have their own shortcomings. So, please make a choice wisely.
I hope you found this article insightful. Please leave a comment below to let us know of any other deployment platforms that should be on our radar.