Tuesday 3 July 2018

VPSDeploy - VPS Deployment Software For Web Based Applications

VPSDeploy is a "cloud" VPS deployment service released in 2018. It's designed around providing users with the ability too "deploy" web based applications to their own server infrastructure that can be rented for extremely low prices from the likes of DigitalOcean, Vultr and AWS.

The difference with "cloud" VPS servers, as opposed to traditional "VPS" servers, is that they are basically containerized systems running across a large number of servers - typically in a central data warehouse.

Amazon were really the innovators of the technology, launching their EC2 platform in 2010. This has now become a multi-billion dollar business for them.

The point is that "cloud" VPS servers are not tied to a centralized hardware stack. Traditional VPS solutions are basically a case of renting a part of a static server (typically half or a quarter of it).

This means that if you're looking to grow a web-based application, or business, you are not only tied into one provider - but also have to ensure that your underlying setup is able to operate with many different pieces of functionality.

In other words, it means that the service is very expensive, rigid and not very well supported. It works for websites that have received large amounts of traffic, but not for new-age web based applications which typically need larger amounts of infrastructure - such as third-party databases, load balancing and redundancy.

"Cloud" VPS services are actually very good at solving those problems They run across servers, meaning that you don't need to pay anywhere the price that a traditional system would cost.

This has lead a large number of developers & businesses upgrading to the new "extensible" infrastructure - meaning they are both able to handle more traffic and build out more intricate server-setups without actually changing their workflows.

Whilst this is great news, there is one major issue - the "deployment" mechanisms for these services is almost entirely void. There's no way to provision, build & deploy applications, especially with the likes of GIT. This means that if you're looking to upgrade to the new "cloud" VPS services - you'll typically end up having to build out a large amount of backend architecture to get it working.

This "build and deploy" problem is what VPSDeploy was built to solve.

In order to appreciate if it actually works - looking at how the system functions and the various features it brings to the table is of utmost importance...

To begin with - the most important thing you need to realize is that VPSDeploy doesn't exist in a void. There are a number of services which exist to do what it does... namely the likes of Heroku, Chef/Puppet and Capistrano.

These services work well, but they have one massive problem - they are very limited in scope. They don't really provide people with the ability to manage the backend infrastructure alongside the "deployment" mechanism, leading them to be quite ineffectual in terms of how they're able to make progress.

VPSDeploy ties directly into the various VPS providers, meaning that you're basically able to manage the underlying way in which the overall solution works. This is not possible with any other system, except for Microsoft Azure stack - but that's *only* for its own infrastructure.

The following explains VPSDeploy's position:

Heroku
Service designed to "deploy" web based applications to AWS EC2 instances. You never see the backend infrastructure - Heroku was designed to cover it up. This presents a number of problems. Firstly, Heroku is not very flexible. Each time you deploy an application, the system only really supports one framework. This means that if you're looking at deploying the likes of an AngularJS frontend with Rails backend, you'll typically need two "apps" in their platform - which costs. Secondly, Heroku does not provide much by way of custom domain management. Even if you add a custom domain, they still have a "herokuapp" subdomain available. This means that if you're looking at building a REAL production level infrastructure, you're going to look quite amateur with the way in which you're running your app on a subdomain. It's like having a successful blog on a "WordPress" subdomain.

Chef/Puppet
This is more akin to what VPSDeploy is/does, but has a major difference - it has to install server-side software in order to manage the various "nodes" in a network. There's nothing wrong with this, but it's just cumbersome. If you're going to deploy an application, you'll have to play around with the build scripts and other Chef-centric systems to get it to work. What you need is a simple system which uses SSH to access the server, installing the required applications natively. This ist he most efficient, allowing you to get the most out of the system.

Capistrano
Despite being for Ruby/Rails only, this is somewhat like what VPSDeploy should be - a system focused around the deployment of infrastructure for the system. Unfortunately, Capistrano is one of the biggest undocumented projects in the web development world. Not only does it prevent users from being able to effectively deploy their application, but you also need to have a strong infrastructure *already* set up. Capistrano is not very easy to use, and generally lacks the dexterity required to deploy more intricate applications. This is predominantly why many people have begun looking for alternatives.
The system has 3 major pieces of functionality.

These include an "Endpoint Manager", "VPS Dashboard" and "GIT Deploy Mechanism". Together, they provide not only the underlying functionality for the system, but the ability to create extensible and immersive applications...

Endpoint Manager
Solution to integrate different levels of infrastructure into web based server-software. For example, you may wish to add a WordPress blog, or email system to a domain. This can be handled separately by VPSDeploy's endpoint system.
VPS Dashboard
Next, a central dashboard gives users the opportunity to add ancillary web services to their overall build pipeline - allowing them to add the likes of analytics, server monitoring, email, domain information & more to their experience.
GIT Deploy
Finally, they're able to push the latest versions of their applications to the build & deploy infrastructure. This not only means they are able to get the most out of the system, but keep all their endpoints entirely up to date.
Ultimately, the underlying reason why people would use the above services is because they either wish to create an immersive application (which typically requires more than just a single framework), or they are trying to integrate a much larger set of functionality into their web service (and hence need to be able to manage different endpoints).

To this end, VPSDeploy works extremely well. It not only ensures that underlying infrastructure is fully up-to-date and working properly, but allows users to add extra "services" to their dashboard, as well as build out any further underlying assets they may have.

No comments:

Post a Comment