Skip to content

Target Operating Model: NetApp Operations with Temporal Workflows

This document defines the Target Operating Model (TOM) for NetApp storage operations, showcasing three operational paradigms: traditional manual operations, MCP-enabled automation, and the advanced Temporal.io-powered durable execution model.

Executive Summary

The Target Operating Model demonstrates the evolution from manual NetApp operations to AI-assisted automation, culminating in durable, fault-tolerant workflows powered by Temporal.io. This new paradigm ensures that complex, long-running storage operations never fail permanently and can recover from any failure without data loss or manual intervention.

Operating Model Comparison

Current State: Traditional NetApp Operations

graph TB
    subgraph "Traditional Operating Model"
        A[Storage Request] --> B[Storage Admin]
        B --> C[Manual Analysis]
        C --> D[Expert Knowledge]
        D --> E[CLI/GUI Operations]
        E --> F[Manual Documentation]
        F --> G[Result Communication]
    end

    subgraph "Challenges"
        H[Single Point of Failure]
        I[Slow Response Times]
        J[Knowledge Silos]
        K[Human Error Risk]
        L[Limited Scalability]
    end

Target State: DevOps-Driven with APIM Integration

graph TB
    subgraph "DevOps-Driven Operating Model"
        A[DevOps GUI Request] --> B[API Management APIM]
        B --> C[Temporal Workflows]
        C --> D[NetApp API Automation]
        D --> E[Real-time Analysis]
        E --> F[Automated Actions]
        F --> G[Structured Responses]

        subgraph "Optional MCP Integration"
            H[MCP Server on Knative]
            C --> H
            H --> D
        end
    end

    subgraph "Benefits"
        I[Self-Service DevOps]
        J[Instant Response]
        K[Workflow Reliability]
        L[API Standardization]
        M[Infinite Scalability]
    end

NEW TOM: DevOps-Primary with Day-2 AI Integration

graph TB
    subgraph "DevOps-Primary with Day-2 AI Model"
        A[DevOps GUI Request] --> B[API Management APIM]
        B --> C[Temporal Workflow Engine]
        C --> D[Durable Execution]

        subgraph "Orchestrated Activities"
            E[Optional MCP Server Functions]
            F[NetApp API Calls]
            G[Validation Steps]
            H[Rollback Logic]
            I[Notification Services]
        end

        D --> E
        D --> F
        D --> G
        D --> H
        D --> I

        subgraph "Day-2 AI Integration"
            J[AI Assistant]
            K[Predictive Analysis]
            L[Automated Approvals]
            M[Anomaly Detection]
            N[Capacity Planning]
        end

        B -->|Day-2 Operations| J
        J --> K
        J --> L
        J --> M
        J --> N

        subgraph "Durability Features"
            O[Fault Tolerance]
            P[Automatic Retries]
            Q[State Persistence]
            R[Partial Failure Recovery]
            S[Workflow History]
        end
    end

    subgraph "Advanced Benefits"
        T[Never Lose Progress]
        U[Automatic Recovery]
        V[Complex Workflow Orchestration]
        W[Audit Trail]
        X[Human-in-the-Loop]
        Y[AI-Assisted Operations]
    end

Detailed Operating Models

1. WITHOUT MCP: Traditional Storage Operations

Process Flow

flowchart LR
    A[Request] --> B[Expert] --> C[Analysis]
    C --> D[Action]
    D --> E[Documentation]
    E --> F[Communication]

    A -.-> A1[Manual<br/>Wait]
    B -.-> B1[Human<br/>Expert]
    C -.-> C1[Manual<br/>Tools]
    D -.-> D1[CLI/GUI<br/>Commands]
    E -.-> E1[Manual<br/>Notes]
    F -.-> F1[Email/Chat<br/>Updates]

    style A fill:#ffebee
    style B fill:#fff3e0
    style C fill:#e8f5e8
    style D fill:#e3f2fd
    style E fill:#f3e5f5
    style F fill:#fce4ec

    style A1 fill:#ffcdd2
    style B1 fill:#ffe0b2
    style C1 fill:#c8e6c9
    style D1 fill:#bbdefb
    style E1 fill:#e1bee7
    style F1 fill:#f8bbd9

Operational Characteristics

