this post was submitted on 09 Mar 2024
70 points (100.0% liked)

Ask Lemmy

26756 readers
1331 users here now

A Fediverse community for open-ended, thought provoking questions

Please don't post about US Politics. If you need to do this, try [email protected]


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either [email protected] or [email protected]. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email [email protected]. For other questions check our partnered communities list, or use the search function.


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 1 year ago
MODERATORS
 

My team has this one shared component that gets involved in like every feature's development. This year, we're loading like 5 different features onto it, all with different timelines, and my head's about to explode trying to figure out how to make it all fly.

How does everyone else do their software releases? Do you freeze prod and then do one big release later? Throw everything into prod during dev, hope no one sees the unreleased stuff, and just announce it later? Or something else entirely?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 8 points 8 months ago (1 children)

Don't you have some sort of staging?

Typically there should be at least one stage before prod that is entirely internal and where all the components get combined for the first time.

Otherwise, if a new feature is added, it should be done in a way, that doesn't affect components that don't use the feature (yet). Of course that's not always possible, but should be the aspiration. In that case, you could deploy a new version without affecting any other services.

[–] [email protected] 2 points 8 months ago (2 children)

Yeah we have a test stage where everything is mixed together. It's just that we directly promote that test stage to prod so we can't really separate all the features back out for prod without cherry-picking. The other idea we came up with was just letting test flow to prod and locking WIP stuff behind feature flags. I don't think the security people would like that idea very much though...

[–] [email protected] 2 points 8 months ago

...so you don't have a test stage.

A test stage is for testing. If it's not working there, it's not going to prod.

[–] [email protected] 1 points 8 months ago (1 children)

I don’t think the security people would like that idea very much

Why not? How do your feature flags work?

[–] [email protected] 1 points 8 months ago (1 children)

Our flags are dynamic. Service basically reads them from an env var at runtime to determine if requests go through.

Security, at my place at least, has been very conservative about not launching stuff into prod until they've pentested in our test stage which has kinda forced us to do waterfall :|

[–] [email protected] 1 points 8 months ago

Sounds rough. My fiancé does security, and from what I've gathered from him, the best time for security to get involved is at the design stage. They look over the proposal, give their input, and then nobody's surprised at release time, and teams can follow agile practices. Obviously there's still a review of the final product, but that can be done asynchronously after the fact to confirm that best-practices were followed.

Easy to say, hard to put into practice. Certainly depends on the kind of service your business provides.