Deep Dive on AWS CodeStar

Report 349 Downloads 78 Views
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