DevOps: CI/CD using AWS CodePipeline & Elastic Beanstalk
- 4.5 hours on-demand video
- 4 articles
- 12 downloadable resources
- Full lifetime access
- Access on mobile and TV
- Certificate of Completion
Get your team access to 4,000+ top Udemy courses anytime, anywhere.Try Udemy for Business
- Conceptualize and design fully automated continuous integration & deployment pipelines
- Use AWS CodePipeline to setup CI/CD pipelines
- Use AWS Elastic Beanstalk to deploy applications
- Map any real-world application into a CI/CD pipeline
- Integrate custom builds / actions in AWS CodePipeline
- Adding AWS Lambda functions in AWS CodePipeline
- Monitor their AWS CodePipeline
In this lecture I will give you a short background on DevOps, Continuous integration and deployment. I will also introduce myself and explain why and how CI/CD/DevOps can help you in your career.
In this lecture, I will give a high level overview of what we are going to cover in this section. We will cover some basic concepts around Continuous integration, continuous delivery and continuous deployment.
In this lecture, I will give a high level overview of what we are going to cover in this section. We will learn to conceptualize and design a CI/CD pipeline for web applications.
Let's take a look at the anatomy of a basic web application (e.g. architecture and components involved). We need to understand the architecture of our web applications in order to design an effective CI/CD process. I have formulated a 4-step process to help you conceptualize and design a CI/CD pipeline -- we will cover 3 of those steps in this lecture.
In this section we will dive deeper into our example web application (built in PHP). Our web application is called 'Fuzzy Telegram' and displays a random quote of the day.
Cloud9 IDE and Amazon Web Services: We use Cloud9 (C9) IDE in our course to quickly get to coding and workshops without going through the hassles of installing various applications such as PHP, Apache, etc.
Cloud9 (C9) has recently been acquired by Amazon. They have changed the workflow and user interfaces a bit. In this text handout I will illustrate the major differences between the old Cloud9 IDE setup and the new AWS based one.
Fuzzy Telegram web application talks to the Quotes API (https://theysaidso.com/api/) and fetches the random quote of the day. It stores it in a database so that any likes and # of views can be recorded against the quote.
- If you prefer another language: please feel free to replicate a similar web application in your preferred language of choice.
- If you already have a web application: please feel free to skip to the next section however I will highly recommend you to atleast go through the 'Environment Variables' and 'Writing Database Migrations' lectures in this section as we will refer back to them when we are configuring our AWS CodePipeline and AWS Elastic Beanstalk environments
Most modern web applications use environment variables as a way to store configuration options (e.g. database credentials). We will use environment variables in our web application.
Another reason why we are keen to use environment variables is because Elastic Beanstalk supports this method so it is quite handy to rely on it for configuration options.
We will learn more about how / why to write database migration scripts. This enables us to automate database deployments in our CD pipelines.
We will use PHINX (PHP Database Migration tool) in our example but the concept is broadly applicable to any Database change migration script or tool that you choose going forward.
In this lecture, I will give a high level overview of what we are going to cover in this section. We will will now dive deeper into AWS Elastic Beanstalk and deploy our web application on EB. We will also cover advance topics such as ebextensions and application versions.
Introducing AWS Elastic Beanstalk Extensions (.ebextensions). A great way of customizing your EC2 / AWS environment. We will focus on how you can run custom scripts using ebextensions but their features are more broad (we won't cover all the features).
In this lecture, I will give a high level overview of what we are going to cover in this section. We will dive deeper into AWS CodePipeline. We will setup our first CD pipeline using AWS CodePipeline.
In order for our CI/CD pipeline to be effective, we will most likely wish to run some custom script or custom logic. We will talk about the four different ways you can execute custom builds / custom scripts as part of your AWS CodePipeline.
2nd method to run custom scripts in Pipeline is by invoking AWS Lambda functions.
We will talk about lambda functions and start our 3 part workshop to create a new lambda function that will upload our assets (CSS, JS and images) to S3. We will then use the S3 bucket to serve static content for our web application.
Part 1 of 3: In this lecture, we will configure our S3 bucket to serve static content publicly.
The last two methods of running custom scripts in AWS CodePipeline is by integrating 3rd party services. We can do it either as Build or Test actions. In this lecture, I will just cover how to integrate a 3rd party 'Test' action but the same principle applies to the 'Build' action as well.
I will integrate GhostInspector (UI Testing Tool) in our AWS CodePipeline.
- Basic knowledge of software development processes (code repository, testing, etc.)
- Amazon Web Services (AWS) Account (free or paid)
- Basic understanding of AWS services such as EC2 and IAM is recommended but not required
- Rudimentary / Working knowledge of source control systems such as Git
Automated Continuous Integration (CI) and Continuous Deployment (CD) is a critical part of DevOps and is a skill that is in high demand.
In this course, we will examine the subject in complete depth by walking through an example project and building a complex CI/CD pipeline on AWS. You will gain the following five extremely valuable and highly sought after skills:
- Learn to conceptualize and design CI/CD pipelines for your own web applications
- Deploy and scale web applications on Amazon's Cloud infrastructure using AWS Elastic Beanstalk
- Build pipelines on Amazon's Cloud infrastructure using AWS CodePipeline
- Learn advance topics such as Elastic Beanstalk Extensions and AWS Lambda to run custom actions in your CodePipeline
- Monitor your automated CI/CD pipelines
The tech landscape today is extremely competitive and is moving at an incredibly fast pace. With the emergence of cloud-based infrastructure, many startups are disrupting long-established businesses, industries and sectors almost on a daily basis as their entry barriers and costs keep on going down. DevOps and continuous integration / continuous deployment processes allows team to iterate often and innovate faster.
After taking this course, you will have a comprehensive understanding of continuous integration and continuous deployment processes. You will be able to confidently design a CI/CD pipeline for your own web applications. You will gain an in-depth understanding of AWS CodePipeline and AWS Elastic Beanstalk services.
With these skills, you will be able to build fully automate deployments of your web applications on Amazon’s Cloud infrastructure.
The course is very hands-on and together we will walk through an example project. We will pick a web application and deploy it on Amazon’s Cloud using AWS Elastic Beanstalk. I will then demonstrate and create a fully automated CI/CD pipeline for our web application using AWS CodePipeline. I will cover both of these AWS services in complete depth while also giving you easy to follow step-by-step instructions.
We will also cover some advance topics such as ebextensions and adding AWS Lambda functions in your AWS CodePipeline.
★ 4000+ students enrolled
★ Rated highly by students
★ 70% course is practical based
- Software Engineers, Web Designers and Developers
- Infrastructure, DevOps & QA teams
- Tech founders, CTOs & SME owners
- Someone looking to automate their web application delivery process using AWS