DEV Community

loading...

Discussion on: Do you start with frontend, backend, or both?

Collapse
joelbonetr profile image
JoelBonetR

apart of being more an infrastructure thing, DevOps is something you usually don't start with, the reason is you need to understand the dev process to ensure a fluent software transition from dev to test/prod environment.
So it's something that usually devs do (that's the Dev in the word) on small/medium teams and that only largest teams or companies with complicated (most of time over-engineered) builds are in need to specify this role on a person or two.

The other part is SysAdmin's stuff (when the code reach the desired stage it must work well with a well defined and profiled server, it's monitoring and so), but you're a sysadmin so you know what i'm talking about.

At the end all devs need to be a little "full stack" to understand the entire process if you expect to do something else apart from coding little pieces of code inside a software you don't know at all. Maybe i'm seeing that from an engineering point of view and this can be avoided for self-learners and newcomers but I would recommend it as well as I recommend to push hard into knowing the environment where your code is running (for a web dev: JS engine, DOM and CSSOM, compilers, interpreters, networking, different servers and what they offer, how to set up a simple env and so) so you can build better code.

Collapse
aghost7 profile image
Jonathan Boudreau

apart of being more an infrastructure thing, DevOps is something you usually don't start with, the reason is you need to understand the dev process to ensure a fluent software transition from dev to test/prod environment.

Oh? What if a feature has a perfect use case for serverless? Thinking about infrastructure up front has huge benefits because you end up with a better architecture.

Thread Thread
joelbonetr profile image
JoelBonetR

Having a better architecture is that one that fits better into your project, so if you're developing a serverless app you'll know how to take care of the desired and required software needs.
But wait... you know that serverless does not mean "without server" on a literal way, do you? xD
It's an execution model where the provider (AWS, Azure, Google Cloud...) is responsible for executing fragments of code while dynamically assigning resources.
While serverless abstracts the underlying infrastructure to the developer, the servers still participate in the execution of our functions.

By this means, it's still infrastructure but you subcontract a provider to be "your sysadmin".

Apart from that I understand that one of both (you and me) made a mistake (me writing or you reading).
When I said "DevOps is something you usually don't start with" I mean when learning to be part of project development process for the first time. If you know nothing or few about how do you would manage to find out which architecture do you need? And moreover, having a serverless, or a cloud, or a VPS or having Apache, or Nginx or whatever server you need in the architecture is not part of the Dev on the DevOps.

As said 90183710273 times, DevOps is a blend of practices and not a job, some parts rely on Devs, some parts rely on Ops. I wrote a detailed post about that some time ago:
dev.to/joelbonetr/all-you-need-to-...

Please, tell me if you find out any inconsistency.

Thread Thread
aghost7 profile image
Jonathan Boudreau

Having a better architecture is that one that fits better into your project, so if you're developing a serverless app you'll know how to take care of the desired and required software needs.

Building an application which is entirely serverless isn't the only use case.. IMO the best use case for serverless is when you have ad hock operations which need to be handled, such as indound emails, periodic jobs, etc. This is because these operations are short lived and don't necessarily need a server of up at all times.

These kinds of decisions affect how the code is implemented as well as the infrastructure costs. It is better to consider them sooner than later.

But wait... you know that serverless does not mean "without server" on a literal way, do you? xD

Yes I am aware.

As said 90183710273 times, DevOps is a blend of practices and not a job, some parts rely on Devs, some parts rely on Ops. I wrote a detailed post about that some time ago:

I am also aware of this. I did not speak of devops, I spoke of the infrastructure. Not thinking of the infrastructure as part of the development process is antithetic to devops.

Thread Thread
joelbonetr profile image
JoelBonetR

did you just avoid the context of "newcomers that start learning to code" another time?

Yes I've used "serverless" with Google Cloud Functions for example and yes it was about triggers when calls came into the switchboard on a specific company but... Holly cow! It seems an add to serverless more than a reliable comment about a topic. Please read the title of the post and understand the context where we are discussing in.

Thread Thread
sharpninja profile image
The Sharp Ninja

I'm not convinced that anyone should ever plan on serverless as an architectural requirement. A more general pattern, such as Mini-Mon should be explored before making such a decision.

Thread Thread
aghost7 profile image
Jonathan Boudreau

Nothing in your previous comments suggests "newcomers that start learning to code". You speak of working with teams and learning the development process, which sounds more like starting a your first company to me. I don't disagree that if you're starting to learn how to code, you should probably focus on that instead.