Aspect Traditional Model Impact
Request Handling Email, ticket system, meetings Delays, context loss
Analysis Manual data gathering, expert interpretation Time-consuming, error-prone
Execution CLI commands, GUI operations Knowledge-dependent, manual
Documentation Manual notes, spreadsheets Inconsistent, outdated
Knowledge Transfer Training, documentation Slow, incomplete
Scalability Limited by expert availability Bottleneck, single points of failure
Response Time Hours to days Business impact, user frustration
Consistency Varies by individual Quality variance

Typical Workflow Example: Volume Creation

# Traditional Process (45-60 minutes)
1. Receive request via email/ticket (5-30 min wait)
2. Storage admin reviews request (5 min)
3. Check available capacity manually (5 min)
   - ssh to cluster
   - volume show -vserver X
   - aggr show-space
4. Find appropriate aggregate (5 min)
5. Create volume via CLI (5 min)
   - volume create -vserver X -volume Y -size Z
6. Configure export policy (5 min)
7. Update documentation (10 min)
8. Notify requestor (5 min)

2. WITH APIM: DevOps-Driven Operations via Temporal

Process Flow

DevOps GUI โ†’ API Management โ†’ Temporal Workflow โ†’ NetApp APIs โ†’ Structured Response
     โ†“            โ†“                โ†“                โ†“            โ†“
  GUI Action   Standardized      Durable         Real-time   Reliable
   Request     API Gateway      Execution       Operations   Results

Operational Characteristics

Aspect DevOps-Driven Model Impact
Request Handling GUI-based, structured workflows Immediate, standardized
Analysis Temporal-powered workflow analysis, real-time insights Fast, comprehensive, durable
Execution APIM-orchestrated calls, fault-tolerant workflows Reliable, recoverable
Documentation Auto-generated workflow history, real-time updates Always current, auditable
Knowledge Transfer Workflow-embedded expertise, accessible to DevOps teams Instant, comprehensive
Scalability Temporal auto-scaling, concurrent workflow processing Unlimited, elastic
Response Time Seconds to minutes with guaranteed completion Business enablement, reliability
Consistency Workflow-standardized, best-practice embedded Uniform quality

Typical Workflow Example: Volume Creation

# DevOps-Driven Process (2-3 minutes)
DevOps Engineer: Initiates volume creation via GUI form

API Management + Temporal Workflow:
1. Validates request parameters (5 seconds)
2. Starts VolumeCreation Temporal workflow (instant)
3. Temporal orchestrates activities:
   - validate_cluster_health() - ensure cluster availability
   - find_optimal_aggregate() - identify fastest aggregate
   - create_volume_activity() - provision with best practices
   - configure_access_activity() - set up appropriate permissions
   - enable_monitoring_activity() - configure monitoring
4. Returns complete configuration details (30 seconds)
5. Auto-documents workflow history and results (5 seconds)
6. Optional: AI assistant monitors for Day-2 optimization

3. NEW TOM: DevOps-Primary with Day-2 AI Operations

Process Flow

DevOps GUI โ†’ API Management โ†’ Temporal Workflow โ†’ Durable Activities โ†’ Guaranteed Completion
     โ†“            โ†“                โ†“                 โ†“                  โ†“
  Structured   Standardized       Workflow          Optional MCP       Resilient
  Requests     API Gateway       Orchestration     + NetApp APIs      Execution

                                      โ†“
                              Day-2 AI Assistant
                                      โ†“
                          Predictive Analysis & Optimization

Operational Characteristics

Aspect DevOps-Primary + Day-2 AI Model Impact
Request Handling GUI-driven durable workflow execution, guaranteed completion Never lose requests, structured input validation
Analysis Multi-step workflows with checkpoints + AI insights Fault-tolerant analysis with predictive intelligence
Execution APIM-orchestrated activities with automatic retries Self-healing operations with AI monitoring
Documentation Complete workflow history + AI-generated insights Perfect audit trail with intelligent analysis
Knowledge Transfer Workflow-embedded expertise + AI learning Evolutionary improvement with machine learning
Scalability Unlimited concurrent workflows + AI optimization Handle enterprise-scale with intelligent resource allocation
Response Time Seconds for simple, minutes-hours for complex + AI acceleration Appropriate timing with AI-assisted optimization
Consistency Deterministic execution + AI quality assurance Perfect consistency with intelligent validation

