Ravindra BagaleCourses & study guides English Track your progress

AWS CodePipeline आणि CodeBuild: AWS वर CI/CD सोप्या भाषेत

main merge = SSH hope नको. CI/CD auto build/test/deploy. CodePipeline = stages; CodeBuild = buildspec containers — GitHub Actions च्या शेजारी AWS-native.

या chapter मध्ये तुम्ही काय शिकाल

  • CI/CD का
  • Pipeline व CodeBuild
  • Stages/artifacts/buildspec
  • AWS vs GitHub Actions
  • Lab, errors, FAQ, interview

1. आधी रोजचं उदाहरण

नोएडा: main push → Pipeline → CodeBuild pytest/docker → ECR → ECS; prod आधी approval. Tests fail = stop.

2. CodePipeline आणि CodeBuild का?

हे का लागतं?

Manual deploy = drift/tests skip. Pipeline: source→build→test→deploy + audit/IAM.

  • Clean env builds
  • Prod approvals
  • Artifacts
  • IAM deploy control

3. हे काय आहेत?

हे काय आहे?

CodeBuild: managed + buildspec phases. CodePipeline: source/build/deploy connections.

Pieceकाम
PipelineStage workflow
SourcePull code
CodeBuildbuildspec run
ArtifactsS3 between stages
ApprovalHuman gate
buildspec.ymlBuild steps
Git → Source → Build → Deploy/Approvalmain commit
Running env

4. Minimal safe pipeline

कसं करायचं (step by step)

  1. Protected main.
  2. buildspec tests fail-fast.
  3. Privileged only if needed.
  4. 3 stages.
  5. Encrypted artifacts.
  6. Prod approval.
  7. Least-privilege roles.
  8. Dependency cache.
  9. Failure notify.
  10. sha tags≠latest.
# buildspec.yml sketch
version: 0.2
phases:
  install:
    commands: ["pip install -r requirements.txt"]
  build:
    commands: ["pytest -q", "docker build -t $REPO:$CODEBUILD_RESOLVED_SOURCE_VERSION ."]
artifacts:
  files: ["**/*"]

5. CodePipeline vs GitHub Actions

Choiceकधी
AWS nativeAWS-centric
GHAGitHub-centric
HybridHybrid
CodeDeployRolling/blue-green

6. Multi-industry notes

Banks: approvals+tickets. Startups: GHA→later CodePipeline. Factories: extra test gates.

7. Industries आणि roles

  • DevOps ownership
  • Fintech gates
  • SaaS promote
  • EdTech releases
  • Templates

8. Lab: CodeBuild + buildspec

Org block नसेल तर ap-south-1 (Mumbai). आधी budget alert.

कसं करायचं (step by step)

  1. Artifacts bucket.
  2. CodeBuild project.
  3. Echo+trivial test.
  4. Start + logs.
  5. Optional Pipeline.

Cleanup (billing थांबवा)

  1. Delete pipeline/project/bucket.
  2. IAM cleanup.

9. सामान्य errors आणि fixes

प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.

Error / लक्षणFix
latestsha tags.
Admin roleLeast privilege.
Secrets plaintextSM/SSM.
Skip testsFail on fail.
No approvalAdd gate.
Privileged alwaysOnly if needed.
Overwrite artifactsVersion.
Console driftPipeline as code.
No notifyNotify.
Unclean mental modelPin versions.

10. Troubleshooting checklist

  1. Source connection.
  2. CW logs.
  3. ECR auth/IAM.
  4. Artifact size.
  5. Approval pending.
  6. Retry IAM.

11. FAQ

प्र. CodeBuild मोफत?

Per minute pricing.

प्र. Jenkins?

Often replaceable.

प्र. Windows?

Some images.

प्र. Multi-account?

Assume-role.

प्र. Local?

Local agent patterns.

प्र. Blue/green?

CodeDeploy/ECS.

12. Interview Q&A

प्र. CodePipeline?

Stage orchestrator.

प्र. CodeBuild?

Managed buildspec runs.

प्र. Artifact?

Between stages.

प्र. Approvals?

Prod human gate.

प्र. Phases?

