Skip to main content
Your progress
0 of 4 lessons complete0%
T2 / M2.5 / L2 OF 4 / Engineer TIER / 9 min

The Adopt flow

Outcome

By the end of this lesson, you will be able to adopt an existing cloud-side scaling configuration without mutation, verify that no cloud-side changes occurred, and migrate to ZopNight management when ready.


TierEngineer
JTBD”Bring existing scaling configs under ZopNight visibility without changing them: preserve customer’s existing investment.”
PersonasPlatform Engineer · SRE · DevOps Engineer
PrerequisitesM2.5.L1
Time9 minutes
Bloom verbAdopt (Apply), Verify (Evaluate), Migrate (Apply)

1. Concept

Adopt is the “zero mutation” path. ZopNight tracks the existing policy, surfaces its configuration, but never modifies the cloud-side. The policy stays exactly as it was.

Terminal window
ADOPT GUARANTEE:
Zero cloud-side mutation during adoption
Existing scaling continues as before
ZopNight observes; doesn't act
Customer can audit before / after; state unchanged

Adopt is the safe default for any existing scaling configuration.

What happens during adopt

Terminal window
ADOPT WORKFLOW:
1. Customer picks Adopt in the Create wizard
2. ZopNight calls cloud API to fetch current scaling configuration
3. Full raw config (scalable_target, policies, scheduled_actions)
is captured as the policy's previousConfig
4. ZopNight creates a tracking record with:
source = adopted
target = the cloud-side target
min, max, target, cooldown = current values
mode = monitor (default for adopted)
5. NO cloud API mutations. Cloud-side state unchanged.
6. Customer sees the policy in the Autoscaler page

The byte-accurate config preservation = ability to restore later if needed.

What gets stored

Terminal window
ADOPTED POLICY: stripe-payments-asg-1
─────────────────────────────────────────────────────────
Source: adopted
Cloud target: stripe-payments-asg-1 (ASG)
Last seen: 2026-05-20T08:00:00Z
Mode: monitor (default for adopted)
CURRENT CLOUD-SIDE CONFIG:
Scalable target: min 4, max 12, desired 6
Scaling policies:
"scale-out-cpu": Target tracking, CPU 60%
"scale-out-step-1": Step scaling, alarm thresholds
"scheduled-action-1": Scheduled action, weekday 8 AM
PREVIOUS CONFIG (rawSpec):
{... full provider-specific JSON ...}

The “Previous config (rawSpec)” is the byte-accurate cloud-side state. Adopt preserves this so future Remove can restore exactly.

What the customer sees in the UI

Terminal window
AUTOSCALER PAGE: stripe-payments-asg-1
─────────────────────────────────────────────────────────
Provider: aws
Target: ASG: stripe-payments-asg-1
Status: Active (managed by cloud)
Source: adopted ← key indicator
Mode: monitor
ZopNight knows this policy exists but does not modify it.

The “adopted” badge is prominent. There is no ambiguity about ownership.

Recommendations on adopted policies

ZopNight can recommend optimizations on adopted policies:

Terminal window
RECOMMENDATIONS for stripe-payments-asg-1 (adopted)
─────────────────────────────────────────────────────────
RC-ASC-004 Scaling target too high (>90%)
Current target: 90%
Suggested target: 70%
Why: scaling triggers at saturation; latency suffers
[Apply] (would auto-promote to recommended)
[Dismiss]
[Snooze]

Apply triggers the auto-promote on edit flow. The user sees that path explicitly before any cloud mutation.

When to use Adopt

