There are many reasons why it’s essential to have a portable website.
Maybe you need to move hosting provider? Unless you have a very simple application there’s a good chance something will go wrong, something might get missed meaning that parts or all of the application stop working.
Another common scenario is having a new developer come along and then struggle getting it up and running to work on, burning hours of your budget before they can even change one line.
When everything is ticking along smoothly this might not seem like a big problem, but what about if the server crashed tomorrow? How long would it take to get everything working on a new machine?
Consider also how much billable time will it cost you each time you get a new developer to work on your site.
What is needed
If you’re going to make your website truly portable then you need to ensure the following building blocks are in place.
The website is easy to get running on any compatible server(s)
Complex web applications can have multiple dependencies. If it has been sitting on the same server for some time it’s likely that the code contains settings or customised routines that will break if the application is moved to a new machine.
You need scripts that can build the server, installing all required packages as well as installing the code. Once that’s all working it’s simple to load your website onto any similar server.
Multiple developers can work on a copy of the application
They can get the entire suite, possibly multiple servers, set-up quickly and without fuss, even if they are not experts with server-side technologies.
Using the build scripts you can simulate your live environment using free, open source virtual servers running on the developer’s work machine. This makes it easy for multiple developers to work on separate features without a huge overhead of getting everything working for each new person.
There is a completely separate test version of the website
This is needed so any changes that are made can be tested and signed off by you for deployment to live. This reduces the risks that an untested new feature might break other parts of the application.
Deployments are not manual
Copying changed files manually up to the live server is prone to error. What if something is missed? What if it turns out there was a serious error with the changes and you need to revert to a previous version?
Using deployment scripts it is possible to send any code changes to a server with a single command. Previous versions are archived and can be rolled back to within minutes.
You can even automate deployment so that, for example, when a new feature is finished it gets automatically uploaded to the test server for you to check.
Version control is being used
Version control allows a developer to track any changes to the application, down to individual lines of code and who made which change.
Version control is essential tool when developing any modern software, even if there is only a single developer. When multiple developers are involved, which is often the case, then version control becomes even more important. It allows multiple developers to work on the same code base without fear that changes they make to a file will get over-written by another developer.
There is a clearly defined issue and feature list
Complex web applications are constantly evolving. Whether it’s fixing bugs or adding new features there is always a list of things to be working on.
Gone are the days where a simple spreadsheet would suffice. Multiple people need to be able to see, add to and comment upon the list.
Benefits of a portable website
You’re no longer tied to any developer.
If you decide to change developers there is no hassle.
All the hosting accounts are in your name. There is documentation to help any new developer get the environment running. They can safely make test & production deployments. The code is stored in your version control system and the feature list is on a server that you control access to.
Risk is massively reduced
Code is versioned so work doesn’t get lost. Deployments are quick and can be reversed. Most importantly you have full control of your IP and who can access your code.
In the event of disaster you can get back up and running quickly
If a server becomes corrupted and it requires a re-build you can be up and runing quickly. With server build and code deployment scripts this becomes a relatively simple exercise
Things don’t become stale
As the build & deployment scripts work for the current version of the website they are constantly being changed to take into account any changes.
There isn’t a risk that things will become stale, requiring more effort to make changes in the future; it all grow organically with the application.
What next?
If you’re reading this and would like to discuss how we could help you get a portable website then in the first instance please get in touch to discuss your specific situation. For further reading we have also put together a guide on how we’d build your portable web application.
If you’re not quite ready, no problem. In the meantime you might want to consider getting hold of a copy of our free guide to managing a web application which covers these and other topics in a bit more detail.