install/build/...

प्र. GHA vs?

Ecosystem vs AWS-native.

13. Tips — English, मराठी आणि हिंदी

Ravindra Bagale's Tip (EN)

A green pipeline that never runs tests is theatre. Make pytest/npm test fail the build before any deploy stage.

Ravindra Bagale's Tip (MR)

Tests नसलेली green pipeline = theatre. Deploy आधी tests fail-the-build.

Tip (HI)

बिना टेस्ट की हरी pipeline सिर्फ नाटक है — deploy से पहले टेस्ट फेल करो।

घरी करून बघा

  1. 8-line buildspec.
  2. ECR push 3 IAM actions.
  3. 4-stage sketch.

थोडक्यात सांगायचं तर

  1. Pipeline vs Build.
  2. buildspec.
  3. Approvals+IAM.
  4. Immutable tags.

उजळणी, मुलाखत आणि तुलना cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

उजळणी card: CodePipeline आणि CodeBuild. Manual deploy = drift. Pipeline stages; CodeBuild buildspec. Repo → build → deploy → approval. main → staging → approval → prod.
उजळणी card: CodePipeline आणि CodeBuild · PNG download करा · Card page उघडा
उजळणी card: buildspec आणि gates. No tests/approval = prod risk. buildspec phases; approval gates. Tests fail→stop; prod approval; S3 artifacts. Red tests block; prod waits.
उजळणी card: buildspec आणि gates · PNG download करा · Card page उघडा
तुलना: CodePipeline vs CodeBuild. CodePipeline: Stages/approvals/flow. CodeBuild: buildspec compute.
तुलना: CodePipeline vs CodeBuild · PNG download करा · Card page उघडा
तुलना: Automated test action vs Manual approval action. Automated test action: Red tests → auto fail. Manual approval action: Human click before next.
तुलना: Automated test action vs Manual approval action · PNG download करा · Card page उघडा
मुलाखत card: CodePipeline vs CodeBuild?. Orchestrate vs build compute. Pipeline calls CodeBuild. S→B→D.
मुलाखत card: CodePipeline vs CodeBuild? · PNG download करा · Card page उघडा
मुलाखत card: buildspec.yml काय?. Phases/commands/artifacts. In-repo. test→build→artifact.
मुलाखत card: buildspec.yml काय? · PNG download करा · Card page उघडा
मुलाखत card: Manual approval का?. Human gate before prod. Tests before approval. Prod waits.
मुलाखत card: Manual approval का? · PNG download करा · Card page उघडा
मुलाखत card: Pipeline कशावर fail?. Tests/scans/build errors stop Deploy. No continue-on-error prod. test≠0 → skip Deploy.
मुलाखत card: Pipeline कशावर fail? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.

सराव Tasks

या scenario बद्दल

Shivneri Schools हा जुन्नर मधला शिक्षण व्यवसाय आहे. Kavita Shinde त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं Pipelines

का: CI/CD.

काय करायचं: Pipelines.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Build projects

का: Builds.

काय करायचं: Projects.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Automate

का: CI/CD.

काय करायचं: Automate तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं buildspec

का: Build.

काय करायचं: buildspec तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम Pipeline get

का: Stages.

काय करायचं: shivnerischool-app get.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Pipeline state

का: Failed stage.

काय करायचं: shivnerischool-app state.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Batch get

का: Details.

काय करायचं: shivnerischool-build batch.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Start

का: Trigger.

काय करायचं: shivnerischool-build start.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम StartBuild

का: Builder.

काय करायचं: StartBuild shivnerischool-build.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम Stages

का: SBD.

काय करायचं: stages Source,Build,Deploy.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.

मध्यम Approval

का: Prod.

काय करायचं: Approval तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम Timeout

का: Hang.

काय करायचं: Minutes?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड Executions

का: History.

काय करायचं: shivnerischool-app executions.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Builds

का: Recent.

काय करायचं: shivnerischool-build builds.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Start pipeline

का: Release.

काय करायचं: StartPipelineExecution shivnerischool-app.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

अवघड buildspec

का: Version.

काय करायचं: version 0.2.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.