Knowledge Transfer

Ethickfox kb page with all notes


Project maintained by ethickfox Hosted on GitHub Pages — Theme by mattgraham

56.png

Continuous integration is a DevOps software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run. Continuous integration most often refers to the build or integration stage of the software release process and entails both an automation component (e.g. a CI or build service) and a cultural component (e.g. learning to integrate frequently).

Continuous delivery is a software development practice where code changes are automatically prepared for a release to production.

With continuous delivery, every code change is built, tested, and then pushed to a non-production testing or staging environment. There can be multiple, parallel test stages before a production deployment. The difference between continuous delivery and continuous deployment is the presence of a manual approval to update to production. With continuous deployment, a release to production happens automatically without explicit approval.

Untitled7.png

CodeCommit is a secure, highly scalable, managed source control service that hosts private Git repositories. It provides:

CodeBuild is a fully managed build service in the cloud. It's features include:

CodeDeploy is a deployment service that automates application deployments to Amazon EC2 instances, on-premises instances, serverless Lambda functions, or Amazon ECS services. You can deploy:

CodePipeline is a continuous delivery service you can use to model, visualize, and automate the steps required to release your software. It uses other AWS Services as building blocks to automate a workflow.

App Runner is an AWS service released on the 18th of May 2021 with description as the simplest way to build and run your containerized web application in AWS. It automatically builds, deploys applications, and distributes traffic with encryption. App Runner can scale up or down automatically to meet your traffic needs.

CI/CD field has a wide variety of tools to choose from. The most well-known solutions include:

38.png

  1. As input, you must provide CodeBuild with a build project. A build project includes information about how to run a build, including where to get the source code, which build environment to use, which build commands to run, and where to store the build output. A build environment represents a combination of operating system, programming language runtime, and tools that CodeBuild uses to run a build.
  2. CodeBuild uses the build project to create the build environment.
  3. CodeBuild downloads the source code into the build environment and then uses the build specification (buildspec), as defined in the build project or included directly in the source code. A buildspec is a collection of build commands and related settings, in YAML format, that CodeBuild uses to run a build.
  4. If there is any build output, the build environment uploads its output to an S3 bucket. The build environment can also perform tasks that you specify in the buildspec (for example, sending build notifications to an Amazon SNS topic).
  5. While the build is running, the build environment sends information to CodeBuild and Amazon CloudWatch Logs.
  6. While the build is running, you can use the AWS CodeBuild console, AWS CLI, or AWS SDKs to get summarized build information from CodeBuild and detailed build information from Amazon CloudWatch Logs. If you use AWS CodePipeline to run builds, you can get limited build information from CodePipeline.

CodeDeploy primary components include:

Untitled 3 11.png

Your goals

Self-check: