SlideShare a Scribd company logo
Peter Salnikov / AWS Architect & DevOps Expert / www.salnikov.cc
CI/CD in AWS Cloud
CodePipeline + CodeBuild + CodeDeploy
Sample Serverless Application
API Gateway Lambda DynamoDB
Repo per Lambda
NodeJS Sources
Single repo for all
CF Templates
Pipeline = Source + Build + Deploy
CodePipeline:
- Watch for CodeCommit Git Repos
- Combine CodeBuild + CodeDeploy
CodeBuild:
- Prepare JSON with input parameters for CloudFormation
- Validate, Test and Pack Lambda Package
CodeDeploy:
- Update CloudFormation Stack using Input parameters and
Lambda package
CodePipeline = Stages + Actions
action
actionSTAG
E
action
action action
Stage Stage Stage Stage
Pipeline
Lambda CF
Templates
Lambda NodeJs
Sources
Combine Sources
and store on S3
Prepare CF Input
Params
Build Lambda Package
Deploy/Update Lambda
CF Stack
Notify to Slack
Pipeline
Source Stage
Lambda CF
Templates
Lambda NodeJs
Sources
Combine Sources
and store on S3
Prepare CF Input
Params
Build Lambda Package
Deploy/Update Lambda
CF Stack
Notify to Slack
Pipeline
Validate Stage
Lambda CF
Templates
Lambda NodeJs
Sources
Combine Sources
and store on S3
Prepare CF Input
Params
Build Lambda Package
Deploy/Update Lambda
CF Stack
Notify to Slack
Pipeline
Build Stage
Lambda CF
Templates
Lambda NodeJs
Sources
Combine Sources
and store on S3
Prepare CF Input
Params
Build Lambda Package
Deploy/Update Lambda
CF Stack
Notify to Slack
Pipeline
Deploy Stage
Lambda CF
Templates
Lambda NodeJs
Sources
Combine Sources
and store on S3
Prepare CF Input
Params
Build Lambda Package
Deploy/Update Lambda
CF Stack
Notify to Slack
CodePipeline Stage
Actions
CodePipeline Stages
Source Build Test Deploy Approval Invoke
➔ AWS S3
➔ AWS
CodeCommit
➔ GitHub
➔ AWS ECR
➔ AWS CodeStar
Connections
➔ AWS
CodeBuild
➔ CloudBees
➔ Jenkins
➔ TeamCity
➔ AWS
CodeBuild
➔ AWS
DeviceFarm
➔ Blaze Meter
➔ Ghost
Insepctor
➔ Micro Focus
StormRunner
Loader
➔ Nouvola
➔ Runscope
➔ AWS S3
➔ AWS
CloudFormati
on
➔ AWS
CodeDeploy
➔ AWS ECS
➔ AWS
Beanstalk
➔ AWS
OpsWorks
➔ AWS Service
Catalog
➔ Alexa Skill Kit
➔ Xebia Labs
➔ AWS SNS ➔ AWS Lambda
CodePipeline Triggering
AWS Lambda
AWS CloudWatch Event Manual
WebHooks
AWS CodeCommit/GitHub Polling
AWS CodePipeline
CodePipeline
Source Stage
1 CodePipeline:
2 Type: AWS::CodePipeline::Pipeline
3 Properties:
4 Stages:
5 - Name: Source
6 Actions:
7 - Name: LambdaCodeSource
8 RunOrder: 1
9 InputArtifacts: []
10 ActionTypeId:
11 Version: '1'
12 Owner: AWS
13 Category: Source
14 Provider: CodeCommit
15 Configuration:
16 RepositoryName: lambda.name
17 BranchName: master
CodeBuild
CodeBuild
Spec
1 version: 0.2
2 phases:
3 install:
4 runtime-versions:
5 nodejs: 12
6 commands:
7 yum install -y jq
8 build:
9 commands:
10 - npm install
11 - npm pack
12 - zip -r $LAMBDA_NAME.zip ./build/*
13 artifacts:
14 type: zip
15 files:
16 - ./*.zip
17 cache:
18 paths:
19 - './node_modules'
CodeDeploy
AWS Lambda
AWS ECSEC2/OnPrem
CodePipeline
Source Stage
1 CodePipeline:
2 Type: AWS::CodePipeline::Pipeline
3 Properties:
4 Stages:
5 - Name: UpdateLambdaStack
6 RunOrder: 2
7 ActionTypeId:
8 Owner: AWS
9 Category: Deploy
10 Provider: CloudFormation
11 Version: '1'
12 InputArtifacts:
13 - Name: LambdaCloudFormation
14 Configuration:
15 ActionMode: REPLACE_ON_FAILURE
16 RoleArn: !Ref arn
17 StackName: !Sub stack_name
18 TemplateConfiguration: LambdaCloudFormation::lambda.json
19 TemplatePath: LambdaCloudFormation::lambda.yaml
Pricing
CodePipeline: $1.00 pipeline / month
CodeBuild:
Compute instance type Memory vCP
U
Linux price per build minute Windows price per build minute
general1.medium 7 GB 4 $0.01 $0.018
general1.large 15 GB 8 $0.02 $0.036
arm1.large 16 GiB 8 $0.015 N/A
general1.small 3 GB 2 $0.005 N/A
general1.2xlarge 144 GiB 72 $0.20 N/A
gpu1.large 244 GiB 32 $0.65 N/A
CodeDeploy:
To EC2/Lambda - free
To OnPrem - $0.02 per OnPrem Instance
Update
THANK YOU
Does anyone have any questions?
peter@salnikov.cc
t.me/PeterSalnikov
fb.me/peter.salnikov
www.salnikov.cc

More Related Content

What's hot

Leveraging Micronaut on AWS Lambda
Leveraging Micronaut on AWS LambdaLeveraging Micronaut on AWS Lambda
Leveraging Micronaut on AWS LambdaNaresha K
 
Manage any AWS resources with Terraform 0.12 - April 2020
Manage any AWS resources with Terraform 0.12 - April 2020Manage any AWS resources with Terraform 0.12 - April 2020
Manage any AWS resources with Terraform 0.12 - April 2020Anton Babenko
 
Cloud native - CI/CD
Cloud native - CI/CDCloud native - CI/CD
Cloud native - CI/CDElad Hirsch
 
C# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of XamarinC# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of XamarinXamarin
 
Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...
Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...
Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...Flink Forward
 
Scaffolding for Serverless: lightning talk for AWS Arlington Meetup
Scaffolding for Serverless: lightning talk for AWS Arlington MeetupScaffolding for Serverless: lightning talk for AWS Arlington Meetup
Scaffolding for Serverless: lightning talk for AWS Arlington MeetupChris Shenton
 
20170701 kkbox的團隊協作方式
20170701 kkbox的團隊協作方式20170701 kkbox的團隊協作方式
20170701 kkbox的團隊協作方式CQD
 
Using Libvirt with Cluster API to manage baremetal Kubernetes
Using Libvirt with Cluster API to manage baremetal KubernetesUsing Libvirt with Cluster API to manage baremetal Kubernetes
Using Libvirt with Cluster API to manage baremetal KubernetesHimani Agrawal
 
Writing Rust Command Line Applications
Writing Rust Command Line ApplicationsWriting Rust Command Line Applications
Writing Rust Command Line ApplicationsAll Things Open
 
Gitlab ci, cncf.sk
Gitlab ci, cncf.skGitlab ci, cncf.sk
Gitlab ci, cncf.skJuraj Hantak
 
C# Async on iOS and Android - Craig Dunn, Developer Evangelist at Xamarin
C# Async on iOS and Android - Craig Dunn, Developer Evangelist at XamarinC# Async on iOS and Android - Craig Dunn, Developer Evangelist at Xamarin
C# Async on iOS and Android - Craig Dunn, Developer Evangelist at XamarinXamarin
 
Redefining Plattform "Openness" with OpenFaaS
Redefining Plattform "Openness" with OpenFaaSRedefining Plattform "Openness" with OpenFaaS
Redefining Plattform "Openness" with OpenFaaSSimon Pelczer
 
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkSpring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkRed Hat Developers
 
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupSupercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupShannon Williams
 
ApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformNicola Ferraro
 
Patterns and practices for real-world event-driven microservices
Patterns and practices for real-world event-driven microservicesPatterns and practices for real-world event-driven microservices
Patterns and practices for real-world event-driven microservicesRachel Reese
 
Kubernetes & the 12 factor cloud apps
Kubernetes & the 12 factor cloud appsKubernetes & the 12 factor cloud apps
Kubernetes & the 12 factor cloud appsAna-Maria Mihalceanu
 
Automating load testing with CI integration slideshare
Automating load testing with CI integration slideshareAutomating load testing with CI integration slideshare
Automating load testing with CI integration slideshareJohn Emmitt
 

What's hot (20)

Leveraging Micronaut on AWS Lambda
Leveraging Micronaut on AWS LambdaLeveraging Micronaut on AWS Lambda
Leveraging Micronaut on AWS Lambda
 
Manage any AWS resources with Terraform 0.12 - April 2020
Manage any AWS resources with Terraform 0.12 - April 2020Manage any AWS resources with Terraform 0.12 - April 2020
Manage any AWS resources with Terraform 0.12 - April 2020
 
Serverless and React
Serverless and ReactServerless and React
Serverless and React
 
Meet Akka gRPC
Meet Akka gRPCMeet Akka gRPC
Meet Akka gRPC
 
Cloud native - CI/CD
Cloud native - CI/CDCloud native - CI/CD
Cloud native - CI/CD
 
C# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of XamarinC# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
C# Async on iOS and Android - Miguel de Icaza, CTO of Xamarin
 
Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...
Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...
Time to-live: How to Perform Automatic State Cleanup in Apache Flink - Andrey...
 
Scaffolding for Serverless: lightning talk for AWS Arlington Meetup
Scaffolding for Serverless: lightning talk for AWS Arlington MeetupScaffolding for Serverless: lightning talk for AWS Arlington Meetup
Scaffolding for Serverless: lightning talk for AWS Arlington Meetup
 
20170701 kkbox的團隊協作方式
20170701 kkbox的團隊協作方式20170701 kkbox的團隊協作方式
20170701 kkbox的團隊協作方式
 
Using Libvirt with Cluster API to manage baremetal Kubernetes
Using Libvirt with Cluster API to manage baremetal KubernetesUsing Libvirt with Cluster API to manage baremetal Kubernetes
Using Libvirt with Cluster API to manage baremetal Kubernetes
 
Writing Rust Command Line Applications
Writing Rust Command Line ApplicationsWriting Rust Command Line Applications
Writing Rust Command Line Applications
 
Gitlab ci, cncf.sk
Gitlab ci, cncf.skGitlab ci, cncf.sk
Gitlab ci, cncf.sk
 
C# Async on iOS and Android - Craig Dunn, Developer Evangelist at Xamarin
C# Async on iOS and Android - Craig Dunn, Developer Evangelist at XamarinC# Async on iOS and Android - Craig Dunn, Developer Evangelist at Xamarin
C# Async on iOS and Android - Craig Dunn, Developer Evangelist at Xamarin
 
Redefining Plattform "Openness" with OpenFaaS
Redefining Plattform "Openness" with OpenFaaSRedefining Plattform "Openness" with OpenFaaS
Redefining Plattform "Openness" with OpenFaaS
 
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkSpring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
 
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupSupercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
 
ApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platformApacheCon NA - Apache Camel K: a cloud-native integration platform
ApacheCon NA - Apache Camel K: a cloud-native integration platform
 
Patterns and practices for real-world event-driven microservices
Patterns and practices for real-world event-driven microservicesPatterns and practices for real-world event-driven microservices
Patterns and practices for real-world event-driven microservices
 
Kubernetes & the 12 factor cloud apps
Kubernetes & the 12 factor cloud appsKubernetes & the 12 factor cloud apps
Kubernetes & the 12 factor cloud apps
 
Automating load testing with CI integration slideshare
Automating load testing with CI integration slideshareAutomating load testing with CI integration slideshare
Automating load testing with CI integration slideshare
 

Similar to 2020.02.15 DelEx - CI/CD in AWS Cloud

Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldAmazon Web Services
 
Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...
Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...
Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...Amazon Web Services
 
Kubernetes best practices
Kubernetes best practicesKubernetes best practices
Kubernetes best practicesBill Liu
 
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbsAWS Chicago
 
Building a Python Serverless Applications with AWS Chalice - AWS Online Tech...
 Building a Python Serverless Applications with AWS Chalice - AWS Online Tech... Building a Python Serverless Applications with AWS Chalice - AWS Online Tech...
Building a Python Serverless Applications with AWS Chalice - AWS Online Tech...Amazon Web Services
 
AWS August Webinar Series - Building Serverless Backends with AWS Lambda and ...
AWS August Webinar Series - Building Serverless Backends with AWS Lambda and ...AWS August Webinar Series - Building Serverless Backends with AWS Lambda and ...
AWS August Webinar Series - Building Serverless Backends with AWS Lambda and ...Amazon Web Services
 
Building Serverless APIs (January 2017)
Building Serverless APIs (January 2017)Building Serverless APIs (January 2017)
Building Serverless APIs (January 2017)Julien SIMON
 
re:Invent recap session 1: What's New with AWS Lambda
re:Invent recap session 1: What's New with AWS Lambda re:Invent recap session 1: What's New with AWS Lambda
re:Invent recap session 1: What's New with AWS Lambda Amazon Web Services
 
AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)
AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)
AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)Amazon Web Services
 
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesContinuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesAmazon Web Services
 
What’s new in serverless - re:Invent 2020
What’s new in serverless - re:Invent 2020What’s new in serverless - re:Invent 2020
What’s new in serverless - re:Invent 2020AWS Chicago
 
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...Application Lifecycle Management in a Serverless World | AWS Public Sector Su...
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...Amazon Web Services
 
Building applications with Serverless Framework and AWS Lambda - JavaZone 2019
Building applications with Serverless Framework and AWS Lambda - JavaZone 2019Building applications with Serverless Framework and AWS Lambda - JavaZone 2019
Building applications with Serverless Framework and AWS Lambda - JavaZone 2019Fredrik Vraalsen
 
NEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# ApplicationsNEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# ApplicationsAmazon Web Services
 
Building Serverless Applications with AWS Chalice
Building Serverless Applications with AWS ChaliceBuilding Serverless Applications with AWS Chalice
Building Serverless Applications with AWS ChaliceAmazon Web Services
 
Serverless Application Development with SAM
Serverless Application Development with SAMServerless Application Development with SAM
Serverless Application Development with SAMAmazon Web Services
 

Similar to 2020.02.15 DelEx - CI/CD in AWS Cloud (20)

Deep Dive on Serverless Stack
Deep Dive on Serverless StackDeep Dive on Serverless Stack
Deep Dive on Serverless Stack
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...
Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...
Continuous Integration e Delivery per (r)innovare lo sviluppo software e la g...
 
Kubernetes best practices
Kubernetes best practicesKubernetes best practices
Kubernetes best practices
 
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 
Building a Python Serverless Applications with AWS Chalice - AWS Online Tech...
 Building a Python Serverless Applications with AWS Chalice - AWS Online Tech... Building a Python Serverless Applications with AWS Chalice - AWS Online Tech...
Building a Python Serverless Applications with AWS Chalice - AWS Online Tech...
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
AWS August Webinar Series - Building Serverless Backends with AWS Lambda and ...
AWS August Webinar Series - Building Serverless Backends with AWS Lambda and ...AWS August Webinar Series - Building Serverless Backends with AWS Lambda and ...
AWS August Webinar Series - Building Serverless Backends with AWS Lambda and ...
 
What's New with AWS Lambda
What's New with AWS LambdaWhat's New with AWS Lambda
What's New with AWS Lambda
 
Building Serverless APIs (January 2017)
Building Serverless APIs (January 2017)Building Serverless APIs (January 2017)
Building Serverless APIs (January 2017)
 
re:Invent recap session 1: What's New with AWS Lambda
re:Invent recap session 1: What's New with AWS Lambda re:Invent recap session 1: What's New with AWS Lambda
re:Invent recap session 1: What's New with AWS Lambda
 
AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)
AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)
AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)
 
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar SeriesContinuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
Continuous Delivery with AWS Lambda - AWS April 2016 Webinar Series
 
What’s new in serverless - re:Invent 2020
What’s new in serverless - re:Invent 2020What’s new in serverless - re:Invent 2020
What’s new in serverless - re:Invent 2020
 
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...Application Lifecycle Management in a Serverless World | AWS Public Sector Su...
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...
 
Building applications with Serverless Framework and AWS Lambda - JavaZone 2019
Building applications with Serverless Framework and AWS Lambda - JavaZone 2019Building applications with Serverless Framework and AWS Lambda - JavaZone 2019
Building applications with Serverless Framework and AWS Lambda - JavaZone 2019
 
What's New with AWS Lambda
What's New with AWS LambdaWhat's New with AWS Lambda
What's New with AWS Lambda
 
NEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# ApplicationsNEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# Applications
 
Building Serverless Applications with AWS Chalice
Building Serverless Applications with AWS ChaliceBuilding Serverless Applications with AWS Chalice
Building Serverless Applications with AWS Chalice
 
Serverless Application Development with SAM
Serverless Application Development with SAMServerless Application Development with SAM
Serverless Application Development with SAM
 

Recently uploaded

Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Thierry Lestable
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationZilliz
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...Elena Simperl
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...Sri Ambati
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 

Recently uploaded (20)

Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 

2020.02.15 DelEx - CI/CD in AWS Cloud

  • 1. Peter Salnikov / AWS Architect & DevOps Expert / www.salnikov.cc CI/CD in AWS Cloud
  • 3. Sample Serverless Application API Gateway Lambda DynamoDB Repo per Lambda NodeJS Sources Single repo for all CF Templates
  • 4. Pipeline = Source + Build + Deploy CodePipeline: - Watch for CodeCommit Git Repos - Combine CodeBuild + CodeDeploy CodeBuild: - Prepare JSON with input parameters for CloudFormation - Validate, Test and Pack Lambda Package CodeDeploy: - Update CloudFormation Stack using Input parameters and Lambda package
  • 5. CodePipeline = Stages + Actions action actionSTAG E action action action Stage Stage Stage Stage
  • 6. Pipeline Lambda CF Templates Lambda NodeJs Sources Combine Sources and store on S3 Prepare CF Input Params Build Lambda Package Deploy/Update Lambda CF Stack Notify to Slack
  • 7. Pipeline Source Stage Lambda CF Templates Lambda NodeJs Sources Combine Sources and store on S3 Prepare CF Input Params Build Lambda Package Deploy/Update Lambda CF Stack Notify to Slack
  • 8. Pipeline Validate Stage Lambda CF Templates Lambda NodeJs Sources Combine Sources and store on S3 Prepare CF Input Params Build Lambda Package Deploy/Update Lambda CF Stack Notify to Slack
  • 9. Pipeline Build Stage Lambda CF Templates Lambda NodeJs Sources Combine Sources and store on S3 Prepare CF Input Params Build Lambda Package Deploy/Update Lambda CF Stack Notify to Slack
  • 10. Pipeline Deploy Stage Lambda CF Templates Lambda NodeJs Sources Combine Sources and store on S3 Prepare CF Input Params Build Lambda Package Deploy/Update Lambda CF Stack Notify to Slack
  • 12. CodePipeline Stages Source Build Test Deploy Approval Invoke ➔ AWS S3 ➔ AWS CodeCommit ➔ GitHub ➔ AWS ECR ➔ AWS CodeStar Connections ➔ AWS CodeBuild ➔ CloudBees ➔ Jenkins ➔ TeamCity ➔ AWS CodeBuild ➔ AWS DeviceFarm ➔ Blaze Meter ➔ Ghost Insepctor ➔ Micro Focus StormRunner Loader ➔ Nouvola ➔ Runscope ➔ AWS S3 ➔ AWS CloudFormati on ➔ AWS CodeDeploy ➔ AWS ECS ➔ AWS Beanstalk ➔ AWS OpsWorks ➔ AWS Service Catalog ➔ Alexa Skill Kit ➔ Xebia Labs ➔ AWS SNS ➔ AWS Lambda
  • 13. CodePipeline Triggering AWS Lambda AWS CloudWatch Event Manual WebHooks AWS CodeCommit/GitHub Polling AWS CodePipeline
  • 14. CodePipeline Source Stage 1 CodePipeline: 2 Type: AWS::CodePipeline::Pipeline 3 Properties: 4 Stages: 5 - Name: Source 6 Actions: 7 - Name: LambdaCodeSource 8 RunOrder: 1 9 InputArtifacts: [] 10 ActionTypeId: 11 Version: '1' 12 Owner: AWS 13 Category: Source 14 Provider: CodeCommit 15 Configuration: 16 RepositoryName: lambda.name 17 BranchName: master
  • 16. CodeBuild Spec 1 version: 0.2 2 phases: 3 install: 4 runtime-versions: 5 nodejs: 12 6 commands: 7 yum install -y jq 8 build: 9 commands: 10 - npm install 11 - npm pack 12 - zip -r $LAMBDA_NAME.zip ./build/* 13 artifacts: 14 type: zip 15 files: 16 - ./*.zip 17 cache: 18 paths: 19 - './node_modules'
  • 18. CodePipeline Source Stage 1 CodePipeline: 2 Type: AWS::CodePipeline::Pipeline 3 Properties: 4 Stages: 5 - Name: UpdateLambdaStack 6 RunOrder: 2 7 ActionTypeId: 8 Owner: AWS 9 Category: Deploy 10 Provider: CloudFormation 11 Version: '1' 12 InputArtifacts: 13 - Name: LambdaCloudFormation 14 Configuration: 15 ActionMode: REPLACE_ON_FAILURE 16 RoleArn: !Ref arn 17 StackName: !Sub stack_name 18 TemplateConfiguration: LambdaCloudFormation::lambda.json 19 TemplatePath: LambdaCloudFormation::lambda.yaml
  • 19. Pricing CodePipeline: $1.00 pipeline / month CodeBuild: Compute instance type Memory vCP U Linux price per build minute Windows price per build minute general1.medium 7 GB 4 $0.01 $0.018 general1.large 15 GB 8 $0.02 $0.036 arm1.large 16 GiB 8 $0.015 N/A general1.small 3 GB 2 $0.005 N/A general1.2xlarge 144 GiB 72 $0.20 N/A gpu1.large 244 GiB 32 $0.65 N/A CodeDeploy: To EC2/Lambda - free To OnPrem - $0.02 per OnPrem Instance Update
  • 20. THANK YOU Does anyone have any questions? peter@salnikov.cc t.me/PeterSalnikov fb.me/peter.salnikov www.salnikov.cc