Advanced Workflow Example: Complete SVM Environment Setup

# DevOps-Driven Temporal Workflow (30-45 minutes for complex setup)
DevOps Engineer: Submits SVM environment request via GUI with form validation

Temporal Workflow Execution via APIM:
1. Parse GUI requirements and validate (Activity 1 - 30 seconds)
2. Check cluster capacity across multiple sites (Activity 2 - 1 minute)
3. Select optimal cluster and aggregate (Activity 3 - 30 seconds)
4. Create SVM with NFS and CIFS protocols (Activity 4 - 2 minutes)
5. Configure network interfaces with failover (Activity 5 - 3 minutes)
6. Provision multiple volumes with different tiers (Activity 6 - 5 minutes)
7. Set up snapshot policies and schedules (Activity 7 - 2 minutes)
8. Configure export policies and access controls (Activity 8 - 3 minutes)
9. Integrate with Active Directory (Activity 9 - 5 minutes)
10. Set up monitoring and alerting (Activity 10 - 2 minutes)
11. Run validation tests (Activity 11 - 3 minutes)
12. Generate documentation and access guides (Activity 12 - 1 minute)
13. Notify team with complete setup details (Activity 13 - 30 seconds)

Day-2 AI Integration:
- AI monitors workflow execution patterns for optimization
- Provides predictive capacity planning recommendations
- Suggests performance tuning based on usage patterns
- Automates routine maintenance workflows

# If any step fails, Temporal automatically retries with exponential backoff
# Workflow can be paused for human approval and resumed
# Complete history is preserved for audit and debugging
# AI provides continuous optimization insights

Temporal.io Architecture Integration

Temporal Workflow Engine with NetApp Operations

# Temporal Server Configuration
apiVersion: apps/v1
kind: Deployment
metadata:
  name: temporal-server
spec:
  replicas: 3
  template:
    spec:
      containers:
        - name: temporal-server
          image: temporalio/auto-setup:latest
          env:
            - name: DB
              value: "postgresql"
            - name: POSTGRES_SEEDS
              value: "postgres-service"
          ports:
            - containerPort: 7233
            - containerPort: 8080
---
# NetApp Workflow Worker
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: netapp-temporal-worker
spec:
  template:
    spec:
      containers:
        - image: netapp/temporal-worker:latest
          env:
            - name: TEMPORAL_HOST
              value: "temporal-server:7233"
            - name: NETAPP_API_ENDPOINT
              valueFrom:
                secretKeyRef:
                  name: netapp-credentials
                  key: endpoint

Durable Workflow Benefits

๐Ÿ”„ Fault Tolerance

  • Automatic Retries: Failed activities retry with exponential backoff
  • Partial Failure Recovery: Resume from last successful checkpoint
  • Worker Failures: Workflows survive worker restarts and deployments
  • Infrastructure Failures: Persist through cluster outages

๐Ÿ“ˆ Complex Orchestration

  • Multi-Step Processes: Coordinate dozens of NetApp operations
  • Conditional Logic: Smart decision-making based on intermediate results
  • Human-in-the-Loop: Pause for approvals, resume automatically
  • Parallel Execution: Run independent operations concurrently

๐Ÿ” Observability

  • Workflow History: Complete execution trace with timing
  • State Inspection: View current workflow state and variables
  • Replay Capability: Debug issues by replaying exact execution
  • Metrics Integration: Built-in metrics for monitoring

โฑ๏ธ Long-Running Operations

  • Days/Weeks Duration: Handle migration and upgrade workflows
  • Scheduled Operations: Cron-like scheduling with durability
  • Event-Driven: React to NetApp events and external triggers
  • Resource Cleanup: Automatic cleanup on workflow completion

Temporal Workflow Patterns for NetApp

1. Simple Request-Response Pattern

@workflow.defn
class SimpleVolumeCreation:
    @workflow.run
    async def run(self, volume_request: VolumeRequest) -> VolumeResult:
        # Single activity execution
        return await workflow.execute_activity(
            create_volume_activity,
            volume_request,
            start_to_close_timeout=timedelta(minutes=5)
        )

@activity.defn
async def create_volume_activity(request: VolumeRequest) -> VolumeResult:
    # Call MCP server
    mcp_client = get_mcp_client()
    result = await mcp_client.call_tool("create_volume", request.dict())
    return VolumeResult.parse_obj(result)

