Welcome back everyone! Let’s just go ahead and explore a little bit about Back-end and DevOps. Because these 2 things are really interesting for some reason and people like to see content on Back-end, what is back-end? How DevOps work? How Back-end and DevOps combine? So let’s explore these ideas a little bit together.
Let’s start with back-end because that is I feel in a way a more strictly defined term. DevOps is also defined but sometimes I feel it slips a lot into back-end and cloud infrastructure deployment and managing that stufft. So we have a back-end on one place and we have DevOps in another place. Now let’s understand what back-end involves.
What Back-end involves?
When you are a back-end web developer, what you have to do is you have to code the servers. Now the server could be an ec2 instance, the server could be aLambda, this could be anything. It does not matter to you as a back-end developer for the most part. I mean, obviously it matters to you if you are building a statefull or stateless application. Then what to use, caching and so on. But what I’m trying to say is the implementation details, how this would work? How this would provision in away on a cloud? Or maybe on a shared hosting or anything. It doesn’t matter.
What DevOps involves?
As a DevOps engineer, on the other hand, once you have an application with you, let’s say it’s a node.js app which is written and which is also stateless, so you can use API like GraphQL. You know that this is stateless. You know that this is something which does not require an ec2 instance or whatever to run. So what you can do is you can use something like serverless framework and deploy it on a AWS, AWS Lambda. When you use a serverless framework you’ll have to write a YAML configuration. A YAML file for telling the SMS utility or the cloud formation utility on how to your deploy code on to the infrastructure. So basically what you are doing over there is infrastructure as code. The maximum memory it could take 512MB let’s say, maximum execution time let’s say something and so on. So this part where you are managing the cloud you can say in a way can come under DevOps part where you are deploying and managing the cloud.
Also the developer who has written the API that’s the job of a back-end developer. But how or where this deployment happens, it is usually on a CI/CD providers.So you might have could have GitHub actions for example, you might have CircleCI. There are basically unlimited CI/CD tools out there. You can choose anyone of them as a DevOps engineer and run this deployment phase contionuous integration and deployment servers. Plus you would have to integrate this with your version control system. Let’s say GitHub, once you deploy on GitHub ,the CI/CD build triggers. If this is successful then run the test, if not then report in slack. So you would have to configure this.
Now I do feel that a lot of this part comes inside the DevOps part, so you as a person have the responsibility to manage stuff between developers and operations. This is development stuff. This mostly can be considered as the cloud deployment part, the operations part and handling the infrastructure part. And Of course, as a DevOps or as a DevOps/Cloud person, it’s also your responsibility to make sure the infrastructure is scalable, it’s hardened against services going down, for example, your monitoring and logging stuff properly and you’re able to communicate the way infrastructure works with the back-end team as well. So they write in most cases code that is compatible with the platforms where they’re deployed because obviously, you don’t want someone to write a Websocket API endpoint in a serverless app that is deployed on Lambda that don’t make sense, might make sense for their local systems. So having that communication is very important within your team.
Difference between Back-end & DevOps –
I would say the back-end development is more of a role where you’re actively writing code, actively just with the programming stuff, working with the logic part, working with how to do it, how something has to happen, working on more like user front in a lot of ways. Although it said the back-end is the first layer to the front-end so it’s more like a user-facing front only. I mean yeah, you’ll be working with databases and schemas. You can pretty much almost say that this is a Database Engineer job but a lot of times back-end developers know how to go work with this stuff also.
So back-end is a part where you actively write code and for the DevOps part at least you don’t actively code. You do write code but it’s in the form of configuration files or interacting with the cloud and interacting within your CI/CD provider. So this DevOps part does not involve you actively writing code the logic and securing the back-end, let’s say passing the user input so that it is not malicious, running database queries, or anything like that. Your work is more towards how whatever the other people have done on the back-end part, how can you now use the best tooling available in the market or you know self-host these tools if you want and then take it to production. The best practices, the best tooling, sometimes if you’re also into cloud engineering where you also work with AWS and stuff, so you also work with the cloud part of stuff, how the infrastructure should look like and so on.
So yeah, hopefully, this gives you more idea of what involves when you’re working in a DevOps team.
Can you be a DevOps Engineer alongside a Back-End Engineer?
Now the next question is, Can you be a DevOps Engineer alongside a Back-End Engineer? I mean just like anything the answer is of course yes. It might be overkill to just go super hard and Full-Stack + DevOps deployments. I’m not saying you to do this, just saying that this is possible because people do this all the time, especially people who are indie-hackers. You will find a lot of them on Twitter. These people have to use all this deployment pipeline and everything.
Now the reason platforms like Vercel or Netflify shine is that they abstract away the whole layer, including the deployment, including the CI/CD part away from you. So this is abstracted if you are using a cloud a non-cloud but you know I mean these players are also using an AWS under the hood anyway. But these services like Vercel and Netlfiy abstract away the DevOps layer so that you don’t have to write all the configuration and manage stuff and deploy it on cloud providers. That’s what you pay for, right? You pay for this abstraction to these services.
I hope this was interesting for you. Thanks for reading till the very end!!