Terminal window
SCENARIO USE ADOPT?
─────────────────────────────────────────────────────────
Existing config from Terraform/CFN YES (preserve IaC)
Existing config from console YES (preserve manual setup)
Config from other FinOps tool (Spot/etc) YES (don't disrupt them)
Config seems well-tuned YES (don't second-guess)
New workload; no existing config NO (skip adopt; create direct)
Recently-changed config; team uncertain YES (observe before acting)
Config seems broken or outdated Maybe (consider Replace instead)

Default to Adopt for any non-trivial existing config.

Removing an adopted policy

Terminal window
REMOVE on adopted policy = effectively no-op:
1. Customer clicks Remove on an adopted policy
2. ZopNight has nothing to undo (no cloud mutations performed)
3. Tracking record deleted from ZopNight
4. Cloud-side state remains exactly as it was
EFFECTIVELY: "stop tracking this"
Cloud-side scaling continues as before
ZopNight no longer shows the policy
Reversible: re-adopt anytime

Adopt is cheap to undo; that’s part of its safety.

Auto-promote flow recap

When editing an adopted policy, the source auto-promotes:

Terminal window
Editing adopted policy:
T+0 Adopted: target 60%
T+5s User clicks Edit; changes target to 65%
T+5s ZopNight prompts: "Source will change adopted → recommended"
T+5s User confirms
T+5s Source promoted; policy now recommended
T+5s UI prompts: "Re-apply to push new value to cloud?"
T+15s User clicks Re-apply
T+30s Cloud-side updated to target 65%
ONE-WAY TRANSITION:
Once recommended, stays recommended
Don't accidentally edit adopted policies you want to keep as adopted

The auto-promote is explicit; documented in audit log.

Cost-impact recommendations for adopted

ZopNight provides cost-impact analysis even on adopted policies:

Terminal window
COST IMPACT for adopted policy (analytical view):
Estimated cost from current config: $1,200/mo
Estimated cost if target were 65%: $920/mo
Potential savings: $280/mo
Scaling pattern analysis:
47 scaling actions in past month (high; due to aggressive target)
Average instances: 5.8 (vs theoretical optimal 4.2)
Latency impact: minimal (target is high; not at saturation often)
Recommendation: tune target to 65% for cost savings + lower churn

The analysis is non-actionable in adopt mode but informative. Customer can choose to act.


2. Demo

A team adopting all existing scaling on day one:

Terminal window
T+0 Team has 47 ASGs across prod and non-prod
Each with existing cloud-side scaling from CloudFormation
T+5 min Team's onboarding playbook: adopt all existing configurations
For each ASG:
Create policy → wizard detects existing config → Adopt
ZopNight tracks 47 policies, all source=adopted
Zero cloud-side mutations
T+1 MONTH:
Team reviews recommendations:
12 ASGs have target too high (>90%)
8 have cooldown too short
5 have step scaling that's poorly tuned
The rest: configured well
T+2 MONTHS:
Team works through recommendations
For each, editing an adopted policy auto-promotes to recommended
Tests the change in staging first; then production
T+3 MONTHS:
32 ASGs now ZopNight-recommended (managed)
15 still adopted (no recommendations; well-tuned originally)
RESULTS:
Cost savings: ~$8K/mo across the optimized 32 policies
Latency: improved (less scaling churn)
Trust built: zero incidents from auto-management
Team comfortable with ZopNight ownership

The adopt-then-edit pattern is the standard onboarding pattern for teams with existing scaling.


3. Hands-on (5 min)

In a sandbox with existing cloud-side scaling:

Terminal window
□ STEP 1: Adopt one policy
Trigger Create on a target with existing scaling
Pick Adopt
Confirm
□ STEP 2: Verify zero cloud-side change
Compare cloud-side config before and after
Should be identical (byte-accurate)
□ STEP 3: Check the policy detail
Source: __________ (should be "adopted")
Mode: __________
Previous config visible: □ Yes □ No
□ STEP 4: Review recommendations (if any)
Recommendations for this policy: _____
Action available: __________
□ STEP 5: Plan future transition
Will you re-evaluate in 30 days? □ Yes
Edit policy to take ownership? __________ (when)

A 10-minute exercise reveals the adopt flow’s safety.


4. Knowledge check

Q1

What cloud API mutations happen during Adopt?

A. ZopNight modifies the policies
B. Zero: Adopt is “observe only.” The cloud-side state is unchanged. ZopNight reads the config; stores it; never mutates. This is the architectural guarantee that makes Adopt safe.
C. ZopNight creates a copy
D. Random

Show answer

Correct: B. Zero mutation is the design.

Q2

Removing an adopted policy:

A. Restores the original config
B. No-op for cloud-side state (nothing was changed); only deletes the ZopNight tracking record. Adopt was no-op; Remove is no-op too. Cloud-side scaling continues as it was.
C. Deletes the policy
D. Triggers an error

Show answer

Correct: B. Adopt was no-op; Remove is no-op too.

Q3

Adopted policy recommendations are:

A. Auto-applied
B. Advisory: the user sees the recommendation. Applying it auto-promotes the policy to recommended and triggers cloud mutation only after explicit user action. ZopNight never modifies adopted policies without explicit consent.
C. Hidden
D. Random

Show answer

Correct: B. Advisory only, requires explicit user action.


5. Apply

The Adopt wizard option is in Automation → Policies → New Policy. Source = adopted shows on the policy detail page.

For your team: default to Adopt for any existing scaling; review monthly; transition to Recommended when ready.


Glossary terms touched

Adopt flow · previousConfig · Zero-mutation guarantee · Auto-promote


Start with the bill.

Foundations takes about five hours. The first lesson is nine minutes.

Open curriculum. No login. No paywall. 237 lessons across 7 courses, three publicly verifiable credentials. Read it on the train, take the exam on a Saturday, list the credential on your résumé Monday.

5h median time to finish Foundations
0 logins, paywalls, or marketing forms
open curriculum, public credential verifier
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 30% average cloud cost cut· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 30% average cloud cost cut· 4 platforms · 1 console·