# How to create your first Continuous Delivery Pipeline

During [this](https://aws.amazon.com/getting-started/hands-on/create-continuous-delivery-pipeline/?ref=gsrchandson) AWS hands-on tutorial, I had the opportunity to dive into the details of setting up a continuous delivery pipeline using AWS services. Here are my key takeaways and learnings from this experience:

1. **Understanding Continuous Delivery:**
    
    * Gained a clear understanding of the continuous delivery concept, which ensures that code changes are automatically built, tested, and prepared for release to production.
        
2. **AWS CodePipeline:**
    
    * Learned how to set up and configure AWS CodePipeline, which automates the build, test, and deploy phases of the release process every time there is a code change.
        
3. **Integration with Other AWS Services:**
    
    * Discovered how AWS CodePipeline integrates seamlessly with other AWS services like CodeCommit for source control, CodeBuild for build automation, and CodeDeploy for deployment automation.
        
4. **Source Control with AWS CodeCommit:**
    
    * Set up a CodeCommit repository to manage the source code, which provided a secure and scalable environment for version control.
        
5. **Build Automation with AWS CodeBuild:**
    
    * Configured CodeBuild to compile the code, run tests, and produce build artifacts that are ready for deployment, ensuring that the code is always in a deployable state.
        
6. **Deployment Automation with AWS CodeDeploy:**
    
    * Learned to use CodeDeploy to automate the deployment of the build artifacts to various environments, reducing manual intervention and the risk of deployment errors.
        
7. **Pipeline Customization:**
    
    * Explored how to customize the pipeline with different stages and actions, tailoring it to specific project requirements.
        
8. **Monitoring and Notifications:**
    
    * Implemented monitoring and notifications to keep track of pipeline execution and receive alerts on failures or issues, enhancing the ability to respond quickly to problems.
        

**Conclusion:**

When you push changes to this [GitHub repo](https://github.com/Vivek-Rathee/aws-elastic-beanstalk-express-js-sample), I'll have to manually approve them, as shown in the screenshot below, before your changes appear in the Elastic Beanstalk hosted app [here](http://devopsgettingstarted-env-1.eba-zsm5vyyg.us-east-1.elasticbeanstalk.com/).

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1720131140329/309fb064-1c6d-4ba7-af21-7f9346ee3373.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1720131149591/033b6cf4-8a2e-4032-a63a-97c3deec951f.png align="center")

Thank you for reading and have a great day.
