# Devops

All of our servers are set up using **deployment scripts** that we write and maintain **in-house**.

## Deployment scripts

Deployment scripts are sets of instructions for setting up servers that are carried out **automatically**, significantly reducing human error. With deployment scripts, security configuration is never forgotten, and credentials can be unique for every site.

Because deployment scripts ensure that your test environment is as **close as possible** to your production environment. **Eliminating differences** between server configuration on production and test means that testing is **much easier** and **more reliable**.

In the unlikely (but possible) event of a server failing, deployment scripts can **reliably and consistently** rebuild it, much more **quickly** than it could be done manually.

## Security

Using deployment scripts means that server passwords and other API credentials are **not stored in the source code** of apps, but are instead stored in an encrypted form. This **prevents leaks** onto GitHub or other repository hosting platforms.

The deployment scripts also handle setting up **consistent** **firewall** configurations, as well as **automatic** **security updates** to software. This prevents crucial firewall settings from being forgotten, and helps to **keep** **servers secure** as new vulnerabilities are discovered.

## Uptime

Using deployment scripts helps to minimize the downtime needed for updates, even for single-server apps. Because the process is fully automated, it can be **tested on a** **development server** before being rolled out to production, and the process can be optimized so that it's done the fastest way every time.

### Backups and Disaster Recovery

A backup made to the same server as the website gives you a false sense of security. If there is a severe fault with the server, then you will have lost your website and the backups, leaving you with nothing.

At Not **Just** Code, all website hosting includes full **automatic** backups to a **separate** **server**.

In the unlikely event of something going wrong with your server, our deployment scripts and off-server backups form the foundation of our **proven** and **tested disaster** **recovery** process.

## Need deployment scripts for your own app?

We have **extensive experience** building and maintaining automated deployment strategies for a wide range of web apps, websites and databases, from PHP to Python.

If you have an **existing app** that you need deployment scripts for, we'd be happy to help.
