Laptops

What You Need to Know About Modern Web App Hosting and Deployments

Modern web applications are not what your nephew or niece are likely able to build and deploy.

Sep 26, 2019

Web applications have changed a great deal in the past several years, along with the processes in which they’re built, hosted and deployed. In the early days it was uploading text files with FTP whereas now we use GIT deployments and code pipelines, and so forth. Highlighted, just for you, in this article we’ve detailed some of the older methods and what you need to know about modern web application structures.

Simple Websites, Servers and FTP

Even as little as ten years ago it was, in some circles, still standard practise to build websites by hard-writing the HTML, CSS and a little JavaScript. Uploading these files to the server via FTP was normal and you’d often see people writing code directly on the server that was being visited by customers. These practices were not smart as they sometimes led to websites being ‘down’ and content being lost.

Once packages like WordPress became popular it was normal to see similar behaviour of manually editing code on live servers and having no history of work or ways of undoing actions. The only difference at that point was that most data was stored in databases so it was less likely to be lost. That being said, it was still standard to have a single server handle the work of hosting the database, the code and even low level services like email management etc.

Though it was in some ways convenient to have everything on a single platform all too often an overload of email could bring a website to a halt, or a crashing of a database could make email undeliverable, the list goes on. The cloud-hosting providers offered remarkably low prices but you would often be left having to learn all the complexities of managing the entire system yourself.

Modern Apps, Managed Services and AWS

Unlike early websites and old applications, modern apps are comprised of numerous small pieces. This approach, which you could call compartmentalization, helps to prevent systems from ever being broken, as breaking one may not cause the whole system to go down. This often means that rather than having a single server which hosts your code, database, and various other tools, you will have separate tools and/or platforms for each. There are many clients who use tools like MailGun and other transactional email services to handle the email of their web application. As for code hosting it’s often on AWS which has separate services for the code (EC2) and database (RDS). Even DigitalOcean, which is another popular web hosting provider, has started offering containerized services of databases and more. These are sometimes called ‘managed services’ which means your digital team has less pieces of a puzzle to worry about. You’re essentially outsourcing the maintenance of those platforms in order to keep your team focused on your code and content updates.

Code Pipelines, Continuous Integration and Deployments

Another large transformation occurred when code pipelines became far more efficient to run. Rather than what was discussed above in older practices using FTP for file uploading to servers, most applications today are delivered via GIT deployments. What this means is that your code, when being edited, is often stored on Github or Bitbucket until your code is ready to be deployed to your server, where it is then sent to a service known as a ‘Continuous Integration’ platform (we use CodeShip). This Continuous Integration tool will run your tests to make sure nothing has been broken in the recent updates. Then once the tests are passed successfully, a tool on your server, or connected to your server (we use Laravel Forge), will be told to perform a deployment. This means it then downloads the recent updates directly from Github or Bitbucket, meaning your code is securely delivered to your server with as few human hands touching it as possible.

Modern server configurations are quite different than they were ten years ago. It’s common to have a few code service tools or multiple AWS services which combine to provide your app to your customers. The ideal configuration also uses monitors or alerts on each tool in order to notify you or your development team of any inconsistencies in the delivery of your code or the users visiting it. Although tools like CPanel and FTP uploading were once the standard, it is very clear they are no longer the best tools for all web applications. If you have questions about whether or not your website should be moved to more modern toolsets, connect with us! We’re happy to provide code reviews and consultation.

By: Matt Lantz
Edited By: Cassandra Lantz