2. Complex Multi-Step Workflow

@workflow.defn
class SVMEnvironmentSetup:
    @workflow.run
    async def run(self, setup_request: SVMSetupRequest) -> SVMSetupResult:
        workflow.logger.info(f"Starting SVM setup for {setup_request.team_name}")

        # Step 1: Validate requirements
        validation = await workflow.execute_activity(
            validate_requirements,
            setup_request,
            start_to_close_timeout=timedelta(minutes=2)
        )

        if not validation.valid:
            raise ApplicationError(f"Validation failed: {validation.errors}")

        # Step 2: Resource allocation
        allocation = await workflow.execute_activity(
            allocate_resources,
            setup_request,
            start_to_close_timeout=timedelta(minutes=5)
        )

        # Step 3: Create SVM
        svm = await workflow.execute_activity(
            create_svm,
            allocation,
            start_to_close_timeout=timedelta(minutes=10)
        )

        # Step 4: Configure networking (parallel activities)
        network_tasks = [
            workflow.execute_activity(
                create_management_lif,
                svm.uuid,
                start_to_close_timeout=timedelta(minutes=5)
            ),
            workflow.execute_activity(
                create_data_lifs,
                svm.uuid,
                start_to_close_timeout=timedelta(minutes=5)
            )
        ]

        await asyncio.gather(*network_tasks)

        # Step 5: Human approval for production
        if setup_request.environment == "production":
            approval = await workflow.execute_activity(
                request_approval,
                f"SVM {svm.name} ready for production deployment",
                start_to_close_timeout=timedelta(hours=24)  # Wait up to 24 hours
            )

            if not approval.approved:
                # Cleanup resources
                await workflow.execute_activity(
                    cleanup_svm,
                    svm.uuid,
                    start_to_close_timeout=timedelta(minutes=10)
                )
                raise ApplicationError("Setup not approved")

        # Step 6: Final configuration
        final_config = await workflow.execute_activity(
            finalize_setup,
            svm.uuid,
            start_to_close_timeout=timedelta(minutes=15)
        )

        # Step 7: Notification
        await workflow.execute_activity(
            send_completion_notification,
            final_config,
            start_to_close_timeout=timedelta(minutes=2)
        )

        return SVMSetupResult(
            svm_uuid=svm.uuid,
            svm_name=svm.name,
            access_details=final_config.access_details,
            setup_duration=workflow.now() - workflow.start_time
        )

3. Event-Driven Workflow

@workflow.defn
class CapacityManagement:
    @workflow.run
    async def run(self, cluster_uuid: str) -> None:
        # Continuous workflow for capacity management
        while True:
            # Check capacity every hour
            capacity_status = await workflow.execute_activity(
                check_cluster_capacity,
                cluster_uuid,
                start_to_close_timeout=timedelta(minutes=5)
            )

            if capacity_status.utilization > 80:
                # Trigger expansion workflow
                await workflow.execute_child_workflow(
                    CapacityExpansionWorkflow.run,
                    cluster_uuid,
                    id=f"expansion-{cluster_uuid}-{workflow.now()}"
                )

            # Wait for next check or external signal
            try:
                await workflow.wait_condition(
                    lambda: False,  # Never true, so always timeout
                    timeout=timedelta(hours=1)
                )
            except TimeoutError:
                continue  # Normal hourly check

            # Handle external signals
            signals = workflow.list_all_signals()
            for signal in signals:
                if signal.name == "emergency_expansion":
                    await workflow.execute_child_workflow(
                        EmergencyExpansionWorkflow.run,
                        signal.data
                    )

Enhanced Operational Metrics with Temporal

Metric Without MCP With MCP With Temporal Total Improvement
Request Response Time 2-48 hours 30 seconds - 5 minutes 30 seconds - 45 minutes* 95%+ reduction
Success Rate 70-80% (human error) 95% (automated) 99.9% (durable execution) 99%+ improvement
Complex Workflow Execution Days/weeks Not supported Hours with fault tolerance 90%+ reduction
Audit Compliance Manual, incomplete Basic logging Complete workflow history Perfect compliance
Recovery from Failures Manual intervention Restart from beginning Resume from checkpoint 100% improvement
Concurrent Operations 1-2 per admin 100s Unlimited with coordination Unlimited scaling

