Backend vs Devops

                        When you are a backend web developer you have to code the servers, the server could be an ec2 instance this server could be a lambda this could be anything it does not matter to you as a back-end developer for the most part. obviously, it matters to you if you're building a stateful or a stateless application then what to use caching with Redis, and so on. But what I'm saying is the implementation details how this would work how this would provision in a way on a cloud or maybe on shared hosting or anything it doesn't matter.

                         As a DevOps engineer on the other hand once you have an application with you let's say there is a node.js app and you know that this is stateless so you can use something like this is an api let's say API app like Graphql so you know that this is stateless you know that this is something which does not require ec2 instances or anything to run so what you can do is you can use something like serverless framework and deploy it on AWS lambdas. If you use serverless when you use a serverless framework you will have to write a YAML configuration file. A YAML file for telling the SMS utility or the cloud formation utility how to deploy your code onto the infrastructure. So basically what you're doing over here is infrastructure as code where you write the infrastructure last code where you want that hey I want to provision an AWS lambda the name of this lambda should be this the maximum memory it could take is 512 MB 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 plus the developer who has written the API that's the job of a back-end developer but how or where this deployment happens is usually on a CI/CD provider. So you might have Github actions for example you might have circle ci there are basically unlimited ci cd tools out there so you can choose any one of them as a DevOps engineer and run this deployment phase deployment cycle on those continuous integration and deployment servers plus you would have to integrate this with your version control system let's say GitHub where you know once you deploy on GitHub the ci cd build triggers, if this is successful then run tests if not then report in slack or you know whatever your flow looks like so you would have to configure this. A lot of this part actually 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 the cloud deployment part the operations part the handling of the infrastructure part and of course as a DevOps or other DevOps cloud person it's also your responsibility to make sure the infrastructure is scalable it's hardened against services going down, for example, you are monitoring and logging stuff properly and you are able to communicate the way infrastructure works with the backend team as well so they write in most cases code which is compatible to the platforms where they are deployed because obviously you don't want someone to write a WebSocket API endpoint in a serverless app which is deployed on lambdas that don't make sense but it might make sense on their local system so having that communication is very important within your teams.

We can say the backend development is more of a role where you are actively writing code, programming stuff working with the logic part working with how to do it how something has to happen to work on more like a user front in a lot of ways. Although we say it's back-end, the back-end is the first layer to the front-end so it's more like a user-facing front only and databases and schemas and stuff like that I mean you can pretty much say that this is also a database engineer job but a lot of times back-end developers know how to work with this stuff also so this stuff over here is the back end where you write code and stuff. And for the DevOps part at least you don't actively write I mean you do write code but it's in the form of configuration files or interacting with the cloud or interacting within your ci cd provider so this DevOps part does not involve you actively writing the logic and securing the back end, let's say passing the user input so that it is not malicious for example running database queries or anything like that. Your work is more towards how whatever the other people have done on the backend 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 right the best practices the best tooling. Sometimes if you are 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. 

Hopefully, this gave you a lot more idea about what involves when you are working in a DevOps team. Now the next question is can you be a DevOps engineer alongside a backend engineer and just like anything the answer is of course yes. There are lots of people who do back end know about AWS and deploying and serverless and how things work. It might be an overkill to just go you know super hard on full-stack plus DevOps plus deployment so I'm not saying you do you know to do this just saying that this is possible.

Comments

Popular posts from this blog

LeetCode 350: Intersection of Two Arrays II

LeetCode 35: Search Insert Position

LeetCode 217: Contains Duplicate