← Back to all briefings
Developer 5 min read Published Updated Credibility 79/100

Google Cloud Functions

Google Cloud Functions. NET 6 retirement means migrating to. NET 8 or later. Cloud function runtimes have limited support windows. Keep your serverless workloads on supported runtimes.

Editorially reviewed for factual accuracy

Developer pillar illustration for Zeph Tech briefings
Developer enablement and platform engineering briefings

Google Cloud will decommission the first-generation Cloud Functions dotnet6 runtime on , removing the google-22 images that still host. NET 6 workloads.1 Any function that has not migrated to. NET 8 or a second-generation deployment by that date will lose the managed execution environment, stranding CI/CD pipelines, event triggers, and scheduled jobs that still pin to. NET 6.

The retirement lands a year after Microsoft’s long-term support window for. NET 6 closed on , leaving teams without upstream security patches throughout the final Cloud Functions grace period.2 Maintaining workloads on the deprecated runtime effectively doubles the blast radius: Google can shut down containers in November 2025 while Microsoft has already stopped shipping CVE fixes.

Impact on platform and product teams

  • Serverless cold starts and buildpacks: First-generation deployments tied to google-22 base images will fail to build or invoke once the runtime ID is removed; release engineers must switch to dotnet8 or migrate to second-generation functions that run on Cloud Run infrastructure.1
  • Library compatibility debt: Many. NET open-source packages already target. NET 8 as the minimum LTS; staying on. NET 6 prevents teams from consuming security updates and new features across identity, observability, and data-access SDKs.
  • Pipeline security: Continuing to deploy. NET 6 binaries after November 2024 forces security teams to create compensating controls for unpatched CVEs, undermining SOC 2 and ISO 27001 attestations.

Actions to complete before the cutoff

  1. Refactor build configurations to target. NET 8 and retest triggers (Pub/Sub, Cloud Scheduler, Eventarc) under the new runtime, validating start-up latency and memory footprint.
  2. Migrate critical workloads to second-generation functions or Cloud Run services to take advantage of regional availability, concurrency controls, and Cloud Build packaging.
  3. Retire legacy dependencies that still enforce. NET 6, replacing them with LTS-compatible libraries and documenting risk acceptance for any vendor components that lack. NET 8 support.
  4. Update observability baselines—cold start metrics, error budgets, and IAM bindings—to reflect the runtime swap and satisfy compliance sign-offs before the November 2025 shutdown window.

Development teams should adopt practices that ensure code quality and maintainability during and after this transition:

  • Code review focus areas: Update code review checklists to include checks for deprecated patterns, new API usage, and migration-specific concerns. Establish review guidelines for changes that span multiple components.
  • Documentation updates: Ensure README files, API documentation, and architectural decision records reflect the changes. Document rationale for setup choices to aid future maintenance.
  • Version control practices: Use feature branches and semantic versioning to manage the transition. Tag releases clearly and maintain changelogs that highlight breaking changes and migration steps.
  • Dependency management: Lock dependency versions during migration to ensure reproducible builds. Update package managers and lockfiles systematically to avoid version conflicts.
  • Technical debt tracking: Document any temporary workarounds or deferred improvements introduced during migration. Create backlog items for post-migration cleanup and improvement.

Consistent application of development practices reduces risk and accelerates delivery of reliable software.

Ongoing maintenance

If you are affected, plan for ongoing maintenance and evolution of systems affected by this change:

  • Support lifecycle awareness: Track support timelines for dependencies, runtimes, and platforms. Plan upgrades before end-of-life dates to maintain security patch coverage.
  • Continuous improvement: Establish feedback loops to identify improvement opportunities. Monitor performance metrics and user feedback to guide iterative improvements.
  • Knowledge management: Build team expertise through training, documentation, and knowledge sharing. Ensure institutional knowledge is preserved as team composition changes.
  • Upgrade pathways: Maintain awareness of future versions and breaking changes. Plan incremental upgrades rather than large leap migrations where possible.
  • Community engagement: Participate in relevant open source communities, user groups, or vendor programs. Stay informed about roadmaps, good practices, and common pitfalls.

preventive maintenance planning reduces technical debt accumulation and ensures systems remain secure, performant, and aligned with business needs.

  • Test coverage analysis: Review existing test suites to identify gaps in coverage for affected functionality. Prioritize test creation for high-risk areas and critical user journeys.
  • Regression testing: Establish full regression test suites to catch unintended side effects. Automate regression runs in CI/CD pipelines to catch issues early.
  • Performance testing: Conduct load and stress testing to validate system behavior under production-like conditions. Establish performance baselines and monitor for degradation.
  • Security testing: Include security-focused testing such as SAST, DAST, and dependency scanning. Address identified vulnerabilities before production deployment.
  • User acceptance testing: Engage teams in UAT to validate that changes meet business requirements. Document acceptance criteria and sign-off procedures.

A full testing strategy provides confidence in changes and reduces the risk of production incidents.

.NET 6 to. NET 8 migration considerations

Migration from. NET 6 to. NET 8 involves API compatibility review, package dependency updates, and testing for behavioral changes. If you are affected, inventory all Cloud Functions using. NET 6 and establish migration timelines ahead of the runtime retirement date. Performance baselines captured before migration help identify regressions.

Consider containerized deployment options (Cloud Run) for greater runtime flexibility and longer support cycles compared to managed function runtimes.

Testing and deployment pipeline updates

CI/CD pipelines deploying. NET Cloud Functions require updates to target the new runtime version. Review GitHub Actions, Cloud Build, or other deployment workflows to specify the correct. NET SDK. Integration tests should validate function behavior under the new runtime before production deployment.

Monitor Cloud Functions metrics for invocation latency changes after migration. The isolated worker model may exhibit different cold start characteristics compared to in-process hosting.

Dependency and package compatibility

Audit NuGet package dependencies for. NET 8 compatibility. Some packages may require version updates or replacements. The Microsoft. NET.Sdk. Functions package version must align with the target runtime. Use the. NET Upgrade Assistant tool to identify compatibility issues before manual migration.

Cost and architecture improvement opportunities

Runtime migration provides an opportunity to review function architecture. Consider consolidating small functions into fewer, more capable functions to reduce cold start overhead. Evaluate whether Cloud Run may offer better cost-performance characteristics for high-throughput workloads compared to Cloud Functions.

Continue in the Developer pillar

Return to the hub for curated research and deep-dive guides.

Visit pillar hub

Latest guides

Documentation

  1. Google Cloud Functions runtime support schedule — Google Cloud
  2. .NET and .NET Core support policy — Microsoft
  3. ISO/IEC 27034-1:2011 — Application Security — International Organization for Standardization
  • Google Cloud Functions
  • .NET 6
  • Runtime decommission
  • Serverless
Back to curated briefings

Comments

Community

We publish only high-quality, respectful contributions. Every submission is reviewed for clarity, sourcing, and safety before it appears here.

    Share your perspective

    Submissions showing "Awaiting moderation" are in review. Spam, low-effort posts, or unverifiable claims will be rejected. We verify submissions with the email you provide, and we never publish or sell that address.

    Verification

    Complete the CAPTCHA to submit.