VPSDeploy is a new “cloud” VPS deployment service released in 2018.
It was designed as a way to create immersive digital experiences (through the web), typically requiring a large amount of “background” work, such as asset development/compilation and server redundancy.
The solution was originally created to solve the “Ruby on Rails VPS” problem – which basically states that in order to host “Ruby on Rails” applications properly, you need to use one of the new “cloud” VPS services which have become extremely popular – the likes of DigitalOcean and Vultr falling into this category.
The problem for most people is that whilst having a $5/mo VPS server is amazing (equivalent of “shared” hosting prices), it means you have to set up the entire stack yourself. This is a major problem because it means that you are basically acting as network administrator – having to install, update and upgrade the server & its software.
Whilst installing web server software isn’t that big of a deal, it can get annoying – and creating a “deploy” mechanism is very tricky (especially over HTTP). To this end, a number of solutions have been designed to resolve the problem, including the likes of Capistrano and Chef/Puppet.
VPSDeploy was built to provide a viable solution to this problem.
It provides a web-based platform, through which you’re able to provision cloud VPS servers running Ruby/Python/NodeJS/PHP. Unlike other “deployment” solutions (such as Nanobox or Hatchbox), VPSDeploy has several innovative features which actually make it highly attractive…
- Endpoint Management
This is the most important part of the system. Instead of provisioning “applications”, or even “servers” – VPSDeploy focuses on the endpoints that a domain may have (subdomains/folders). Each endpoint can be mapped to different server infrastructure – allowing for the likes of a “blog” to be hosted on the same server as a Ruby on Rails application. The importance of this is that it breaks apart the “build” process for the system – allowing you to create granular web services for users to engage with. It means that you’re able to effectively manage “support”, “email”, “blog” and “application” components of a central application (rather than having to mash it all together with a number of different services). Further, it also makes your application development entirely object oriented. Rather than focusing n “pages”, you’re able to identify the various endpoints your application may have – designing experiences around them.
- Endpoint Management
- VPS Dashboard
This gives you the ability to integrate various “web services” into the central VPSDeploy platform. For example, being able to track analytics, social media posts, SEO performance and even how many users an application may have. Think of the central VPS dashboard as the best “admin” area for ANY web based application. Like CPanel, it provides low-level access to the likes of a database system and other services… except most of them are actually powered by API’s (meaning you don’t have to worry about them on your own infrastructure). This is a revolutionary piece of functionality that has long been overdue for use in the web deployment world.
- VPS Dashboard
- GIT-Based Deployment
Finally, a GIT-based deployment mechanism provides users with the ability to deploy applications directly to their own infrastructure without having to worry about versioning or build scripts. Much akin to how “Heroku” works, this provides users with the ability to simply “push” an application (either to GIT/Bitbucket or directly to the server) and have it automatically deploy on their own server stack. This has not been achieved before in a way similar to what has been created here. Not only does it centralize the deployment process, but also ensures that you’re able to extend your underlying development processes to embody the true ideal of versioning. The main problem today is that whilst “GIT” has been adopted by software developers, using it for database backups and other purposes has not yet been popular. VPSDeploy’s underlying service gives you the ability to back up the likes of your WordPress installation or Support infrastructure without the need for expensive equipment.
To better explain the most important element of this system – the “Endpoint Manager”, we need to look at how “web” applications work, and what their potential could be.
The problem with the current way things work – especially online – is that it’s very monolithic. You’re typically encouraged to run one application server, allowing you to deploy the likes of Rails or ASP.net without the ability to serve other requests.
The reason for this is simple – the infrastructure is currently only at a point whereby people are able to deploy a single application to a single server.
The solutions only foresee one application per domain, and thus only provide the functionality to make that work. This is not to say that an extensible system (such as having an AngularJS frontend with a Rails backend) is not possible; it’s just not applicable with the various tools that have been released / created presently.
The way to resolve this is through what’s known as “endpoint management”.
An “endpoint” is basically the point at which a user will be able to access a computer service. This comes in many forms, but in the world of the Internet – is basically the “query string” of a URL.
There are two elements to a URL which can be customized. These are the “subdomain” and extra “folders” after the base “domain”. The “domain” can either be a domain-name or IP address (all domains point to IP addresses anyway).
The point is that, in many cases, companies will want to have separate infrastructure running on different elements of their URL’s. For example, they may have a “blog” at domain.com/blog, or a fully functional web application at <a target=”_blank” rel=”nofollow” href=”https://app.domain.com”>https://app.domain.com</a>.
The point is that in the present setup, being able to visualize how these endpoints are handled is not something that is possible. It’s all done with DNS – meaning that it’s mostly handled in the domain registrar’s infrastructure. However, the process does not tie into backend infrastructure, nor is it simple/easy.
An “endpoint manager” changes that. Rather than focusing on infrastructure or even assets (such as domains), the endpoint manager focuses on the “endpoints” of a particular web service.
For example, if you’re running a web based game – you’ll typically want to have the “game” / “application”, underlying functionality and other infrastructure on one endpoint (the main domain), a support service on another endpoint (a subdomain), and maybe other services such as email on another endpoint.
The likes of VPSDeploy is able to set that up relatively simply (with a visual editor). Other applications cannot do that because they lack the deeper level of integration. That’s why the feature has been singled out as one of the more beneficial the service has to offer.