*Complex workflows like complete environment setup can take 30-45 minutes but run reliably with automatic recovery

Implementation Roadmap with Temporal

Phase 1: Foundation + Temporal (Months 1-3)

  1. Infrastructure Setup

  2. Deploy Temporal.io cluster

  3. Set up Knative for MCP functions
  4. Configure PostgreSQL for Temporal persistence

  5. Basic Workflows

  6. Simple volume operations

  7. SVM creation with rollback
  8. Capacity monitoring workflows

  9. Integration Testing

  10. Failure simulation and recovery
  11. Workflow replay and debugging
  12. Performance optimization

Phase 2: Advanced Workflows (Months 4-6)

  1. Complex Orchestration

  2. Multi-site disaster recovery setup

  3. Large-scale data migration
  4. Scheduled maintenance workflows

  5. Human Integration

  6. Approval workflows

  7. Exception handling
  8. Manual override capabilities

  9. Enterprise Features

  10. Multi-tenant workflow isolation
  11. Advanced monitoring and alerting
  12. Compliance reporting

Phase 3: Advanced AI Integration (Months 7-9)

  1. Intelligent Workflows

  2. AI-driven capacity planning

  3. Predictive maintenance workflows
  4. Self-optimizing configurations

  5. Machine Learning Integration

  6. Performance pattern recognition
  7. Anomaly detection workflows
  8. Automated tuning recommendations

Business Impact with Temporal Integration

Risk Elimination

  • Zero Data Loss: Workflows guarantee completion or clean rollback
  • No Lost Work: Failed operations resume from last checkpoint
  • Audit Perfection: Complete history of all operations
  • Compliance Automation: Workflows enforce compliance automatically

Operational Excellence

  • Complex Operations: Handle enterprise-scale migrations and setups
  • Unattended Operations: Workflows run 24/7 without human intervention
  • Smart Recovery: Automatic handling of transient failures
  • Scalable Orchestration: Coordinate hundreds of parallel operations

Business Agility

  • Rapid Environment Provisioning: Complete setups in under an hour
  • Reliable Scaling: Predictable capacity expansion
  • Fast Recovery: Automatic disaster recovery workflows
  • Innovation Enablement: Focus on business logic, not infrastructure

This enhanced Target Operating Model with Temporal.io represents the ultimate evolution of NetApp operations: durable, fault-tolerant, and infinitely scalable storage management that never fails permanently and enables operations at enterprise scale with perfect reliability.

Knative Function Architecture

MCP Server as Knative Service

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: netapp-mcp-server
spec:
  template:
    metadata:
      annotations:
        autoscaling.knative.dev/minScale: "0"
        autoscaling.knative.dev/maxScale: "100"
        autoscaling.knative.dev/target: "10"
    spec:
      containers:
        - image: netapp/mcp-server:latest
          env:
            - name: NETAPP_API_ENDPOINT
              valueFrom:
                secretKeyRef:
                  name: netapp-credentials
                  key: endpoint
          resources:
            requests:
              memory: "256Mi"
              cpu: "200m"
            limits:
              memory: "512Mi"
              cpu: "500m"

Benefits of Knative Deployment

๐Ÿš€ Auto-Scaling

  • Scale to Zero: No resources consumed when idle
  • Instant Scale-Up: Automatic scaling based on demand
  • Cost Optimization: Pay only for actual usage
  • High Availability: Built-in redundancy and failover

โšก Performance

  • Cold Start Optimization: Sub-second startup times
  • Request Routing: Intelligent traffic distribution
  • Resource Efficiency: Optimal resource utilization
  • Concurrent Processing: Handle multiple requests simultaneously

๐Ÿ”ง Operations

  • Simplified Deployment: GitOps-enabled deployments
  • Version Management: Blue-green deployments
  • Health Monitoring: Built-in health checks
  • Observability: Comprehensive metrics and logging

Organizational Impact

Role Transformation

Traditional Roles

Storage Administrator:
- Manual operation execution
- Expert knowledge keeper
- Bottleneck for requests
- Documentation maintainer

Application Teams:
- Dependent on storage experts
- Long wait times for storage
- Limited storage visibility
- Manual coordination required

MCP-Enabled Roles

