Gabriel is excited to learn about how their company’s software is accessed by their users. They head over to see Lars, a member of the Operations team, who is setting up a server in the server warehouse.
In the modern age of web applications, software is stored and executed on servers. Servers are computers that run software that can be accessed by another device (also known as the client), often via the internet. Servers respond to requests with website code, images, and other content which are rendered by the client (typically a web browser).
Servers require quite a bit of maintenance in order to be used by developers. They need to be purchased, have operating systems and various software installed on them, configured to handle network requests, and much more. Typically, developers don’t manage the servers — so who does?
Traditionally, an Operations team is responsible for managing a company’s servers. More broadly, the Operations team manages all of an application’s infrastructure. Infrastructure is the full set of resources that support the development, testing, and deployment of applications. Infrastructure consists of:
- Hardware components such as servers, routers, switches and cables
- Software components such as operating systems, version control systems, and applications
There are dozens of tasks that fall under the responsibility of the Operations team, including:
- Installing and replacing (a.k.a “provisioning”) physical components such as servers, switches, and hard drives
- Performing software/firmware upgrades such as security patches
- Configuring infrastructure such as firewalls, user access, ports
- Monitoring network health and alerting personnel when issues arise
Codecademy utilizes servers, databases, and a number of other infrastructure components to make this interactive web application possible!
Open up the developer tools (right-click and select “Inspect” or press F12). Then, select the Network tab and refresh the page. Take a look at all of the code and resources being sent to you by Codecademy servers!
Now, imagine all of the infrastructure that is required to make this transaction of information possible!
The road from a developer’s computer to a company’s servers and finally to the users is a long one. Many steps are involved to ensure that the final product delivered to users is of high quality. In the next exercise, we will look at the first step in the deployment process — version control systems.