Study Guide890 words

Comprehensive Study Guide: SDLC Concepts, Phases, and Models

Software development lifecycle (SDLC) concepts, phases, and models

Comprehensive Study Guide: SDLC Concepts, Phases, and Models

This guide covers the fundamental concepts of the Software Development Lifecycle (SDLC), its various phases, and the models used to implement it within the context of AWS DevOps automation.

Learning Objectives

By the end of this guide, you should be able to:

  • Define the Software Development Lifecycle (SDLC) and its importance in software engineering.
  • Identify and explain the six core phases of the SDLC.
  • Compare traditional (Waterfall) vs. modern (Agile/DevOps) development models.
  • Differentiate between various testing types (Unit, Integration, Acceptance).
  • Evaluate deployment strategies like Blue/Green and Canary within an SDLC framework.

Key Terms & Glossary

  • SDLC (Software Development Lifecycle): A structured process used by the software industry to design, develop, and test high-quality software.
  • CI/CD (Continuous Integration/Continuous Delivery): The automation of building, testing, and deploying code changes to various environments.
  • Artifact: A deployable file or package (e.g., a Docker image or a .zip file) produced during the build phase.
  • Immutable Infrastructure: An infrastructure paradigm where servers are never modified after they are deployed; updates are made by replacing the entire server with a new one.
  • Shift Left: The practice of performing testing, security, and performance evaluation earlier in the SDLC process.

The "Big Idea"

[!IMPORTANT] The SDLC is the fundamental blueprint for building software. In a DevOps context, the goal is to transform the traditional, slow-moving SDLC phases into a continuous, automated loop. By automating these phases using AWS services (like CodePipeline), organizations reduce the "lead time to change," allowing for faster delivery and higher reliability.

Formula / Concept Box

PhaseCore AWS Service CorrelationPrimary Output
SourceAWS CodeCommit / GitHubSource Code
BuildAWS CodeBuildCompiled Code / Artifacts
TestCodeBuild / Third-party toolsTest Reports / Security Scans
DeployAWS CodeDeployRunning Application
MonitorAmazon CloudWatch / AWS X-RayMetrics and Logs

Hierarchical Outline

  • I. SDLC Core Phases
    • Planning/Analysis: Defining requirements and scope.
    • Design: Creating architecture and system specifications.
    • Implementation (Coding): Developers write code and commit to repositories.
    • Testing: Validating the code against requirements (Unit \rightarrow Integration \rightarrow UAT).
    • Deployment: Releasing the software to production environments.
    • Maintenance: Monitoring performance and fixing bugs.
  • II. SDLC Models
    • Waterfall: Linear, sequential phases; difficult to change once a phase is complete.
    • Agile: Iterative development; focuses on small, frequent releases and customer feedback.
    • DevOps: Merges development and operations; emphasizes automation and the "CAMS" (Culture, Automation, Measurement, Sharing) model.

Visual Anchors

The SDLC Cycle

Loading Diagram...
Figure 1 — Mermaid diagram

CI/CD Pipeline Workflow

Compiling TikZ diagram…
Running TeX engine…
This may take a few seconds
Figure 2 — TikZ diagram

Definition-Example Pairs

  • Unit Testing \rightarrow Testing the smallest piece of code (like a single function) in isolation.
    • Example: Checking if an add(a, b) function correctly returns 5 when passed 2 and 3.
  • Integration Testing \rightarrow Testing how multiple modules or services work together.
    • Example: Ensuring a Lambda function can successfully write data to a DynamoDB table.
  • Acceptance Testing (UAT) \rightarrow Final testing phase to ensure the system meets business requirements.
    • Example: A product owner logs into the staging site to verify the new login button works as expected.

Worked Examples

Problem: Selecting a Deployment Strategy

Scenario: A company needs to release a high-risk update to their web application. They cannot afford any downtime, and they want the ability to roll back instantly if the new version fails a health check.

Step-by-Step Breakdown:

  1. Requirement Analysis: Zero downtime + Instant Rollback.
  2. Evaluate Options:
    • All-at-once: Causes downtime. (Discarded)
    • In-place: Can cause downtime and is slow to roll back. (Discarded)
    • Blue/Green: Shifts traffic from an old environment (Blue) to a new one (Green). Meets all requirements.
  3. Implementation: Use AWS CodeDeploy with a Blue/Green configuration.
  4. Verification: Set up a CloudWatch Alarm on 5xx errors. If the alarm triggers during the Green deployment, CodeDeploy automatically rolls traffic back to Blue.

Checkpoint Questions

  1. What is the primary difference between a Linear (Waterfall) and Iterative (Agile) SDLC model?
  2. At which stage of the CI/CD pipeline should Security Scans (SAST/DAST) ideally be integrated?
  3. Why is Immutable Infrastructure preferred in modern SDLC deployment phases?
  4. Identify two AWS services used to manage Build Secrets during the implementation phase.
Click to see answers
  1. Waterfall is sequential and rigid; Agile is iterative, allowing for frequent changes and feedback.
  2. During the Build or Test phases (Shift Left approach).
  3. It ensures consistency across environments and eliminates "configuration drift."
  4. AWS Secrets Manager and AWS Systems Manager Parameter Store.

Muddy Points & Cross-Refs

  • Continuous Delivery vs. Continuous Deployment: In Delivery, the deployment to production requires manual approval. In Deployment, every change that passes the pipeline is automatically pushed to production.
  • CodeBuild vs. CodeDeploy: Remember that CodeBuild creates the artifact (the pizza), while CodeDeploy delivers it to the customer's house.
  • Deep Dive: For more on multi-account strategies mentioned in the exam guide, see the "AWS Control Tower" and "AWS Organizations" documentation.

Comparison Tables

Deployment Strategies Comparison

FeatureBlue/GreenCanaryLinear
Traffic ShiftAll at once (to new fleet)Incremental (e.g., 10% then 100%)Gradual (e.g., 10% every 10 min)
Risk MitigationHigh (Instant rollback)Highest (Small blast radius)Moderate
CostHigh (2x resources during shift)Low to ModerateModerate
Best ForMajor version updatesTesting new features on live usersStable, predictable updates

Ready to study AWS Certified DevOps Engineer - Professional (DOP-C02)?

Practice tests, flashcards, and all study notes — free, no sign-up needed.

Start Studying — Free