[DevOps] SDLC & CI/CD

SDLC (Software Development Lifecycle) is a process of building and deliverling your application. CI/CD (Continuous Integration/Continuous Delivery, Deployment) is one of the Software development practices.


Lifecycle

  1. Define requirements, goals, and timelines
  2. Design application & Design pipeline – deployment strategy
  3. Create source code & Add tests
  4. Deploy the tested version
  5. Monitor how the application is running

SDCL Methodology

  • Linear (Sequential) model
  • Verification model
  • Prototype model
  • Agile model
  • Big bang model

CI/CD Features

CI/CD (Continuous Integration/Continuous Delivery, Deployment) is a process of speeding up the software delivery by automation into the SDLC – building, testing, deploying, and monitoring -.

  • Continuous Integration (CI)
    • Small and incremental code changes followed by an automated build and testing
    • Code Review
    • Easy to catch bugs and fix them
  • Continuous Delivery, Deployment (CD)
    • Continuous Delivery
      • Automates the builds, tests, and preparation of the release (staging)
    • Continuous Deployment
      • Delivery (builds, tests, staging) + Deployment
    • Ensures that the software can be released whenever needed
    • Ensures deployments happen often and quickly

Workflow

  • Shared Code Repository
  • Automated Build/Deployment
  • Automated Test

Benefits of Automated Pipelines

  • Rapid Delivery
    • Increases the frequency and pace of the release
  • Reliability & Security
    • Ensures the quality of an application through updates and quick fixes
  • Scale
    • Manages complex system changes efficiently
  • Improved Team Collaboration

AWS Service Stacks for CI/CD

StackServicesFeatures
Source,
Code
CodeCommit,
GitHub,
Bitbucket,
S3,
ECR
Source/Version control service; collaborate on code
Build & TestCodeBuild,
Jenkins
Compiles code, runs tests, and generate deployment package
Deploy & ProvisionCodeDeploy,
CloudFormation,
SAM,
Elastic Beanstalk,
ECS,
OpsWorks
Automated Deployment to EC2, Lambda, and on-premises
OrchestrationCodePipeline Workflow automation; manages the CI/CD pipeline
CodeStarManages software development activities in a single project
NotificationEventBridge,
SNS
PackageCodeArtifactStores and shares software packages
Code ReviewCodeGuruReview code automatically using Machine Learning
AutomationElastic BeanstalkEasily configure and deploy applications
ParametersSecretsManager,
Parameter Store,
KMS
Manage pipeline parameters
ApprovalCodePipeline,
SNS
Add a manual approval stage into the pipeline
Monitoring, Audit, & ObservabilityCloudWatch,
X-Ray,
CloudTrail,
AWS Config

Leave a Comment