The course is part of these learning paths
Working with AWS Codestar
- [Instructor] Welcome back. In this lecture we'll introduce you to AWS CodeStar and how it can be used to provision an entire CICD workflow using all of the previous AWS services we have already reviewed. Integrating each of AWS's development services manually enter a cohesive CICD workflow can be both time consuming and challenging given the various integration options and required security permissions. In this lecture, we'll show you how AWS CodeStar takes the pain out of building a full CICD workflow. Using AWS CodeStar, you'll quickly be able to launch from prebuilt CICD workflow templates. You'll see that by using AWS CodeStar, you can quickly create a CICD workflow that suits the characteristics of your software development project. Whether is it a Java based app designed to run on a load balanced pool of EC2 instances or instead, perhaps, a node based JS web service deployed to Lambda. Regardless of requirement, AWS CodeStar can help you launch your CICD workflow in a matter of minutes. Okay, let's begin. AWS CodeStar was created out of the need to simply and ease the end-user process of setting up and creating a CICD tool chain. Composed of AWS's developer-focused tools such as CodeCommit, CodeBuild and CodePipeline and/or other third party tools. With AWS CodeStar, you can have a fully working CICD tool chain operational in a matter of minutes. Not only will CodeStar take care of the provisioning and configuration of the CICD tool chain, it will also conveniently provide you with a unified single-pane view of your build and deploy workflow. The end result of leveraging CodeStar is that you will be able to focus your energies on building new product features and shipping them faster to your customer base. As we've already touched on, CodeStar focuses on helping you to set up a working CICD tool chain, taking care of the configuration of it. Aside from this, CodeStar also provides several other useful features: pre-configured CICD workflow templates, dashboard visualization, team membership management, and issue and ticket tracking integration. AWS CodeStar sits over and across each of the previous services. In doing so, it not only provides the function of provisioning and configuring each of the individual services for the complete CICD workflow or tool chain, but also provides a single pane of glass or system-wide view into the stages that make up your CICD workflow. CodeStar is used to provision projects. A project represents the combined AWS services that have been integrated together to provide you with a fitfull purpose CICD workflow. The provisioning process for a new CodeStar project is undertaken within the AWS console, and is performed in a step-by-step wizard-driven manner. For starters, you pick a project type from a list of pre-configured project templates. Therefore, for example, you require a CICD workflow for developing a go-based web app that is hosted on AWS Lambda, then you would select and proceed with the respective project template. Alternatively, you may have a requirement to set up a CICD workflow for building an express based web app deployed to EC2. The, again, you would select and proceed with the respective project template. CodeStar provides a convenient filtering navigation system into which you can set the attributes of your software project. In this example, we've chosen to specify that our software project is a web application and is developed in Java. CodeStar filters down the matching project templates that you can then choose from. Behind the scenes, CodeStar uses CloudFormation to plumb up all of the required AWS services and resources. The CloudFormation service is called upon by the CodeStar service to perform the creation of resources. But, before this can occur, an IAM user with admin privileges, must allow the one-time creation of a new IAM service role named AWS CodeStar Service Role. This IAM service role can be assumed by the CodeStar service, and when done so, gives it permissions to create the required CICD AWS resources on your behalf. CodeStar provides a project management dashboard view of your software project in CICD workflow. The dashboard view can be customized by adding and removing tiles for the various viewpoints into your environment. The example customized dashboard, as shown here, is composed of the following tiles. Commit history. This tile shows the commit history for the repository that is being used. Continuous deployment. This tile represents the pipeline that is triggered after any commits. The pipeline view automatically updates itself after any-stage transitions. Application activity. This tile provides CloudWatch CPU utilization metrics for the deployed and running application. Application end point. This tile provides a clickable URL that will open up the application end point within your browser, allowing you to test the deployed application. When you're setting up your CodeStar project, you select the IDE that you will use to create and edit your source code in. AWS CodeStar has built-in support for Cloud9, Eclipse, Visual Studio and the command line. When CodeStar launches your selected project template, it will pre populate the selected source control system with sample source code. If you have configured Cloud9 as your IDE, CodeStar will also take care of git cloning the repository so that after Cloud9 launches, you are good to go. After edits are made to the source code, you can simply perform the required git commands, pull push, from the dash terminal embedded within the Cloud9 IDE. Doing this will then trigger the downstream configured pipeline hosted within CodePipeline. Within the CodeStar dashboard, clicking on the Code menu item takes you directly into the code commit repository created for the current CodeStar project. Clicking on the Build Menu Item takes you directly into the code build console for the build settings created for the current CodeStar project. Clicking on the Deploy menu item takes you directly into the code deploy console to the deployment settings for the current CodeStar project. And, likewise, clicking on the Pipeline menu item takes you directly into the code pipeline console showing you the pipeline that was created for the current CodeStar project. CodeStar allows you to set up and configure a team of users within your project. A CodeStar project team consists of one or many users. Teams allow you to grant role-based access into your project for other users. Each user to be added to your CodeStar project must have an assigned IAM user account. When adding into the project team, the user is allocated a project role. CodeStar currently has three different project roles: owner, contributor and viewer. Let's cover off the differences between these roles. The ability to view the CodeStar project dashboard and status is shared by all three roles. The owner role is the top level role and has the most privilege within a CodeStar project. As can be seen here, any user assigned the owner role can add/remove and access CodeStar project resources. They can also add and remove CodeStar project members. And can finally, delete the CodeStar project to which they have ownership. The contributor role is the same as the previous role, but without the add and remove team members privilege, nor the delete project privilege. The viewer role is the least privileged role within CodeStar and has only the ability to view the CodeStar project dashboard and status. Keep in mind that these roles are assigned per CodeStar project. We can see the differences between each of the three CodeStar team roles on this slide. AWS CodeStar provides support for extensions. Extensions can be used to integrate third-party hosted data into your CodeStar project dashboard. Okay, that completes this introduction lecture on the AWS CodeStar service. Go ahead and close this lecture, and we'll see you shortly in the next one.
About the Author
Jeremy is the DevOps Content Lead at Cloud Academy where he specializes in developing technical training documentation for DevOps.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 20+ years. In recent times, Jeremy has been focused on DevOps, Cloud, Security, and Machine Learning.
Jeremy holds professional certifications for both the AWS and GCP cloud platforms.