People with Linux work laptops: How does it work at your company?
To elaborate on the title, I'm curious to learn more about how other companies provide access to developers to run Linux as their main work OS. This is both from the perspective of how can I pitch this to my current employer, as well as how can I filter jobs in the future to find a place that won't force a Mac (or worse, Windows) on me, and avoid horribly locked down Linux (say, packages and DE enforced by IT)
Some example questions, please expand on it or share relevant things in any form that suits you!
- How big is your company?
- Does IT provide an install, or do you get to pick your distro / do the setup yourself?
- Do you get the declared holy config of the year? Pick your own flavor from a small set of machines? Pick your own device freely with a budget?
- What corporate spyware does your company use for Linux?
- Is this managed by central IT, or an exception special for your team?
- How did you dig for this, and more importantly the details of it, during the interview?
- What's your corp VPN, video chat, text chat, work calendar, office docs, project management + git repo stack like?
Thank you!
https://redd.it/11hpgij
@r_devops
To elaborate on the title, I'm curious to learn more about how other companies provide access to developers to run Linux as their main work OS. This is both from the perspective of how can I pitch this to my current employer, as well as how can I filter jobs in the future to find a place that won't force a Mac (or worse, Windows) on me, and avoid horribly locked down Linux (say, packages and DE enforced by IT)
Some example questions, please expand on it or share relevant things in any form that suits you!
- How big is your company?
- Does IT provide an install, or do you get to pick your distro / do the setup yourself?
- Do you get the declared holy config of the year? Pick your own flavor from a small set of machines? Pick your own device freely with a budget?
- What corporate spyware does your company use for Linux?
- Is this managed by central IT, or an exception special for your team?
- How did you dig for this, and more importantly the details of it, during the interview?
- What's your corp VPN, video chat, text chat, work calendar, office docs, project management + git repo stack like?
Thank you!
https://redd.it/11hpgij
@r_devops
Reddit
r/devops on Reddit: People with Linux work laptops: How does it work at your company?
Posted by u/kittydoor - No votes and 1 comment
How does this optimize the package managers?
RUN echo "https://dl-cdn.alpinelinux.org/alpine/edge/main" > /etc/apk/repositories && \
echo "https://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \
echo "https://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
We're just writing some url into a file. How is it going to optimize the package manager?
https://redd.it/11hojt0
@r_devops
RUN echo "https://dl-cdn.alpinelinux.org/alpine/edge/main" > /etc/apk/repositories && \
echo "https://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \
echo "https://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
We're just writing some url into a file. How is it going to optimize the package manager?
https://redd.it/11hojt0
@r_devops
Reddit
r/devops on Reddit: How does this optimize the package managers?
Posted by u/mobiletiplord - No votes and 1 comment
How do you guys enjoy this?
Some context for y’all, i graduated in spring of 2022 with a degree in CS and immediately accepted an offer at a big bay area tech company as a devops engineer on the devops team. They promised me i’d learn soooo much and that’d it’d only require a little hard work at the start. Fast forward to a year later and all i’ve learned is how to navigate through the aws console, run jenkins jobs, install/update software on nodes, and change orgs passwords lol. They don’t let me or any of the other new grads touch the python automation scripts or do any developer related tasks. On top of that, there are usually 3 days of the week where i’m working 7:30 am to 7/8 pm and i don’t even have an organized routine at this work which seriously irritates me. I hate having to stare at my laptop all day waiting for a new issue to remediate. Id prefer to have a scheduled plan going into my workday. I feel burnt out as hell and with the shitty job market, i’m probably trapped at this company for another year. Don’t get me wrong tho, i really do want to enjoy my job and learn as much as possible but i feel so limited on this team and tbh deploying/monitoring services and fixing the bugs that appear in that process is just flat out boring to me. Is this how it is for everyone or am i just not at the right company?
https://redd.it/11hojst
@r_devops
Some context for y’all, i graduated in spring of 2022 with a degree in CS and immediately accepted an offer at a big bay area tech company as a devops engineer on the devops team. They promised me i’d learn soooo much and that’d it’d only require a little hard work at the start. Fast forward to a year later and all i’ve learned is how to navigate through the aws console, run jenkins jobs, install/update software on nodes, and change orgs passwords lol. They don’t let me or any of the other new grads touch the python automation scripts or do any developer related tasks. On top of that, there are usually 3 days of the week where i’m working 7:30 am to 7/8 pm and i don’t even have an organized routine at this work which seriously irritates me. I hate having to stare at my laptop all day waiting for a new issue to remediate. Id prefer to have a scheduled plan going into my workday. I feel burnt out as hell and with the shitty job market, i’m probably trapped at this company for another year. Don’t get me wrong tho, i really do want to enjoy my job and learn as much as possible but i feel so limited on this team and tbh deploying/monitoring services and fixing the bugs that appear in that process is just flat out boring to me. Is this how it is for everyone or am i just not at the right company?
https://redd.it/11hojst
@r_devops
Reddit
r/devops on Reddit: How do you guys enjoy this?
Posted by u/neegabrudda - No votes and 6 comments
What is an easy-to-use service for aggregating and analyzing app-specific logs from multiple microservices?
Hi all,
I'm working with several microservices, each generating their own application-specific logs. I'm looking for a service that can aggregate these logs into one place, allowing me to easily search and analyze them. Additionally, I'd like to be able to create graphs and visualizations based on this data.
I'm hoping to find a service that is easy to use and doesn't require a lot of setup or configuration. Any recommendations would be greatly appreciated!
https://redd.it/11hwgko
@r_devops
Hi all,
I'm working with several microservices, each generating their own application-specific logs. I'm looking for a service that can aggregate these logs into one place, allowing me to easily search and analyze them. Additionally, I'd like to be able to create graphs and visualizations based on this data.
I'm hoping to find a service that is easy to use and doesn't require a lot of setup or configuration. Any recommendations would be greatly appreciated!
https://redd.it/11hwgko
@r_devops
Reddit
r/devops on Reddit: What is an easy-to-use service for aggregating and analyzing app-specific logs from multiple microservices?
Posted by u/YioUio - No votes and 4 comments
(Little rant) People wanting to get into DevOps or just starting: Fix your mindsets
Guys, when deciding to get into DevOps this must be a decision you make for your future and it must be purposefully done and not just motivated by money (is a plus but shouldn't be your only thing).
When starting look at all the resources you have and start by YOUR point 0, if you got any experience with software or administration or have done some similar tasks start by there, extend your knowledge and go step by step. It is going to take years, stop seeking for a shortcut, you are losing valuable learning time.
Just live with the fact that is a journey and is going to take time, stop trying to rush.
For a little context: I mentor juniors in my company and sometimes in LinkedIn I help people that seek support, but today a guy just got me.. first year of Uni, a couple of Android hello world apps, nothing else, no Linux experience, nothing more, and I have decided to give him above tips and was about to give him specific tips on which things to start with (basically explaining roadmap.sh/devops), and the guy interrupted me that he HAS to get a Cloud cert, and that he ALREADY knows CI-CD, like... Seriously WTF... What does he know, a presentation with the infinity sign and the legends plan blah blah deploy...
This is known as The Dunning-Kruger effect, having little to no knowledge is equal to max amount of confidence in this situations/people, is really frustrating, because you just came seeking advice but counter your peers statements as you are better...
At the end I mentioned the Dunning-Kruger effect and warned him to stay humble and relaxed and trust in the steps of learning and the guy apparently ghosted me, I don't care but I just have seen similar people in my work and I think this kind of attitude and mindset just drives you to the following scenario:.
- You got plenty of confidence, copy paste skills in your CV, bypass HR filtering process, lie like crazy to your interviewer, he lowballs a junior position for a needed team and you take the offer, in a matter of 1 month your team sees you as a dead weight and hate helping you because you need them to babysit you and tell you where/what to do at all times, at the end your learning just becomes slow because you are not in control of what you learn..
Thank you for coming to my TedTalk
https://redd.it/11hypln
@r_devops
Guys, when deciding to get into DevOps this must be a decision you make for your future and it must be purposefully done and not just motivated by money (is a plus but shouldn't be your only thing).
When starting look at all the resources you have and start by YOUR point 0, if you got any experience with software or administration or have done some similar tasks start by there, extend your knowledge and go step by step. It is going to take years, stop seeking for a shortcut, you are losing valuable learning time.
Just live with the fact that is a journey and is going to take time, stop trying to rush.
For a little context: I mentor juniors in my company and sometimes in LinkedIn I help people that seek support, but today a guy just got me.. first year of Uni, a couple of Android hello world apps, nothing else, no Linux experience, nothing more, and I have decided to give him above tips and was about to give him specific tips on which things to start with (basically explaining roadmap.sh/devops), and the guy interrupted me that he HAS to get a Cloud cert, and that he ALREADY knows CI-CD, like... Seriously WTF... What does he know, a presentation with the infinity sign and the legends plan blah blah deploy...
This is known as The Dunning-Kruger effect, having little to no knowledge is equal to max amount of confidence in this situations/people, is really frustrating, because you just came seeking advice but counter your peers statements as you are better...
At the end I mentioned the Dunning-Kruger effect and warned him to stay humble and relaxed and trust in the steps of learning and the guy apparently ghosted me, I don't care but I just have seen similar people in my work and I think this kind of attitude and mindset just drives you to the following scenario:.
- You got plenty of confidence, copy paste skills in your CV, bypass HR filtering process, lie like crazy to your interviewer, he lowballs a junior position for a needed team and you take the offer, in a matter of 1 month your team sees you as a dead weight and hate helping you because you need them to babysit you and tell you where/what to do at all times, at the end your learning just becomes slow because you are not in control of what you learn..
Thank you for coming to my TedTalk
https://redd.it/11hypln
@r_devops
roadmap.sh
DevOps Roadmap: Learn to become a DevOps Engineer or SRE
Step by step guide for DevOps, SRE or any other Operations Role in 2026
Screwed up at work. (Deleted demo env)
Just wanted to share as no one I know can understand what I feel.
I work in a startup post-seed round, we are B2B and currently with no clients so only demo-ing, the startup after R&D rehaul, I joined first day of Jan2023
I work for 2 months, it's been good, I have built infrastructure from scratch on Google cloud, from assigning name servers dns in the registrar to 3 gke clusters, one for dev and test envs, one for demo and sales, one for monitoring and self hosted git for some stuff.
There is plenty of leftover stuff that got to me after R&D rehaul, from AWS, Azure...
So it was Thursday (2 days ago), the CEO told me he got 30k$ bill from Azure, that's because all credits were expired at the end of 2022, I started deleting some stuff that I was thinking are old R&D leftovers, most of it were, but apparently I deleted the environment of what is an old demo environment, with the product versions of August, fully configured, in order to demo for potential clients... As a B2B product that's like a production environment.
Now we do have a working new demo environment, but it's not configured at all ( and it's a lot of work ), and the versions are new and probably not stable.
This is embarrassing, I don't know how to show up tomorrow, I just want to quit right now ( I won't), it eats me inside that I am somewhat experienced and made that mistake. My self esteem got crashed and I just don't know what to do (other than going full brain mode and fix it), but I am going to fix it alone without any help.
Sorry for the cringe, just wanted to lay it out.
https://redd.it/11i962o
@r_devops
Just wanted to share as no one I know can understand what I feel.
I work in a startup post-seed round, we are B2B and currently with no clients so only demo-ing, the startup after R&D rehaul, I joined first day of Jan2023
I work for 2 months, it's been good, I have built infrastructure from scratch on Google cloud, from assigning name servers dns in the registrar to 3 gke clusters, one for dev and test envs, one for demo and sales, one for monitoring and self hosted git for some stuff.
There is plenty of leftover stuff that got to me after R&D rehaul, from AWS, Azure...
So it was Thursday (2 days ago), the CEO told me he got 30k$ bill from Azure, that's because all credits were expired at the end of 2022, I started deleting some stuff that I was thinking are old R&D leftovers, most of it were, but apparently I deleted the environment of what is an old demo environment, with the product versions of August, fully configured, in order to demo for potential clients... As a B2B product that's like a production environment.
Now we do have a working new demo environment, but it's not configured at all ( and it's a lot of work ), and the versions are new and probably not stable.
This is embarrassing, I don't know how to show up tomorrow, I just want to quit right now ( I won't), it eats me inside that I am somewhat experienced and made that mistake. My self esteem got crashed and I just don't know what to do (other than going full brain mode and fix it), but I am going to fix it alone without any help.
Sorry for the cringe, just wanted to lay it out.
https://redd.it/11i962o
@r_devops
Reddit
r/devops on Reddit: Screwed up at work. (Deleted demo env)
Posted by u/Mike551144 - No votes and no comments
Consolidating cloud providers monitoring with general monitoring
Hey hey.
AWS based here, currently monitoring all our services via Prometheus+Grafana, whereas AWS resources are still via Cloudwatch. How are you guys consolidating your monitoring so that everything is exposed via one platform?
Is the Cloudwatch Grafana source worth it or do you guys use any other SaaS (Datadog etc...), or do you actually just keep whatever's in Cloudwatch in Cloudwatch.
Would appreciate getting some feedback for inspiration.
Thanks!
https://redd.it/11iaawb
@r_devops
Hey hey.
AWS based here, currently monitoring all our services via Prometheus+Grafana, whereas AWS resources are still via Cloudwatch. How are you guys consolidating your monitoring so that everything is exposed via one platform?
Is the Cloudwatch Grafana source worth it or do you guys use any other SaaS (Datadog etc...), or do you actually just keep whatever's in Cloudwatch in Cloudwatch.
Would appreciate getting some feedback for inspiration.
Thanks!
https://redd.it/11iaawb
@r_devops
Reddit
r/devops on Reddit: Consolidating cloud providers monitoring with general monitoring
Posted by u/Easy-Dragonfruit6606 - No votes and 1 comment
Linux foundation cloud engineer boot camp
Has anyone gone through this boot camp? https://training.linuxfoundation.org/training/cloud-engineer-bootcamp/
I'm an azure solutions architect trying to get more knowledge about containerization and the DevOps space to expand my role. This seems like the perfect fit boot camp to take my career to the next step. Has anyone gone through it? Any bad experiences or great experiences? Trying to gauge if this is worth $1200
https://redd.it/11ibr2x
@r_devops
Has anyone gone through this boot camp? https://training.linuxfoundation.org/training/cloud-engineer-bootcamp/
I'm an azure solutions architect trying to get more knowledge about containerization and the DevOps space to expand my role. This seems like the perfect fit boot camp to take my career to the next step. Has anyone gone through it? Any bad experiences or great experiences? Trying to gauge if this is worth $1200
https://redd.it/11ibr2x
@r_devops
Linux Foundation - Education
Cloud Engineer IT Professional Program | Linux Foundation Education
This Cloud Engineer IT Professional Program will prepare an absolute beginner to learn the most in-demand cloud skills in as little as 6 months.
Any Dynatrace users? What are the pros/cons?
Interested in hearing anyone’s experience with the tool.
https://redd.it/11ifnvs
@r_devops
Interested in hearing anyone’s experience with the tool.
https://redd.it/11ifnvs
@r_devops
Reddit
r/devops on Reddit: Any Dynatrace users? What are the pros/cons?
Posted by u/Outofthemoney- - No votes and 2 comments
Advice / Guidance
Hello dear redditors.
I've (27male) been working on a managerial position for an international company for 3 years. For last few month, I've been able to arrange my schedule in most confortable way, so I have plenty of free time on my hand. Mostly, I work for 2 days, 8hr shifts, and then I have 4 day offs, so I'm thinking to start a new journey, instead of gaming for whole day.
Since the childhood, I've been interested in computer science, however due to me living in underdeveloped country, it was practically impossible to study or to work on above mentioned sphere.
Fortunately, last few years and due to recent pandemic, there was an explosion of computer science, coding and development in my region. Two of my friends started high paying jobs in matter of months (backend and devops).
So, I've beend thinking if it's worth to start a journey and if so, what will be the most suitable field for 27yo, who has 0 knowledge regarding anything related to coding or programming.
Please share your experience, or give me some hint to start with.
Thank you.
https://redd.it/11iqxzp
@r_devops
Hello dear redditors.
I've (27male) been working on a managerial position for an international company for 3 years. For last few month, I've been able to arrange my schedule in most confortable way, so I have plenty of free time on my hand. Mostly, I work for 2 days, 8hr shifts, and then I have 4 day offs, so I'm thinking to start a new journey, instead of gaming for whole day.
Since the childhood, I've been interested in computer science, however due to me living in underdeveloped country, it was practically impossible to study or to work on above mentioned sphere.
Fortunately, last few years and due to recent pandemic, there was an explosion of computer science, coding and development in my region. Two of my friends started high paying jobs in matter of months (backend and devops).
So, I've beend thinking if it's worth to start a journey and if so, what will be the most suitable field for 27yo, who has 0 knowledge regarding anything related to coding or programming.
Please share your experience, or give me some hint to start with.
Thank you.
https://redd.it/11iqxzp
@r_devops
Reddit
r/devops on Reddit: Advice / Guidance
Posted by u/iliathomson1 - No votes and 6 comments
Should I use containers ( Docker / Podman ) for my app ?
I am running a node application and will host it online. Want to know if Docker ( or podman ) will be helpful for me for local and hosted environments.
If I don't use containers now how hard will it be to move to containers later on ?
Is there cost savings by running code in containers ?
Should the database run from a container or on the host itself ?
https://redd.it/11itblv
@r_devops
I am running a node application and will host it online. Want to know if Docker ( or podman ) will be helpful for me for local and hosted environments.
If I don't use containers now how hard will it be to move to containers later on ?
Is there cost savings by running code in containers ?
Should the database run from a container or on the host itself ?
https://redd.it/11itblv
@r_devops
Reddit
r/devops on Reddit: Should I use containers ( Docker / Podman ) for my app ?
Posted by u/purezen - No votes and 5 comments
CICD pipelines written in Typescript
Hi guys!
I've been using some tools client and server side to automate software deployment. To an extend where i needed more flexibility with pipeline definition!
I've been building a tool to execute pipelines written in Typescript (rust + deno under the hood)
I am working on the doc as we speak.
It's very different from what you may have been working with, but it solved my problems and still sticks to common pipeline paradigme!
Just wanted to share it with the outter world as I think It has become pretty mature over the past months.
What do u think of it? (work in progress)
Could it solve some of your issues!?
https://doc.pipelight.areskul.com/
https://redd.it/11ivfnu
@r_devops
Hi guys!
I've been using some tools client and server side to automate software deployment. To an extend where i needed more flexibility with pipeline definition!
I've been building a tool to execute pipelines written in Typescript (rust + deno under the hood)
I am working on the doc as we speak.
It's very different from what you may have been working with, but it solved my problems and still sticks to common pipeline paradigme!
Just wanted to share it with the outter world as I think It has become pretty mature over the past months.
What do u think of it? (work in progress)
Could it solve some of your issues!?
https://doc.pipelight.areskul.com/
https://redd.it/11ivfnu
@r_devops
Pipelight
A Lightweight CICD tool
What is the impact of not having Docker in your local development environment?
Former developer, turned architect here. I just joined a large transportation company which is just beginning their migration towards the cloud. We're onboarding a vendor to write some containerized applications for us to replace some legacy ones which we'll then host in GCP. We need to provide the vendor with development machines, however these machines will not have Docker, Podman, WSL2 etc due to large company reasons. My company's stance is that the developers can push their code through our CI/CD pipelines (ie; see if their Dockerfile is correct, if maven can create the containers, and push to a registry, integration tests work, etc etc).
My question is, does this sound like an anti-pattern to you? Personally, I feel that having to use the pipelines in this way would slow me down a few hours a week. I've already reached out to the vendor to see their opinion on it, but curious what you folks think about this scenario.
https://redd.it/11iwlej
@r_devops
Former developer, turned architect here. I just joined a large transportation company which is just beginning their migration towards the cloud. We're onboarding a vendor to write some containerized applications for us to replace some legacy ones which we'll then host in GCP. We need to provide the vendor with development machines, however these machines will not have Docker, Podman, WSL2 etc due to large company reasons. My company's stance is that the developers can push their code through our CI/CD pipelines (ie; see if their Dockerfile is correct, if maven can create the containers, and push to a registry, integration tests work, etc etc).
My question is, does this sound like an anti-pattern to you? Personally, I feel that having to use the pipelines in this way would slow me down a few hours a week. I've already reached out to the vendor to see their opinion on it, but curious what you folks think about this scenario.
https://redd.it/11iwlej
@r_devops
Reddit
r/devops on Reddit: What is the impact of not having Docker in your local development environment?
Posted by u/CoolZillionaire - No votes and 7 comments
Distribute private helm charts to customers for on prem install
What are peoples approach for distributing helm charts to customers that will be installing a product in their own kubernetes cluster? The two options I have considered
Sending each customer the tgz file which they can store in their own helm repository.
Host charts on dockerhub and add an account for each customer which they can use to pull the chart
Both approaches feel clunky but I haven't found any information on a different approach.
https://redd.it/11j3l0n
@r_devops
What are peoples approach for distributing helm charts to customers that will be installing a product in their own kubernetes cluster? The two options I have considered
Sending each customer the tgz file which they can store in their own helm repository.
Host charts on dockerhub and add an account for each customer which they can use to pull the chart
Both approaches feel clunky but I haven't found any information on a different approach.
https://redd.it/11j3l0n
@r_devops
Reddit
r/devops on Reddit: Distribute private helm charts to customers for on prem install
Posted by u/the_troll_toll89 - No votes and no comments
Networking for DevOps Roadmap
Does anyone have a roadmap for networking for DevOps? I'm afraid going too much in depth.
https://redd.it/11jbtbc
@r_devops
Does anyone have a roadmap for networking for DevOps? I'm afraid going too much in depth.
https://redd.it/11jbtbc
@r_devops
Reddit
r/devops on Reddit: Networking for DevOps Roadmap
Posted by u/izner82 - No votes and 2 comments
Crazy coworker manages entire development environment in single docker container
A friend of mine adds their entire development environment to a single docker container. This includes all the tooling like VS Code. Every couple months, he starts over fresh in a docker container.
I guess the logic is that he forces himself to only retain and use what's necessary, and cleans up unnecessary tooling.
Does this seem like a good practice? A bit over the top?
https://redd.it/11jd4ci
@r_devops
A friend of mine adds their entire development environment to a single docker container. This includes all the tooling like VS Code. Every couple months, he starts over fresh in a docker container.
I guess the logic is that he forces himself to only retain and use what's necessary, and cleans up unnecessary tooling.
Does this seem like a good practice? A bit over the top?
https://redd.it/11jd4ci
@r_devops
Reddit
r/devops on Reddit: Crazy coworker manages entire development environment in single docker container
Posted by u/_classname__spam - No votes and 9 comments
Building a devops "compiler"
Hey all, I'd like to discuss with this community a concept I've been working on and refining for a little over a year now, and would like to see if other people here would think this is a step in the right direction or misguided in some way.
I've worked in several different places as a software engineer and/or infrastructure engineer for years now, although in the last few I've found a real passion in building and optimizing automated infrastructure. I've found an incredible amount of satisfaction in spending months building out what is essentially a "factory" for delivering code and automating its various facets. Once it all comes together, you end up with this really nice, well-oiled machine that takes code as input and outputs running, certified, and observable applications.
What I've noticed doing this is that there isn't actually that much difference between what various software development teams want. I will narrow the domain down to the following types of applications:
- Listening for and responding to HTTP requests at some URL (e.g. websites, APIs)
- Performing some operation on a timed schedule (e.g. cronjobs)
- Listening for and reacting to some non-HTTP event (e.g. SFTP listener, Kafka/queue-based listener)
Notably, this does not include any sort of AI application, which I have never worked with and will not pretend to understand their devops requirements, or desktop applications. I'm sure there are others as well. The general gist is that I'm applying these ideas to software that is most comfortable sitting in a cloud-run VM and reacting to a push- or pull-based event. These types of applications can typically be run "statelessly" (as in they don't need hard drive storage attached to them, not that they don't use a DB or perhaps bucket-based storage mechanism), and can be scaled up or down/replicated easily.
For this domain of applications, a software development team will want the following:
- A CI loop that listens to their PRs, runs automated functionality, performance, and security tests, provides in-PR feedback as to the results of those tests, and certifies the PR based on the results of those tests and, optionally, the existence of a human review; additionally, on a merge to main, this loop will semantically version the changes based on a well-formatted commit message and tag the commit-level with that version, and generate artifacts for this new version (code coverage results, docker image(s) with appropriate tags, helm chart(s)/kubernetes resource package with appropriate tags)
- A CD loop that listens to newly generated artifact versions and automatically updates appropriate environments with the new version; this is typically automatic for a dev environment, but dependent on engineer approval for staging or prod environments
- A networking stack that automatically provides their application with a URL to communicate with once deployed, DNS for that URL, and TLS certs that are regularly rotated
- An observability stack that provides: a UI for quickly parsing through indexed application logs, a dashboard for visualizing metrics, a UI for searching through and using traces, and an alerting system that can utilize all three to generate notifications to the relevant on-call team
- A pre-built package they can quickly include in any codebase that will automatically instrument their code for the aforementioned observability stack, providing easy code hooks for shipping custom logs, metrics, and traces out of their code
- An identity provider connected to the networking stack that solves the authentication and UI login problem; preferably, authentication should be offloaded to the networking stack, such that a request reaching actual code can be assumed to be authenticated; the code can do further custom authorization checks once the request arrives, or this can also be offloaded to the networking stack
- A central secret and configuration management UI that automatically hooks into deployed code, provides the necessary config, and automatically rotates secrets
Hey all, I'd like to discuss with this community a concept I've been working on and refining for a little over a year now, and would like to see if other people here would think this is a step in the right direction or misguided in some way.
I've worked in several different places as a software engineer and/or infrastructure engineer for years now, although in the last few I've found a real passion in building and optimizing automated infrastructure. I've found an incredible amount of satisfaction in spending months building out what is essentially a "factory" for delivering code and automating its various facets. Once it all comes together, you end up with this really nice, well-oiled machine that takes code as input and outputs running, certified, and observable applications.
What I've noticed doing this is that there isn't actually that much difference between what various software development teams want. I will narrow the domain down to the following types of applications:
- Listening for and responding to HTTP requests at some URL (e.g. websites, APIs)
- Performing some operation on a timed schedule (e.g. cronjobs)
- Listening for and reacting to some non-HTTP event (e.g. SFTP listener, Kafka/queue-based listener)
Notably, this does not include any sort of AI application, which I have never worked with and will not pretend to understand their devops requirements, or desktop applications. I'm sure there are others as well. The general gist is that I'm applying these ideas to software that is most comfortable sitting in a cloud-run VM and reacting to a push- or pull-based event. These types of applications can typically be run "statelessly" (as in they don't need hard drive storage attached to them, not that they don't use a DB or perhaps bucket-based storage mechanism), and can be scaled up or down/replicated easily.
For this domain of applications, a software development team will want the following:
- A CI loop that listens to their PRs, runs automated functionality, performance, and security tests, provides in-PR feedback as to the results of those tests, and certifies the PR based on the results of those tests and, optionally, the existence of a human review; additionally, on a merge to main, this loop will semantically version the changes based on a well-formatted commit message and tag the commit-level with that version, and generate artifacts for this new version (code coverage results, docker image(s) with appropriate tags, helm chart(s)/kubernetes resource package with appropriate tags)
- A CD loop that listens to newly generated artifact versions and automatically updates appropriate environments with the new version; this is typically automatic for a dev environment, but dependent on engineer approval for staging or prod environments
- A networking stack that automatically provides their application with a URL to communicate with once deployed, DNS for that URL, and TLS certs that are regularly rotated
- An observability stack that provides: a UI for quickly parsing through indexed application logs, a dashboard for visualizing metrics, a UI for searching through and using traces, and an alerting system that can utilize all three to generate notifications to the relevant on-call team
- A pre-built package they can quickly include in any codebase that will automatically instrument their code for the aforementioned observability stack, providing easy code hooks for shipping custom logs, metrics, and traces out of their code
- An identity provider connected to the networking stack that solves the authentication and UI login problem; preferably, authentication should be offloaded to the networking stack, such that a request reaching actual code can be assumed to be authenticated; the code can do further custom authorization checks once the request arrives, or this can also be offloaded to the networking stack
- A central secret and configuration management UI that automatically hooks into deployed code, provides the necessary config, and automatically rotates secrets
regularly; this system should allow for the concept of shared and app-specific configuration, particularly for microservice-based architectures
- A pre-built configuration package they can easily include into any codebase that knows how to read the automatically provided config
- Infrastructure that will automatically scale their code up or down based on need, and scale itself up or down based on how much the code needs to be scaled
I'm generalizing and I'm sure there are some additional details I could add, but on the whole, the work I've seen devops teams pour time into has typically been to implement some subset of the above. I have seen teams have varying levels of success doing so with a whole bunch of different tools, some home-grown, some commercial, some open-source, but all of them quite different. And I'm sick of it.
We all want the same thing, and there is, GENERALLY SPEAKING, an "ideal" devops pipeline and infrastructure out there that checks all the boxes, but it requires strong interplay between assumptions made by the infrastructure and codebases fulfilling those assumptions. That brings me to my core thesis:
We need to start viewing devops and infrastructure like compilers, not editable pipelines
When you start writing code, you don't rewrite your compiler or your interpreter to fix your janky code. The compiler/interpreter knows what's right and what's wrong and publishes a clear interface for how you need to be doing things, and if you do them wrong, you fix your code, not the compiler/interpreter. Too many times have I seen teams force changes to a pipeline due to poor coding and software development practices rather than problems in a pipeline. Once those poor practices have been normalized it is incredibly difficult to change them. If you normalize good practices from day 1, everyone gets used to it and no one grumbles.
Our devops pipelines should provide a clear interface for what is considered acceptable code, and code should be modified to fit that interface, not the other way around
If the code fulfills the interface, infrastructure can make SO MANY assumptions that provides that same code a huge number of pre-configured systems and advantages that then don't need to be configured by a dedicated devops team.
A crucial part of accomplishing this successfully is providing a very easy-to-use entrypoint to that interface. Usually, I implement this in the form of "template" repos that act as quickstarts; this is a repo in the target coding language that has a main file with a clear entry point to start writing code and all the observability and config packages pre-configured. This repo will also typically include a compliant Dockerfile and Makefile. Make sure that as few build files have to be configured as possible. The idea here is to create a "pit of success": the easiest path is the correct path. A developer can clone the repo, start writing code, push the new repo, and the pipelines take care of the rest.
The trick is always to balance out maintaining enough customizability that most applications can fit the interface, without making it so generic that making things works requires a lot of app-specific work, but I believe there is a balance that fits MOST applications; not necessarily ALL applications, but MOST.
I've been building out such a system using exclusively open-source tools for the past year and I think it works quite well and is applicable to most of the companies I've worked at. What I like about it is there's no vendor lock-in and can be deployed single- or multi-tenant, so it could be deployed entirely separately or used as a PaaS. I'm having some trouble motivating myself to finish it recently and figured I'd get feedback from the devops community to hear if:
1. They apply these sorts of principles at their own jobs
2. If so, have they found it to be useful, and have they found success in doing so; if not, what technical or non-technical barriers have they encountered
3. If they know of any tools or companies that accomplish this or some subset of this (and
- A pre-built configuration package they can easily include into any codebase that knows how to read the automatically provided config
- Infrastructure that will automatically scale their code up or down based on need, and scale itself up or down based on how much the code needs to be scaled
I'm generalizing and I'm sure there are some additional details I could add, but on the whole, the work I've seen devops teams pour time into has typically been to implement some subset of the above. I have seen teams have varying levels of success doing so with a whole bunch of different tools, some home-grown, some commercial, some open-source, but all of them quite different. And I'm sick of it.
We all want the same thing, and there is, GENERALLY SPEAKING, an "ideal" devops pipeline and infrastructure out there that checks all the boxes, but it requires strong interplay between assumptions made by the infrastructure and codebases fulfilling those assumptions. That brings me to my core thesis:
We need to start viewing devops and infrastructure like compilers, not editable pipelines
When you start writing code, you don't rewrite your compiler or your interpreter to fix your janky code. The compiler/interpreter knows what's right and what's wrong and publishes a clear interface for how you need to be doing things, and if you do them wrong, you fix your code, not the compiler/interpreter. Too many times have I seen teams force changes to a pipeline due to poor coding and software development practices rather than problems in a pipeline. Once those poor practices have been normalized it is incredibly difficult to change them. If you normalize good practices from day 1, everyone gets used to it and no one grumbles.
Our devops pipelines should provide a clear interface for what is considered acceptable code, and code should be modified to fit that interface, not the other way around
If the code fulfills the interface, infrastructure can make SO MANY assumptions that provides that same code a huge number of pre-configured systems and advantages that then don't need to be configured by a dedicated devops team.
A crucial part of accomplishing this successfully is providing a very easy-to-use entrypoint to that interface. Usually, I implement this in the form of "template" repos that act as quickstarts; this is a repo in the target coding language that has a main file with a clear entry point to start writing code and all the observability and config packages pre-configured. This repo will also typically include a compliant Dockerfile and Makefile. Make sure that as few build files have to be configured as possible. The idea here is to create a "pit of success": the easiest path is the correct path. A developer can clone the repo, start writing code, push the new repo, and the pipelines take care of the rest.
The trick is always to balance out maintaining enough customizability that most applications can fit the interface, without making it so generic that making things works requires a lot of app-specific work, but I believe there is a balance that fits MOST applications; not necessarily ALL applications, but MOST.
I've been building out such a system using exclusively open-source tools for the past year and I think it works quite well and is applicable to most of the companies I've worked at. What I like about it is there's no vendor lock-in and can be deployed single- or multi-tenant, so it could be deployed entirely separately or used as a PaaS. I'm having some trouble motivating myself to finish it recently and figured I'd get feedback from the devops community to hear if:
1. They apply these sorts of principles at their own jobs
2. If so, have they found it to be useful, and have they found success in doing so; if not, what technical or non-technical barriers have they encountered
3. If they know of any tools or companies that accomplish this or some subset of this (and
I don't mean things like DataDog or CircleCI, which in my mind fulfill a very small, specific subset of these)
If you made it this far thank you very much for reading!
https://redd.it/11jflm2
@r_devops
If you made it this far thank you very much for reading!
https://redd.it/11jflm2
@r_devops
Reddit
r/devops on Reddit: Building a devops "compiler"
Posted by u/ajpauwels - No votes and 4 comments
Is anyone using SPACE instead of DORA?
I was wondering if anyone is using SPACE to measure the performance of developer teams? Maybe instead of the DORA KPIs? Here are two links to SPACE in case you never heard about it before:
SPACE, a New Framework to Understand and Measure Developer Productivity (infoq.com)
The SPACE of Developer Productivity - ACM Queue
Any experience? Thoughts? Relevant links?
https://redd.it/11jgouz
@r_devops
I was wondering if anyone is using SPACE to measure the performance of developer teams? Maybe instead of the DORA KPIs? Here are two links to SPACE in case you never heard about it before:
SPACE, a New Framework to Understand and Measure Developer Productivity (infoq.com)
The SPACE of Developer Productivity - ACM Queue
Any experience? Thoughts? Relevant links?
https://redd.it/11jgouz
@r_devops
InfoQ
SPACE, a New Framework to Understand and Measure Developer Productivity
A recent paper by researchers at GitHub, University of Victoria, and Microsoft delves into developer productivity to propose a new approach to defining, measuring and predicting it. InfoQ has taken the chance to speak with the paper lead author, GitHub vice…
WFH devs, what does your company provide you to work on?
Just curious what other devs are using for WFH.
View Poll
https://redd.it/11jgd0c
@r_devops
Just curious what other devs are using for WFH.
View Poll
https://redd.it/11jgd0c
@r_devops
Reddit
r/devops on Reddit: WFH devs, what does your company provide you to work on?
Posted by u/fez0101 - No votes and 15 comments