Storage Administrator:
- Solution architect and optimizer
- Policy and governance designer
- Exception handler
- Strategic planner

Application Teams:
- Self-service storage access
- Real-time storage insights
- Autonomous problem solving
- Focus on business logic

Operational Metrics Comparison

Metric Without MCP With MCP Improvement
Request Response Time 2-48 hours 30 seconds - 5 minutes 95%+ reduction
Storage Admin Utilization 80% routine tasks 20% routine tasks 4x efficiency gain
Error Rate 5-10% human error <1% automated error 90%+ reduction
Knowledge Transfer Time Weeks to months Instant access Immediate
After-Hours Support On-call expert required 24/7 automated Always available
Scaling Capacity Linear with headcount Exponential with automation Unlimited

Business Value Realization

Financial Impact

  • Cost Reduction: 60-80% reduction in operational overhead
  • Revenue Protection: 95% reduction in storage-related outages
  • Productivity Gains: 4x improvement in storage admin efficiency
  • Innovation Acceleration: Teams focus on value-add activities

Operational Excellence

  • Service Quality: Consistent, best-practice operations
  • Compliance: Automated compliance and audit trails
  • Risk Reduction: Elimination of human error
  • Knowledge Preservation: Expertise embedded in automation

Implementation Strategy

Phase 1: Foundation (Months 1-2)

  1. Knative Platform Setup

  2. Deploy Knative Serving on Kubernetes

  3. Configure autoscaling and observability
  4. Establish CI/CD pipelines

  5. MCP Server Development

  6. Build NetApp API integration

  7. Implement core storage operations
  8. Develop error handling and logging

  9. Initial Use Cases

  10. Storage monitoring and reporting
  11. Basic volume operations
  12. Capacity planning queries

Phase 2: Expansion (Months 3-4)

  1. Advanced Operations

  2. SVM management and provisioning

  3. Performance optimization workflows
  4. Backup and recovery automation

  5. Integration Development

  6. ITSM system integration

  7. Monitoring tool connectivity
  8. Notification and alerting

  9. Self-Service Portal

  10. Web interface for non-technical users
  11. Mobile access capabilities
  12. Role-based access controls

Phase 3: Optimization (Months 5-6)

  1. AI Enhancement

  2. Predictive analytics integration

  3. Machine learning model deployment
  4. Intelligent recommendation engine

  5. Process Automation

  6. End-to-end workflow automation

  7. Exception handling processes
  8. Continuous optimization loops

  9. Enterprise Integration

  10. Enterprise service bus connectivity
  11. Master data management integration
  12. Business intelligence reporting

Governance and Control

Without MCP: Manual Governance

  • Access Control: Manual user management
  • Change Management: Paper-based approval processes
  • Audit Trails: Manual documentation, often incomplete
  • Compliance: Periodic manual reviews
  • Policy Enforcement: Relies on human adherence

With MCP: Automated Governance

  • Access Control: Role-based automated access with audit trails
  • Change Management: Automated approval workflows with full traceability
  • Audit Trails: Complete API-level logging and monitoring
  • Compliance: Continuous compliance monitoring and reporting
  • Policy Enforcement: Automated policy implementation and validation

Risk Management

Risk Mitigation Strategies

Technical Risks

  • Service Availability: Knative multi-zone deployment with health checks
  • Data Security: End-to-end encryption and secure credential management
  • Performance: Auto-scaling and resource optimization
  • Integration Failures: Circuit breakers and fallback mechanisms

Operational Risks

  • Change Management: GitOps deployment with rollback capabilities
  • Knowledge Loss: Expertise embedded in automation
  • Dependency Management: Multi-vendor API abstraction
  • Business Continuity: Disaster recovery and backup procedures

Success Metrics

Technical KPIs

  • Response Time: <30 seconds for 95% of requests
  • Availability: 99.9% uptime SLA
  • Scalability: Support 10x current request volume
  • Accuracy: <1% error rate in automated operations

Business KPIs

  • User Satisfaction: >90% satisfaction score
  • Cost Reduction: >60% reduction in operational costs
  • Time to Value: <5 minutes for standard requests
  • Innovation Rate: 4x increase in new storage services

This Target Operating Model demonstrates how Knative-deployed MCP servers transform NetApp operations from expert-dependent manual processes to democratized, automated, and scalable storage services that enable business agility and operational excellence.