Deep Dive on AWS CodeStar with AWS CI/CD workflow Tara E. Walker Technical Evangelist | @taraw June 28, 2017 © 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Agenda What is DevOpsReal-Time & AWS enabled What’s Serverless DataDevOps Processing?
Processing Streaming Data with Lambda and Kinesis Introducing AWS CodeStar
Streaming Data Processing Demo DataAWS Processing Lambda CodeStarPipeline and AWSwith Code Servicesand MapReduce Building a Big Data Processing Solution Demo AWS CodeStar Issue Tracking with JIRA
Summary
What is DevOps? Union of software development and operations Migration of Agile continuous development into continuous integration and continuous delivery DevOps Model • • • •
No Silos – Puts emphasis on communication, collaboration, and cohesion between disciplines Best practices for change, configuration, and deployment automation Deliver apps/services at faster pace High speed product updates Delivery Pipeline
COMPANY
Feedback Loop
CUSTOMERS
DevOps Release Processes: Four major phases Source • Check-in source code such as .java files. • Peer review new code
Build • • • • •
Compile code Unit tests Style checkers Code metrics Create container images
Test • Integration tests with other systems • Load testing • UI tests • Penetration testing
Production • Deployment to production environments
Continuous Integration (CI) is… DevOps software development practice Refers to Build or Integration stage of the software release process Key Activities ü Code changes merged into a central repository ü Automated builds and tests are run
Goals ü Find and address bugs quickly ü Improve software quality ü Reduce time to release new software updates
Continuous Delivery (CD) is… DevOps software development practice that refers to Deployment stage of the software release process Key Activities ü Deployment of all code changes to a testing and/or a production environment ü Approval of updates to production from test stages
Goals ü Verify application updates across multiple dimensions before deployment ü Automate entire software release process ü Pre-emptively discover deployment issues
DevOps Release processes: Levels Source
Continuous integration
Continuous delivery
Continuous deployment
Build
Test
Production
AWS DevOps Portfolio Software Development and Continuous Delivery Toolchain
AWS CodeStar
Infrastructure as Code
AWS CloudFormation
Monitoring & Logging
AWS X-Ray
AWS CodeCommit Amazon CloudWatch
AWS CodeBuild
AWS OpsWorks AWS CloudTrail
AWS CodeDeploy AWS OpsWorks for Chef Automate AWS CodePipeline
AWS Config
AWS Continuous Integration & Delivery AWS Code Services
AWS CodeStar
AWS CodePipeline
AWS CodeDeploy
AWS CodeCommit
AWS CodeBuild
Introducing AWS CodeStar Release code faster: Set up your entire continuous delivery toolchain in minutes Collaborate securely with your entire: Manage team access, add team members to projects by role i.e. owners, contributors Integrated issue tracking and project management: Integrates Atlassian JIRA Software to easily manage issues directly from CodeStar dashboard and monitor application progress and activity Develop on AWS in minutes: Easily set up your entire development environment and programming tools for coding, building, testing, and deploying on AWS Supported for popular programming languages: Develop variety of applications using language of choice including Java, JavaScript, PHP, Ruby, and Python.
AWS CodeStar – Implement AWS DevOps Software Development and Continuous Integration & Delivery Workflow
AWS CodeStar
Source
AWS CodeCommit
Build
Test
AWS CodeBuild
Third Party Tooling
AWS CodePipeline
Production
AWS CodeDeploy
Features of AWS CodeStar ü Project Templates ü AWS CodeCommit for Secure Hosted Git ü Team Access Management Repository with AWS IAM ü Managed Build Service with ü Automated App Deployments with AWS AWS Code Build CodeDeploy and AWS ü Unified Project Dashboard CloudFormation using Amazon CloudWatch ü Integration of AWS monitoring service CodePipeline for Automated ü Issue tracking and project Continuous Delivery Pipeline management tool in dashboard via integrated Atlassian JIRA Software
AWS CodeStar – Project Templates Preconfigured AWS CloudFormation templates for quick development project creation • Automatic provisioning of underlying AWS services for quick app coding and deployment
Over twenty different AWS CodeStar project templates Support for websites, web services, microservices, Alexa Skills dev projects (and more) 3 Hosting environments § Self-Managed: Amazon EC2 with AWS CodeDeploy § Managed: Elastic Beanstalk § Serverless: AWS Lambda Amazon EC2
AWS CodeDeploy
AWS Elastic Beanstalk
AWS Lambda
AWS CodeStar – Project Templates CodeStar project templates support popular programming languages and IDEs Programming Languages Java JavaScript Python Ruby PHP
IDE/Code Editors Visual Studio Eclipse AWS CLI
AWS CLI
Demo: Project Creation & Templates
CodeStar – Project Dashboard Coordinate your day-to-day development activities Dashboard provides tools to view real time application activity, monitor builds, and flow of code through deployment pipeline Customize project dashboard by adding, removing, moving tiles Add customizable team wiki tile for team resources sharing or other purposes ex. show code snippets
Use CodeStar project extensions to add tiles and functionality dashboard
AWS CodeStar – Working with Teams Build project team by granting user access to CodeStar project Project Roles ü Owner: Ability to add & remove team members, contribute code to project repo, grant or deny team members remote access ü Contributor: Ability to add & remove dashboard resources, contribute code to the project repository ü Viewer: Ability to view the project dashboard, code, tiles, and project state
Project team members (users) ü Can have different CodeStar roles and permissions ü Can belong to multiple CodeStar projects
AWS CodeStar – Continuous Delivery Pipeline Each CodeStar project creates and configures an automated Continuous Delivery pipeline
Software Release Steps:
Source
AWS CodeCommit
AWS CodePipeline
Build
Test
AWS CodeBuild
Third Party Tooling
Production
AWS CodeDeploy
AWS CodeStar – AWS Code Services Software Release Steps:
Source
AWS CodeCommit
Build
Test
Production
AWS CodeStar – AWS Code Services Software Release Steps:
Source
Build
AWS CodeBuild
Test
Production
AWS CodeStar – AWS Code Services Software Release Steps:
Source
Build
Test
Third Party Tooling
Production
AWS CodeStar – AWS Code Services Software Release Steps:
Source
Build
Test
Production
AWS CodeDeploy Or AWS Elastic BeanStalk Or AWS Lambda
AWS CodeStar – AWS Code Services Software Release Steps:
Source
Build
Test
Production
AWS CodeDeploy
EC2
On-Prem
AWS CodeStar – AWS Code Services Software Release Steps:
Source
Build
Test
Production
AWS Elastic Beanstalk
EC2
AWS CodeStar – AWS Code Services Software Release Steps:
Source
Build
Test
Production
AWS CloudFormation/AWS SAM
AWS Lambda
Amazon API Gateway*
AWS CodeStar – AWS Code Services Software Release Steps:
AWS CodePipeline
Source
Build
Test
Production
Demo: Continuous Delivery Pipeline
Integrated Issue Tracking Integrates with Atlassian JIRA Software – issue tracking and project management tool Easy JIRA and AWS CodeStar setup ü Log into JIRA and Copy URL from any project ü Enter JIRA URL field in the CodeStar Extensions
Monitor application activity and manage all JIRA issues in CodeStar dashboard Create new JIRA tickets for work items directly dashboard
Integrated Issue Tracking – Atlassian JIRA offer First 2,000 CodeStar users to sign up for JIRA Software through AWS CodeStar Receive a free 5-person license of JIRA First time JIRA ever offers a free version of software Offer only available for a very limited time AWS Only Offer
Demo: Atlassian JIRA integration
AWS CodeStar Limits CodeStar Feature
Limit
# of projects.
Maximum of 333 projects in an AWS account. Limits will vary depending on other service dependencies
# of AWS CodeStar projects by IAM user
Maximum of 10 per individual IAM user
Project IDs
Must be unique within an AWS account. Must be min 2 characters and max 15 characters. Only certain characters allowed.
Project names
Project names cannot exceed 100 characters in length, and cannot begin or end with an empty space.
Project descriptions
Optional. Any character combination between 0 and 1,024 length.
Number of team members in project
100 member max
User Profile display name
Must include at least one character. Character cannot be a space. Cannot begin or end with a space.
User profile email address
Must include an @ and end in a valid domain extension.
Access: Federated, Root account, or Temporary
Only supports IAM users, No federated users or temporary access credentials. Using with a root account is not recommended.
AWS CodeStar - Code integrated partners
AWS CodeStar – Easily Gain Benefits of DevOps
Improved Collaboration
Security
Rapid Delivery
Scale
Reliability
Speed
Summary: Learn more: https://aws.amazon.com/codestar Check out Blog Post: Introducing AWS CodeStar: https://aws.amazon.com/blogs/aws/new-aws-codestar/ Get started with AWS CodeStar: https://console.aws.amazon.com/codestar
Tara E. Walker @taraw