I decided in December that I want to start coding again. I've been in engineering
I came to infrastructure engineering (or DevOps or SRE or Systems engineering) because I was a software engineer solving similar problems on a continuous loop. This lead me to uncover the events after code on my laptop works. I started by asking a simple question. How do I run my web application for users? The answer to this question describes the domain of an infrastructure engineer. And, in this post, I describe a solution to this question.
To keep the solution simple, let's assume my application is a simple go application. I've compiled the application into a linux binary and it's ready to go. This assumption is a discussion for another post, but also belongs under the infrastructure engineering domain.
The first task I need to do is acquire a linux server. There are many ways to acquire a server. For instance, you could use cloud services like AWS or a hosting provider like Linode. But, there are two important features that I need from this server:
- I can SSH to the server
- My users can access my application via their web browsers
The actual process of acquiring a server is too complicated to describe in this post, so let's assume I now have my server. Let's also assume that I can SSH into the server from my laptop user the username
myuser. Finally, let's assume my server's public hostname is
Now that I have my server, I will create a directory on the server where I can upload my application. Here's how I do this.
ssh email@example.com mkdir myapp
I need to upload my application to the server. Since my server has SSH access, I can run the
scp command to upload my application's code onto the server. I can run the following from my laptop terminal:
cd path/to/my/app scp -r myappbinary server-username@server-address:myapp
Now that my application code is on my server, I can start the application.
ssh firstname.lastname@example.org cd myapp nohup ./myappbinary & exit
At this point, the
myappbinary is running on the server and I can access it via https://example.com.
I know. This is way too simple. But it will allow me to break down the reasons infrastructure engineering exists from this simple example.
And now I'm out of coffee.