Infrastructure and deployment
Last updated
Was this helpful?
Last updated
Was this helpful?
The DevOps team enables us to rapidly deliver high quality applications and services. They focus on the automation and integration of processes in the software development lifecycle.
One of the things the DevOps team are responsible for is the environments the code runs in. They spin up servers and configure tools for developers to work with. At NEC Digital Studio, we do this as Infrastructure as Code (IaC), a set of instructions that a computer follows. It sets out the exact parameters for the code which means it can be run thousands of times and will always produce the same results. So we can scale things up quickly and consistently.
Computer infrastructure used to be done by clicking through buttons on a user interface. There was huge room for manual error, and it was difficult to track down any mistakes. Now it’s written as code in plain text lines of writing that can be peer reviewed much more easily. And once approved, we have a history of that code saved and ready to deploy.
IaC is vital to disaster recovery as you can rapidly recreate environments. If something were to go wrong and we lost one of our live environments, instead of spending weeks manually recreating it, we could run the code and spin up the environment again in under an hour.
Our DevOps team puts pipelines in place to seamlessly roll out code to the development, test and production environments. Our continuous integration and continuous deployment (CI/CD) pipeline is the automation of the process to deploy code. Once we write the scripts, it’s highly repeatable. And much simpler too.
By automating the process, we remove the dependency on the DevOps team to run the scripts. It’s a massive time saver, allowing us to deploy code quickly and consistently across environments.
For the majority of our applications, we apply something called a blue-green deployment model where we use two sets of servers to keep the application running while making changes.
The existing servers with all the live traffic are blue. When we’re ready, we deploy the new code or software in brand new green servers which are fully security patched and updated. Then we migrate a small subset of users to the new green servers and test the functionality of the system. If everything works as it should, we can spin up and transfer all users across to the new green servers. And if this is successful, we can delete the old blue servers.
This protects the application, as any progress made while attempting to penetrate a system will be lost when the server is destroyed. It also means we deploy new functionality without any down time for the users. We even make these migrations during the working hours, so we have teams of experts on hand to support the process.