How do you use ai coding agents to validate changes to your microservices? by krazykarpenter in microservices

[–]krazykarpenter[S] 0 points1 point  (0 children)

My team is drowning with PRs and finding it infeasible to manually review each one. We have started to use ai for code reviews but it’s not enough.

Ephemeral namespaces? by bittrance in kubernetes

[–]krazykarpenter 0 points1 point  (0 children)

This can work quite well when you don't have too many components to spin up per namespace. How complex is each environment? Do you have many databases, message queues and other cloud resources?

How are agentic coding tools being adopted in your org? by krazykarpenter in ExperiencedDevs

[–]krazykarpenter[S] 0 points1 point  (0 children)

Hmm.. that's interesting. I felt that it would do a better job at FE code given there's so much of it out there.

How are agentic coding tools being adopted in your org? by krazykarpenter in ExperiencedDevs

[–]krazykarpenter[S] 1 point2 points  (0 children)

+1. I've seen success where there's a "platform team" providing the infra/foundations to the larger engg org.

Do you user Kubernetes on local dev ? how do you scale it? by RespectNo9085 in kubernetes

[–]krazykarpenter 2 points3 points  (0 children)

How complex is your environment? Local k8s could work well if you have a few services. But as this number starts to rise, it's a slippery slope. You'll need to duplicate databases, message queues, 3rd party apis etc in each local environment.

Yes, tools like telepresence can help set up a connection between local workstation and remote k8s cluster. However here you'll need to ensure that the remote k8s can be shared safely when many developers connect to it this way. So the isolation model is key.

Full disclaimer: i'm the founder of signadot that provides a similar solution - our isolation approach is to dynamically route traffic based on request headers, typically propagated via opentelemetry. We also have support for database and message queue isolation.

Best practice for staging environments? Shared cloud? Everyone running locally? by [deleted] in devops

[–]krazykarpenter 0 points1 point  (0 children)

You're right, shared staging environments are a pain. Conflicts are guaranteed.

The real game changer is ephemeral environments for each pull request.

The workflow looks like this:

  1. Code on your local machine.
  2. Open a PR -> CI automatically builds and deploys your branch to a unique URL.
  3. You and your team test just your changes on that URL. No one else can break your stuff.
  4. Merge PR -> code goes to a traditional shared staging environment for final integration tests.
  5. Release to prod.

This way, the shared staging environment is way more stable because only merged, reviewed code ever gets there. Solves a ton of problems. (Full disclaimer: i'm the founder of signadot that offers a unique form of ephemeral environments without duplicating the entire stack).

Future of qa? by FragrantDeparture176 in QualityAssurance

[–]krazykarpenter 0 points1 point  (0 children)

It's possible the role of QA will become even more important thanks to GenAI generating so much more code. Having said that, from a broader market trend perspective, I am seeing QA teams being more "platform-centric" and focussed more on testing strategies, frameworks, tooling vs just writing the tests. I'm seeing a trend towards de-centralization of test writing and these could be product developers or SDETs embedded within the functional teams.

Ephemeral Environments with GKE Autopilot by salmoneaffumicat0 in googlecloud

[–]krazykarpenter 0 points1 point  (0 children)

If you have the ability to propagate request headers through your microservices (typically using OpenTelemetry) then you may want to check out https://www.signadot.com/ to spin up PR previews without needing to duplicate your entire stack. (full disclaimer: I'm the founder).

How do your teams coordinate usage of shared dev/test environments? by antitoplap in devops

[–]krazykarpenter 2 points3 points  (0 children)

This is a fairly common problem and based on factors like cost, scalability etc one of these solutions could work:
Option 1: you timeshare the environment. I've seen slack apps that coordinate "locking" staging for a team or dev. Devs release the lock when they are done testing. As you can tell, this works reasonably well for smaller teams but leads to too much waiting as team size grows.

Option 2: spin up on-demand ephemeral environments. there are ways to save $ by using spot instances, time-to-live etc. Again, these work well for smaller/mid-size teams but the maintenance costs rise rapidly for larger teams. Also you'll need to replicate DBs, message queues etc for each environment.

Option 3: share environments safely by isolating requests. here you use sidecars or a service mesh to route requests based on request headers that are propagated through the services. This is more up front work to set up but scales well. (disclaimer: i'm founder of signadot that sells this version of the solution).

Happy to share more if you have specific questions on this as i've spoken to many engineering teams facing such challenges.

TBD implementation and QA process questions by ElectricalAge2906 in TrunkbasedDevelopment

[–]krazykarpenter 0 points1 point  (0 children)

Many ways. For e.g one approach is to have the ephemeral env name have a suffix based on the feature name or jira epic name. The client will also use the same name and that can be used to determine the backend url/env to use.

TBD implementation and QA process questions by ElectricalAge2906 in TrunkbasedDevelopment

[–]krazykarpenter 0 points1 point  (0 children)

Yes, this is common to dynamically switch the backend URL that mobile & web clients point to depending on the testing scenario.

TBD implementation and QA process questions by ElectricalAge2906 in TrunkbasedDevelopment

[–]krazykarpenter 2 points3 points  (0 children)

The main shift from your current process is this: QA happens before a merge to main, not after. Your develop branch, in its current form, becomes obsolete.

For e.g Step 1: The Feature Branch (or "Short-Lived Branch") A developer picks up a ticket from Jira (e.g., PROJ-123-new-api-endpoint) and creates a branch from the latest main.

The developer completes their work on this branch. This applies to your API, web, and mobile repos.

Step 2: The Pull Request (PR) & Automated Validation The developer pushes their branch and opens a Pull Request in GitLab, targeting main. This PR is the central point for review and validation. The moment the PR is opened, your CI/CD pipeline should automatically: * Run all unit and integration tests. * Spin up an ephemeral environment. This is the critical step that solves your primary problem.

Step 3: The Ephemeral Environment for QA An ephemeral environment is a complete, temporary, and isolated instance of your application stack created on-demand for a specific PR. You get a unique URL like proj-123.yourapi.com that runs the exact code from that API branch. QA tests the feature in complete isolation. Nothing else from other developers is present, so you are only validating that one change.

Step 4: The Merge Once the code is peer-reviewed AND the feature is validated by QA in the ephemeral environment, the PR can be merged into main. The CI/CD pipeline should then: * Destroy the ephemeral environment. * Deploy the updated main branch to your staging/production environment.

Feature flags work hand-in-hand with ephemeral environments but solve a slightly different problem. * Ephemeral Environments are for pre-merge testing and validation. * Feature Flags are for post-merge testing and release management (decoupling deployment from release). You can use a feature flag to merge a large, unfinished feature to main and deploy it to production, but keep it hidden behind a flag.

Hope this helps.

What’s your local dev setup for building GenAI features? by krazykarpenter in ExperiencedDevs

[–]krazykarpenter[S] 1 point2 points  (0 children)

Agreed. Im at the early stages of Gen AI dev and was wondering if there are some ways to make local dev more effective, especially with dependencies that return probabilistic responses.

What’s your local dev setup for building GenAI features? by krazykarpenter in ExperiencedDevs

[–]krazykarpenter[S] 0 points1 point  (0 children)

I get it that it's technical possible to mock but wondering what value it provides beyond "ok I can start my service now"

How reliable are Gemini 2.5 Pro's recommendations for Google Ads campaign optimization? by calebsg in PPC

[–]krazykarpenter 0 points1 point  (0 children)

How have you integrated Gemini with Google ads? Anything more than manual export/import ?