Enterprise Delivery, DevOps, and Cloud IntegrationIntroduction and ContextEnterprise software is not successful merely because it compiles or satisfies an isolated functional requirement. It must be delivered repeatedly, securely, economically, and predictably; operate across environments; integrate with organizational systems; and remain maintainable for years. For Visual Basic developers, this context is especially important because Visual Basic applications range from desktop and Windows Forms systems to ASP.NET applications, Windows services, class libraries, Office automation solutions, and modern .NET services. Enterprise delivery connects software engineering with operations, security, governance, architecture, and business management. DevOps provides the cultural and technical practices for shortening the distance between development and reliable operation. Cloud integration extends these practices to elastic infrastructure, managed platforms, distributed services, identity systems, observability platforms, and cloud-native deployment models. In contemporary .NET development, Visual Basic can target the .NET platform and participate in the same build, test, packaging, containerization, and cloud-hosting processes as other .NET languages. The language is therefore not an obstacle to modern delivery; the principal challenge is designing an appropriate delivery system around the application. Learning ObjectivesAfter completing this chapter, the learner should be able to: - Explain enterprise delivery and distinguish continuous integration, continuous delivery, and continuous deployment.
- Design a DevOps workflow for a Visual Basic .NET application.
- Apply source control, automated testing, release management, infrastructure automation, and observability principles.
- Compare deployment patterns such as rolling, blue–green, canary, and immutable deployment.
- Integrate Visual Basic applications with cloud identity, storage, messaging, databases, monitoring, and secrets management.
- Evaluate security, governance, reliability, cost, and compliance implications.
- Diagnose practical delivery problems using measurable engineering and operational evidence.
1. Enterprise Delivery as a Socio-Technical SystemEnterprise delivery is the coordinated movement of a software change from an approved idea to a stable production capability. It includes requirements, architecture, coding, verification, packaging, deployment, operation, support, and eventual retirement. It is a socio-technical system because tools alone cannot solve unclear ownership, incompatible incentives, weak communication, or poor architectural decisions. A useful delivery chain is: Plan → Code → Build → Test → Secure → Package → Release → Deploy → Observe → Learn The chain is a feedback system rather than a one-way sequence. Production observations may change requirements; security findings may alter architecture; failed tests may prevent release; and operational incidents may lead to new automated checks. 1.1 Essential terminology- Artifact: A versioned output of a build, such as a DLL, executable, NuGet package, container image, or deployment bundle.
- Pipeline: An automated sequence that validates, packages, and promotes software.
- Environment: A controlled execution context, such as development, test, staging, or production.
- Configuration: Environment-specific behavior, such as service endpoints or feature switches.
- Promotion: Moving the same validated artifact to a later environment.
- Release: Making a capability available to users or operators.
- Deployment: Installing or activating software in an environment.
- Rollback: Returning to a previously known-good version.
- Observability: The ability to infer internal system behavior from logs, metrics, traces, and events.
- Technical debt: Future cost created by expedient design or implementation choices.
A mature organization separates the artifact from its configuration. The same binary should, wherever feasible, be promoted from testing to production, while endpoints, credentials, and scale settings are supplied externally. Rebuilding separately for each environment can produce “works in test, fails in production” discrepancies. 2. DevOps Principles and Delivery ModelsDevOps is commonly understood as a set of practices that integrates development and operations through shared responsibility, automation, rapid feedback, and continual improvement. It is not simply a product, a job title, or a requirement to release without control. 2.1 Continuous integrationContinuous integration (CI) means that developers frequently merge changes into a shared repository and an automated system builds and tests those changes. A Visual Basic CI pipeline commonly performs the following tasks: - Restore .NET dependencies.
- Compile the solution with warnings treated appropriately.
- Run unit and integration tests.
- Perform static analysis and dependency vulnerability checks.
- Publish test results and code coverage.
- Package the application and record version metadata.
CI reduces integration risk by detecting defects near the time they are introduced. It is weakened when branches live for long periods, tests are unreliable, or builds depend on a developer’s workstation. 2.2 Continuous delivery and continuous deploymentContinuous delivery keeps software in a releasable state. Production deployment may require an explicit business or operational approval. Continuous deployment automatically deploys every change that passes all required controls. These models are not maturity labels in isolation. An organization may sensibly use continuous delivery for a regulated banking system and continuous deployment for a low-risk internal service. The correct model depends on risk, reversibility, test strength, regulatory requirements, and business tolerance for change. 2.3 DevSecOpsDevSecOps incorporates security into the delivery lifecycle rather than treating it as a final inspection. Controls include secure coding, secret scanning, software composition analysis, dependency updates, threat modeling, infrastructure scanning, least-privilege identity, audit logging, and incident response exercises. Security automation must be proportionate. A tool that generates thousands of unactionable warnings can cause teams to ignore genuine vulnerabilities. Findings should be prioritized using exploitability, asset criticality, exposure, and compensating controls. 2.4 A delivery performance modelFour widely used delivery indicators are deployment frequency, lead time for changes, change failure rate, and time to restore service. For a selected observation period: Change Failure Rate = (Number of deployments causing failure or rollback ÷ Total deployments) × 100% The numerator and denominator must use the same period and the organization must define “failure” consistently. A rollback caused by a failed health check may count, whereas a planned emergency change may be classified separately. These metrics should guide improvement, not become targets that encourage unsafe behavior. Lead time for changes is the elapsed time from an accepted code change to its successful production operation. Time to restore service is the elapsed time from detection of a service-impacting incident to restoration. Metrics require context: a low lead time accompanied by severe incidents is not evidence of engineering excellence. 3. Source Control, Branching, and Build ReproducibilityGit is commonly used for Visual Basic projects. A repository should contain source code, project files, test code, build configuration, infrastructure definitions, and documentation required to reproduce the system. It should not contain passwords, private keys, generated binaries, local user settings, or uncontrolled database dumps. A practical branching strategy may use short-lived feature branches and a protected main branch. Every merge request should receive automated compilation, tests, code review, and policy checks. Trunk-based development reduces long-lived divergence, while release branches may be justified for supported maintenance versions. Build reproducibility requires: - pinned or centrally managed dependency versions;
- a defined SDK and runtime version;
- deterministic or traceable versioning;
- clean-build verification;
- automated database and infrastructure validation;
- isolation from developer-machine state.
A version should be traceable from source commit to artifact, deployment, configuration revision, and operational event. This relationship is valuable during audits and incident investigation. 3.1 Visual Basic project considerationsA modern Visual Basic project typically uses an SDK-style project file. Compilation may be performed with the .NET CLI or an integrated build server. Example commands are: dotnet restore
dotnet build --configuration Release --no-restore
dotnet test --configuration Release --no-build
dotnet publish --configuration Release --output ./publish The exact commands depend on the target framework and project type. Windows-only applications may require Windows-based build agents, while portable class libraries and web services can often build on Linux agents. This distinction should be made explicit in pipeline design. Visual Basic projects should enable strictness and explicitness where appropriate, including Option Strict On, Option Explicit On, and Option Infer On according to project policy. These settings reduce implicit conversions and late-binding defects. Public APIs should use clear types and stable contracts, especially when called by other services. 4. Automated Quality EngineeringAutomation does not eliminate professional judgment; it makes repeatable judgment faster and more reliable. 4.1 Test levels- Unit tests verify a small component in isolation. They should be fast and deterministic.
- Integration tests verify interaction with databases, filesystems, queues, or external services.
- Contract tests verify that a service provider and consumer agree on an interface.
- End-to-end tests exercise a complete business flow and are valuable but usually slower and more fragile.
- Performance tests examine latency, throughput, concurrency, and resource use.
- Resilience tests examine behavior during timeout, dependency failure, throttling, or partial outage.
A balanced test portfolio places many fast tests near the code and fewer broad tests at the system boundary. A high percentage of code coverage does not guarantee meaningful testing; coverage indicates executed code, not correctness of assertions or business scenarios. 4.2 Testable Visual Basic designDependency injection, interfaces, pure functions, and separation of concerns improve testability. For example, a service should receive an abstraction for time, storage, or payment rather than directly constructing a production client inside a business method. External dependencies can then be replaced by controlled test doubles. Public Interface IExchangeRateProvider
Function GetRateAsync(currency As String) As Task(Of Decimal)
End Interface
Public Class PriceService
Private ReadOnly rates As IExchangeRateProvider
Public Sub New(rates As IExchangeRateProvider)
Me.rates = rates
End Sub
Public Async Function ConvertAsync(amount As Decimal,
currency As String) As Task(Of Decimal)
Dim rate = Await rates.GetRateAsync(currency)
Return Decimal.Round(amount * rate, 2)
End Function
End ClassThe example isolates the exchange-rate dependency. Tests can provide a deterministic implementation and verify rounding, invalid inputs, and provider failures without contacting a real service. 5. Packaging, Configuration, and Release ControlA release process should answer four questions: what is being released, who authorized it, where is it deployed, and how can it be reversed or mitigated? Configuration should be externalized and categorized: | Category | Example | Recommended treatment |
|---|
| Non-sensitive setting | Feature flag or timeout | Versioned configuration or controlled configuration service | | Environment setting | Database endpoint | Environment-specific deployment configuration | | Secret | Password or API key | Secret manager; never source control | | Operational setting | Log level or replica count | Controlled runtime configuration |
Secrets should be retrieved using managed identity or workload identity where supported. If a secret must be stored, it should be encrypted, access-controlled, rotated, and audited. Connection strings should not be embedded in compiled Visual Basic code. Semantic versioning can communicate compatibility intentions using a major, minor, and patch structure. However, versioning is not a substitute for contract testing. A supposedly minor change can still break consumers if behavior, performance, or undocumented assumptions change. Database changes require special care. A deployment that changes application code and schema simultaneously can make rollback difficult. Expand-and-contract migration is safer: first add backward-compatible schema elements, then deploy code that uses them, migrate data, and finally remove obsolete elements after all consumers have moved. 6. Deployment Patterns and Reliability6.1 Rolling deploymentInstances are updated in groups while the service remains available. It uses resources efficiently but can expose users to mixed application versions. Backward-compatible APIs and schemas are therefore important. 6.2 Blue–green deploymentTwo production-like environments exist. The blue environment serves traffic while the green environment is deployed and verified. Traffic is switched after validation. This provides a rapid rollback by switching back, but temporarily requires additional capacity and careful handling of stateful resources. 6.3 Canary deploymentA small percentage of traffic is sent to the new version. Engineers compare error rate, latency, resource use, and business indicators before expanding exposure. Canary analysis must account for traffic composition; a small but unusually complex customer group can distort results. 6.4 Immutable deploymentInstead of modifying a running server, a new version of the machine image or container is created and deployed. Immutable infrastructure reduces configuration drift and simplifies reasoning about state, but it requires reliable image creation, externalized state, and adequate artifact storage. Health checks should distinguish liveness—whether a process is functioning—from readiness—whether it can safely receive traffic. A process that is alive but disconnected from a required database may be alive yet not ready. 7. Cloud Integration for Visual Basic ApplicationsCloud integration is not equivalent to moving a server to a virtual machine. It involves selecting suitable service boundaries and managed capabilities while preserving security, reliability, portability, and economic control. 7.1 Common integration targets- Compute: virtual machines, managed application hosting, containers, serverless functions, or desktop virtualization.
- Data: managed relational databases, object storage, caches, search indexes, and analytical stores.
- Messaging: queues and publish–subscribe topics for decoupled processing.
- Identity: directory services, OAuth 2.0/OpenID Connect, managed identities, and role-based access control.
- Observability: centralized logs, metrics, distributed traces, alerts, and dashboards.
- Delivery: hosted source control, build agents, artifact repositories, and deployment environments.
The appropriate choice depends on workload characteristics. A stateful legacy Windows Forms application may be hosted through a managed desktop or virtual machine strategy rather than converted immediately into a web service. A new Visual Basic ASP.NET application may be a candidate for managed web hosting or a container platform. 7.2 Cloud identity and authorizationAuthentication establishes who or what is calling; authorization determines what that identity may do. A secure application should use short-lived tokens, validate issuer, audience, signature, and expiry, and enforce authorization at the business boundary—not only in the user interface. Least privilege means granting only the permissions necessary for a task. Separate identities should be used for development, testing, and production. Human administrators and automated workloads should not share credentials. 7.3 Resilience in distributed systemsCloud applications encounter transient network failures, throttling, service restarts, and partial outages. Appropriate techniques include bounded retries with exponential backoff, timeouts, circuit breakers, idempotency keys, bulkheads, dead-letter queues, and graceful degradation. Retries must be selective. Retrying a read after a transient timeout may be reasonable; blindly retrying a non-idempotent payment request can create duplicate charges. An operation is idempotent when repeating it produces the same intended effect as performing it once, given the same logical request. 7.4 Asynchronous integrationQueues decouple producers from consumers and absorb temporary workload differences. A Visual Basic order service might publish an OrderPlaced event; an invoicing worker and notification worker can process it independently. Consumers must handle duplicate delivery, message ordering limitations, poison messages, and eventual consistency. A transactional outbox pattern can improve reliability: the application records the business change and an outgoing event in the same local database transaction; a publisher later sends the event and marks it delivered. This avoids the unsafe assumption that a database commit and a network message can be made one indivisible transaction. 7.5 Containers and platform compatibilityA container packages an application and its runtime dependencies, but it does not remove operating-system constraints. Windows-specific APIs, COM automation, graphical interfaces, and native dependencies may require Windows containers or a different hosting model. A container strategy should therefore begin with dependency analysis, not with a universal assumption that every application belongs in a Linux container. 8. Observability and Operational FeedbackMonitoring asks whether known conditions are healthy; observability asks whether engineers can explain unknown conditions. The three principal signals are: - Logs: timestamped records of events and contextual information.
- Metrics: numerical time-series measurements such as request rate or queue depth.
- Traces: causal records showing a request’s path across services.
Logs should be structured, correlated with a request or operation identifier, and scrubbed of personal data and secrets. Metrics should have controlled label cardinality; generating a unique label for every user or request can make a monitoring system expensive and unusable. Service-level indicators (SLIs) measure user-relevant behavior, such as successful request proportion or latency. A service-level objective (SLO) states a desired level over a period. An error budget is the tolerated amount of unreliability implied by the SLO. For example, if an SLO requires 99.9% successful availability during a 30-day period, the permitted unavailability is 0.1% of that period. The exact duration depends on the organization’s measurement window and definition of availability. Alerting should be actionable. An alert should identify a condition requiring human or automated response, not merely report every unusual value. Runbooks should explain diagnosis, mitigation, escalation, and recovery verification. 9. Governance, Ethics, and ComplianceEnterprise delivery operates within legal and organizational boundaries. Relevant controls may include data protection, retention, accessibility, software licensing, industry-specific regulation, auditability, and records management. Important governance practices include: - data classification before cloud storage;
- explicit retention and deletion rules;
- encryption in transit and at rest;
- separation of duties for code approval and production access;
- immutable or access-controlled audit records;
- supplier and cloud-provider risk assessment;
- disaster recovery objectives and periodic tests;
- documented incident response and breach notification procedures.
Ethically, teams should avoid collecting unnecessary personal data, exposing sensitive information in logs, or using opaque automation to make consequential decisions without review. Cloud convenience does not transfer accountability to the provider. Responsibility is shared: the provider secures the underlying service, while the customer remains responsible for configuration, identities, data, and application behavior according to the service model. 10. Detailed Illustrative Case: Cloud Delivery of a Visual Basic Order SystemBackgroundA fictional retailer operates a Visual Basic .NET order-processing application connected to a relational database. Releases occur every three months. Developers manually copy binaries to a production server, configuration differs between environments, and support staff discover failures through customer complaints. ProblemThe organization experiences long release lead times, inconsistent deployments, exposed connection strings, and duplicate order notifications when network calls are retried. Management wants faster delivery without weakening auditability or reliability. AnalysisThe principal risks are not merely programming defects. They include non-reproducible builds, absence of automated regression tests, shared production credentials, coupled database and application changes, weak operational feedback, and non-idempotent messaging. The team measures a baseline for deployment frequency, lead time, failed deployments, and restoration time, then reviews incident records to identify recurring causes. Approach and solutionThe team first places the solution and database migration scripts under Git. A protected main branch requires review and automated checks. The pipeline restores dependencies, builds on a clean agent, runs unit and integration tests, performs dependency scanning, and publishes a signed versioned artifact. The application is refactored so business services depend on interfaces for payment, notification, and exchange-rate operations. A test suite covers order totals, invalid states, retries, and authorization. A staging environment uses production-like configuration but separate identities and non-production data. Connection strings and API credentials move to a managed secret store. The application obtains access through a workload identity rather than a stored password. Structured logs include a correlation identifier but exclude payment credentials and unnecessary customer information. Order completion writes an outbox record in the same transaction as the order. A worker publishes notification messages. Each message includes an idempotency key, and the notification handler records processed keys so that duplicate delivery does not create duplicate notifications. Deployment uses a canary strategy. Five percent of traffic initially reaches the new version. Automated checks compare error rate, latency, queue depth, and successful order completion. If thresholds are exceeded, traffic returns to the previous version and the artifact is retained for investigation. Database changes follow expand-and-contract sequencing. OutcomeThe organization obtains repeatable builds, traceable releases, earlier defect detection, safer secret handling, and measurable operational feedback. It does not eliminate every incident; instead, incidents become easier to detect, diagnose, and recover from. The team also learns that automation must be accompanied by ownership, useful tests, and clear rollback criteria. Learning points- Delivery improvement begins with system risks and feedback, not tool selection.
- The same artifact should be promoted across environments when practical.
- Distributed retries require idempotency design.
- Security controls belong throughout the pipeline.
- Cloud services amplify both good architecture and poor architecture.
11. Challenges and Critical EvaluationLegacy constraintsOlder Visual Basic applications may depend on COM components, local files, registry settings, Windows services, or desktop assumptions. A staged modernization strategy may be safer than immediate replacement: first automate builds, tests, packaging, and monitoring; then isolate dependencies and gradually extract services. Tool-driven transformationBuying a pipeline product does not create DevOps. A pipeline that merely automates manual mistakes can increase the speed of failure. Teams should first define quality gates, ownership, evidence, and recovery procedures. Distributed-system complexityCloud architectures can introduce latency, eventual consistency, service quotas, vendor-specific interfaces, and difficult debugging. Managed services reduce undifferentiated infrastructure work but do not remove architectural responsibility. Cost and sustainabilityCloud cost is influenced by compute time, storage, network transfer, requests, licensing, and operational tooling. Cost controls include budgets, tagging, rightsizing, autoscaling limits, lifecycle policies, and review of idle resources. Sustainability also matters: efficient workloads reduce both expenditure and environmental impact. Contemporary developmentsCurrent enterprise practice increasingly combines policy-as-code, software bills of materials, automated provenance, platform engineering, workload identity, OpenTelemetry-compatible telemetry, progressive delivery, and AI-assisted coding. AI-generated code requires the same review, testing, license examination, security analysis, and accountability as human-written code. It can accelerate boilerplate production but may reproduce insecure patterns or misunderstand business constraints. Best-Practice Checklist- Keep the main branch releasable.
- Build on clean, controlled agents.
- Promote immutable, traceable artifacts.
- Test business behavior, integration boundaries, and failure modes.
- Externalize configuration and protect secrets.
- Use least privilege and separate environment identities.
- Prefer backward-compatible schema and API evolution.
- Instrument applications with structured logs, metrics, and traces.
- Define rollback, recovery, and incident ownership before release.
- Measure delivery and reliability outcomes without incentivizing unsafe shortcuts.
- Review cloud cost, data residency, accessibility, privacy, and licensing.
Chapter SummaryEnterprise delivery is a complete system for moving software from idea to reliable operation. DevOps combines shared responsibility, automation, short feedback cycles, and continual improvement; CI validates integrated changes, continuous delivery keeps releases ready, and continuous deployment automates production promotion when risk controls permit. Visual Basic .NET applications can participate in modern pipelines through reproducible builds, automated tests, versioned artifacts, and disciplined configuration management. Cloud integration involves more than hosting. It requires deliberate choices about managed compute, data, messaging, identity, observability, resilience, cost, and compliance. Deployment patterns such as rolling, blue–green, canary, and immutable release provide different balances of risk, capacity, and rollback speed. Distributed systems require timeout, retry, idempotency, and eventual-consistency reasoning. Effective governance protects data and accountability, while observability supplies the evidence needed to operate and improve the system. The central lesson is that tools are valuable only when embedded in sound architecture, measurable practices, security controls, and clear human ownership. Key TermsEnterprise delivery: Coordinated movement of software from idea through operation and retirement. DevOps: Practices integrating development and operations through collaboration, automation, and feedback. Continuous integration: Frequent integration of changes with automated build and verification. Continuous delivery: Keeping software in a production-ready state. Continuous deployment: Automatically deploying validated changes to production. Artifact: A versioned output such as a package, executable, library, or container image. Pipeline: Automated workflow for validation, packaging, and deployment. Infrastructure as code: Declarative or programmatic management of infrastructure configuration. Idempotency: Property whereby repeating a logical operation does not create additional unintended effects. Canary deployment: Gradual exposure of a new version to a limited traffic segment. Blue–green deployment: Switching traffic between two production-like environments. Observability: Ability to understand internal behavior from external system signals. Service-level indicator: Quantitative measure of a user-relevant service behavior. Service-level objective: Target value or range for a service-level indicator. Error budget: Permitted unreliability implied by an SLO. Managed identity: Cloud identity allowing a workload to access resources without embedded credentials. Expand-and-contract migration: Backward-compatible method for evolving database schemas. Software bill of materials: Inventory of components and dependencies in a software artifact. Review QuestionsShort Answer Questions- Distinguish continuous delivery from continuous deployment.
- Why should secrets not be stored in a Visual Basic source repository?
- What is the difference between a liveness check and a readiness check?
- Define idempotency and explain why it matters for retries.
- Name the three principal observability signals.
Long Answer Questions- Explain how a CI/CD pipeline for a Visual Basic .NET application should be structured, including quality and security gates.
- Compare rolling, blue–green, canary, and immutable deployment strategies.
- Discuss how identity, authorization, secret management, and auditability should be designed in a cloud-integrated enterprise application.
- Explain the expand-and-contract approach to database evolution and its relationship to rollback.
- Critically evaluate the claim that adopting cloud services automatically creates a DevOps organization.
Analytical / Application Questions- A Visual Basic order service sends duplicate customer notifications after a timeout. Analyze the likely cause and design an idempotent messaging solution.
- Design a delivery workflow for a Windows-specific Visual Basic application that cannot run in a Linux container. Identify build-agent, packaging, deployment, and monitoring decisions.
- A team has increased deployment frequency but also experiences more failed releases. Select appropriate delivery metrics and propose a technically and organizationally balanced improvement plan.
Multiple Choice Questions with AnswersQuestion 1Which statement best describes continuous delivery? A. Every code change is automatically deployed to production without approval B. Software is maintained in a releasable state, with production release possibly requiring approval C. Only infrastructure changes are tested automatically D. Developers manually copy binaries to production after coding Correct Answer: B. Software is maintained in a releasable state, with production release possibly requiring approval Question 2Which practice most directly prevents environment-specific binaries from diverging? A. Rebuilding separately on each production server B. Embedding all configuration values in source code C. Promoting the same validated artifact while externalizing configuration D. Disabling automated tests in staging Correct Answer: C. Promoting the same validated artifact while externalizing configuration Question 3What is the principal purpose of a canary deployment? A. To expose a new version gradually to a limited portion of traffic B. To eliminate the need for monitoring C. To ensure that two database schemas are permanently identical D. To deploy only to development environments Correct Answer: A. To expose a new version gradually to a limited portion of traffic Question 4Which item should normally be stored in a managed secret store rather than in a Visual Basic repository? A. A unit-test name B. A public API documentation URL C. A database password D. A class name Correct Answer: C. A database password Question 5Which technique helps prevent duplicate effects when a distributed operation is retried? A. Increasing log verbosity without correlation identifiers B. Using an idempotency key and recording processed requests C. Removing all timeout settings D. Sending every message to multiple unrelated databases Correct Answer: B. Using an idempotency key and recording processed requests Question 6What does a readiness check primarily indicate? A. Whether a process can safely receive traffic B. Whether source code has been reviewed C. Whether a user has administrator privileges D. Whether a database backup has been archived Correct Answer: A. Whether a process can safely receive traffic Question 7Which deployment pattern uses two production-like environments and switches traffic between them? A. Rolling B. Blue–green C. Batch-only D. Local-only Correct Answer: B. Blue–green Question 8What is the main purpose of the expand-and-contract database migration approach? A. To make schema changes backward-compatible across deployment stages B. To remove the need for database backups C. To force all clients to upgrade simultaneously D. To store secrets in database tables Correct Answer: A. To make schema changes backward-compatible across deployment stages Question 9Which of the following is an observability signal? A. Source-code indentation B. Distributed trace C. Compiler brand D. Keyboard layout Correct Answer: B. Distributed trace Question 10For an SLO requiring 99.9% successful availability over a defined period, what does the remaining 0.1% represent? A. The permitted error budget for that period B. The required deployment frequency C. The number of unit tests required D. The percentage of code that must be rewritten Correct Answer: A. The permitted error budget for that period
|