AWS Developer Tools Deep Dive – Early Access
AWS Training Architect II in Content
Welcome to the AWS Developer Tools Deep Dive. The AWS Developer Tools are designed to help you build software like Amazon. They facilitate practices such as continuous delivery and infrastructure as code for serverless, containers, and Amazon EC2. The Developer Tools suite consists of seven services: CodeCommit, CodeBuild, CodeDeploy, CodePipeline, X-Ray, Cloud9, and CodeStar. This course will begin with an introductory section on DevOps basics, Git/Github, and CI/CD (Continuous Integration/Continuous Deployment) concepts. The course will then take a deep dive into each of the seven Developer Tools services and use real world examples to provide hands-on walkthroughs throughout the course. To further ingrain the concepts of the course, several hands-on labs will be provided.
Github link for course files: https://github.com/natonic/Developer-Tools-Deep-Dive
Interactive Diagram: https://interactive.linuxacademy.com/diagrams/397_AWS+Developer+Tools+Deep+Dive
Welcome to Early Access
We are still working on a few hands-on labs that will be added to this course soon. In the meantime you have access to all of the lessons.
About the Course
This lesson describes the overall goal of the AWS Developer Tools Deep Dive course as well as detailing its sections.
This lesson walks through creating an Administrative server in EC2. This server will be used throughout the course to issue CLI commands to the various services in the Developer Tools suite. Details about additional configuration in upcoming lessons will also be explained.
This lesson describes the problems in integrating software development with IT operations, and how DevOps came about to help solve these problems. The lesson also sets the stage for the AWS Developer Tools suite to solve these problems.
This lesson introduces CI/CD concepts (continuous integration and continuous delivery). This will set a solid foundation to move into subsequent sections on AWS Developer Tools services.
This lesson provides an overview of Git and Github, as well as how the two interact. The lesson provides a solid foundation in Git concepts heading into the next section on CodeCommit, which will interact extensively with Git.
This lesson walks through the installation of Git on an Amazon Linux 2 AMI.
CodeCommit Setup and Config
This lesson details the options available for communicating with CodeCommit: HTTPS and SSH. The lesson will detail the pros and cons of each, which are largely dictated by the server type used (Linux vs. Windows vs. Mac).
This lesson walks through the setup and configuration of IAM users for use with AWS CodeCommit.
Configuring Credential Helper HTTP
This lesson walks through configuring the Credential Helper to enable communication with AWS CodeCommit.
Introduction to CodeCommit
This lesson lays the foundation for the rest of the section, providing an introduction to the CodeCommit service in the AWS Developer Tools suite.
Creating, Viewing, Editing, and Deleting a Repository
This lesson walks through the most common operations performed on a repository: create, list, view, and delete. This is first done from the AWS Management Console and then from the CLI.
Cloning Repositories, Commits, Pushes, and Pulls
This lesson covers working with repositories in CodeCommit. In it, we discuss the most common actions performed on repositories: cloning, commits, pushes, and pulls.
Merging Basic Conflicts
This lesson covers conflicts when committing and pushing code changes to the main repository. Additionally, we discuss how to resolve these conflicts.
This lesson details how branches can be used in CodeCommit to provide a safe development environment to develop new features or perform bug fixes. The lesson includes a walkthrough on creating, merging, and deleting branches.
This lesson goes over the use of tags with CodeCommit commits.
Migrating a Repository into CodeCommit
This lesson covers migrating an outside repository into CodeCommit.
CodeCommit with Other Services
Introduction to Triggers
This lesson provides an introduction to triggers for CodeCommit. The triggers can be used to invoke SNS topics or Lambda functions.
Triggers for SNS
In this lesson, we go over how CodeCommit can be linked with SNS to notify team members of CodeCommit repository changes. After setting up an SNS subscription, CodeCommit can be configured to invoke the SNS subcription.
Triggers for Lambda Functions
This lesson walks through the creation of a trigger for Lambda functions. Much of the work done in this lesson is from the Lambda console. But in the end, actions in CodeCommit will trigger a Lambda function.
This lesson discusses encryption in CodeCommit. CodeCommit has encryption both in transit and at rest, and this lesson details the ways this encryption is accomplished.
What Is CodeBuild?
This lesson introduces AWS CodeBuild, describing what CodeBuild is, its use cases, and how it interacts with other CI/CD tools.
Getting Started with CodeBuild
This lesson sets the groundwork for the rest of this section on CodeBuild. Here, we start working with the CodeBuild interface and walk through a build from the CLI.
Working with Build Projects
This lesson describes the purpose of build projects in CodeBuild. We then walk through the creation of build projects.
Working with Builds
This lesson walks through working with CodeDeploy builds. After the creation of a build project, there are several options that can be done with builds, including running builds.
Introduction to CodeDeploy
This lesson provides an introduction to AWS CodeDeploy. The lesson details what CodeDeploy is, its use cases, and how it interacts with other services in a CI/CD pipeline.
CodeDeploy Setup and Config
This lesson walks through the setup and configuration of CodeDeploy, including IAM policies and service roles that will enable CodeDeploy to interact with other services.
Configuring an EC2 Instance for Use with CodeDeploy
In this lesson, we go over configuring an EC2 instance for use with CodeDeploy. This includes the installation of a CodeDeploy agent, using a Bash script, which will enable the EC2 instance to interact with CodeDeploy.
Creating an Application, Deployment Group, and Deployment Configuration
This lesson discusses the purpose of an application and a deployment group. We then go on to create an application and a deployment group.
Editing and Deleting an Application
This lesson walks through editing and deleting AWS CodeDeploy applications.
Adding, Editing, and Deleting Application Elements (Deployment Groups and Configurations)
This lesson covers AWS CodeDeploy on deployment groups. We walk through creating, editing, and deleting deployment groups.
Creating, Viewing, and Deleting a Custom Deployment Configuration
This lesson discusses AWS CodeDeploy custom deployment configurations. Custom deployment configurations can be created when the AWS deployment configurations provided out of the box do not meet your needs.
Creating and Configuring the AppSpec File
This lesson takes an in-depth look at the AppSpec file. The AppSpec file in CodeDeploy orchestrates the deployment of revisions (source code and revisions). We then walk through the creation and configuration of the AppSpec file.
Creating and Uploading a Revision to S3
This lesson discusses the process of creating a revision for AWS CodeDeploy and uploading that revision to an S3 bucket. The AppSpec file is a big part of this process and is included in the revision.
Deploying a Revision from S3
This lesson builds on the previous lesson where a CodeDeploy revision is uploaded to S3. In this lesson, the revision in S3 will be deployed.
Monitoring Deployments via SNS Triggers
Simple Notification Service can be used to help monitor deployments. Triggers can be added to CodeDeploy that can be connected to SNS topics, which will notify the appropriate personnel when a deployment action has taken place. This lesson will walk through the configuration of SNS triggers.
Viewing Deployment Details and Error Logs
When performing a deployment using AWS CodeDeploy, many artifacts will be produced that will aid in reviewing and troubleshooting deployments. This lesson focuses on reviewing deployment details and error logs produced by a deployment.
Stopping Deployments, Rollbacks, and Redeployments
This lesson walks through the process of stopping deployments, rolling back deployments, and performing redeployments.
Automating Deployments from S3 Using Lambda
This lesson covers using a Lambda function to automate deployments through CodeDeploy. A Lambda function is configured that will be triggered by the upload of new source code and manage the automatic deployment of that source code.
What Is CodePipeline?
This lesson introduces AWS CodePipeline, setting the stage for the rest of the section on CodePipeline and preparing you for the more practical lessons.
CodePipeline Concepts and Terminology
This lesson goes into detail on important CodePipeline concepts and terminology. Understanding these basics will prepare you for working hands-on with AWS CodePipeline.
CodePipeline Setup and Configuration
This lesson walks through the setup and configuration necessary to begin using CodePipeline. This includes setting up roles and policies in IAM and performing configuration within CodePipeline.
CodePipeline with CodeBuild
This lesson details creating a pipeline with CodeCommit and CodeBuild. A key point in the lesson is that choosing CodeDeploy as part of the pipeline is optional, and, in this case, CodeDeploy is omitted.
Creating a Simple Pipeline
This lesson builds on elements learned in the previous lesson to build a pipeline. But this time, the pipeline is built using CodeCommit instead of S3, and the pipeline does not use CodeBuild but does use CodeDeploy. The lesson again illustrates the versatility in creating a pipeline with CodePipeline.
Managing a Pipeline with AWS Console
This lesson walks through managing pipelines from the CodePipeline console. After having created several pipelines in this section of the course, they are then managed in the console.
Managing a Pipeline from the CLI
This lesson builds on the previous lesson and walks through managing a pipeline from the command line interface.
Continuous Delivery with CloudFormation Templates
This lesson walks through how CloudFormation templates can be used as the source for a code pipeline. In the configuration, CloudFormation templates will be used as the source, updates to the source template will trigger the pipeline, and the output will be a CloudFormation stack.
Creating Approval Actions
The previous lesson gave a sneak peek into approval actions for CodePipeline. This lesson takes a deepr dive into approval actions. The lesson concludes by creating an approval action and testing the pipeline to verify proper functioning.
AWS X-Ray In-Depth
What Is X-Ray?
This lesson introduces AWS X-Ray and how it can be used to monitor and troubleshoot environments from end to end.
X-Ray Sample App and Demo
This lesson walks through configuring and using AWS X-Ray. The walkthrough uses a sample application to run through the details of how X-Ray can be used to troubleshoot and optimize applications. To follow this walkthrough, open Elastic Beanstalk with this pre-configured link: https://console.aws.amazon.com/elasticbeanstalk/#/newApplication?applicationName=scorekeep&solutionStackName=Java
This lesson discusses AWS X-Ray concepts, which enable X-Ray to monitor and analyze applications within our environment. X-Ray provides a platform for troubleshooting and repairing issues in our environment from end to end.
This lesson discusses the details about security in AWS X-Ray. X-Ray is secured in transit and at rest using AWS KMS (Key Management Service). You can also choose to use custom keys for security in X-Ray.
What Is Cloud9?
This lesson introduces the student to AWS Cloud9. Cloud9 is an IDE that can be used to manage and edit our code during development. The major distinguishing feature of Cloud9 is that it is accessed via web browser.
This lesson details the different configurations available in Cloud9: individual, teams, and enterprise. We then walk through a team configuration.
This lesson walks through the Cloud9 IDE, explaining the features and tools avaliable in Cloud9.
Working with CodePipeline
This lesson walks through configuring Cloud9 to work with CodePipeline via integration with CodeCommit. Cloud9 can then be used to push code changes to CodeCommit, which will then trigger the CodePipeline — resulting in an automated deployment.
IDE Walkthrough - CLI
This lesson continues discussing the Cloud9 IDE but touches on working with Cloud9 from the command line interface.
What Is CodeStar?
This lesson describes what CodeStar is and how it can be used to tie together the entire AWS Developer Tools suite.
Setting Up CodeStar
This lesson discusses and walks through the setup of AWS CodeStar, including IAM configuration of roles and policies as well as setup within the CodeStar environment.
Getting Started with CodeStar
This lesson discusses getting started with CodeStar. The lesson details how to set up a CodeStar project and uses an example to highlight interaction with other Developer Tools services.
CodeStar with AWS Alexa
This lesson walks through integrating Amazon Alexa with CodeStar. The lesson will create a CodeStar project that will ultimately deploy an Alexa skill. The lesson will conclude with a final deployment to Alexa and a test in Alexa.
CodeStar with the CLI
The CodeStar management console is a powerful tool, but this lesson shows there is still some use in interacting with CodeStar from the CLI.
This video closes the course and details the additional courses at Linux Academy that may be of interest related to Devops in general as well as all of the AWS certification offerings.