Slide 1

Slide 1 text

PipeCD ❤ AWS Control your AWS applications deployment in GitOps style with PipeCD. khanhtc1202 Developer Productivity Div, CyberAgent, Inc. Presents

Slide 2

Slide 2 text

About me 2 @khanhtc1202 @khanhtc1202

Slide 3

Slide 3 text

Agenda ● What and why we need ● PipeCD ● Progressive deployment for AWS ECS applications ● PipeCD’s enterprise features ● Roadmap ● ... 3

Slide 4

Slide 4 text

4 What/why we need

Slide 5

Slide 5 text

What & why we need - An end-to-end solution - Progressive delivery: Canary, Blue/Green, Rollout - Automated analysis: metrics, log, smoke test - A unified solution cross cloudplatform and application kind - Decrease onboarding costs - Improve developer experience - One delivery infrastructure for multiple deployment targets (Kubernetes, Terraform, AWS ECS, AWS Lambda, …) And we need a CD tool, not the CI tool which does the CICD tasks

Slide 6

Slide 6 text

Importance of CD Commit Changes Build Test Staging Production Continuous Integration and Delivery(CI/CD) Continuous Delivery(CD) Commit Changes Build Test Staging Production Continuous Integration(CI) Artifacts

Slide 7

Slide 7 text

7

Slide 8

Slide 8 text

PipeCD

Slide 9

Slide 9 text

PipeCD ❤ OSS

Slide 10

Slide 10 text

PipeCD overview ref: https://pipecd.dev/docs/operator-manual/ platform team product team

Slide 11

Slide 11 text

PipeCD overview - platform team ref: https://pipecd.dev/docs/operator-manual/control-plane/installation/ Controlplane main components - All stateless components (servers, cache, ops) - Managed services: Datastore (RDS,...) and Filestore (S3) => Low maintenance cost - Easy to get start with just Helm - Optional: components for monitoring (prometheus, grafana) - monitoring both controlpane and pipeds

Slide 12

Slide 12 text

PipeCD overview - product team ref: https://pipecd.dev/docs/operator-manual/piped/installation/ Platform team space Support all possible places ● k8s pod ● ECS Fargate task ● CloudRun ● ... - All credentials stored in product team cluster (controlplane stores nothing related to the product) - Only outbound requests (no expose ports required)

Slide 13

Slide 13 text

PipeCD overview - product team

Slide 14

Slide 14 text

PipeCD overview - product team - Simple UI - Stage logs - Clear workflow

Slide 15

Slide 15 text

15 Progressive Deployment for ECS

Slide 16

Slide 16 text

How do we do progressively ref: AWS Blog: Blue Green Deployment What do we need to prepare?? - ALB (Listener, Targetgroup) - Cluster - TaskDefinition - Service & tons of scripts to register/create above entities...

Slide 17

Slide 17 text

AWS ECS deployment with Codedeploy ref: Codedeploy tutorial - Customizable stage 👍 - Simple UI 👍 - External stage (such as deployment based on analysis) ?

Slide 18

Slide 18 text

AWS ECS deployment with Jenkins ref: AWS Blog: Blue Green Deployment Human approval? Auto rollback? Error rate based deploy? ...

Slide 19

Slide 19 text

19 Progressive Deployment for ECS with PipeCD

Slide 20

Slide 20 text

Piped - an agent to deploy applications ref: PipeCD user guide Register a piped agent from the console

Slide 21

Slide 21 text

Piped - an agent to deploy applications ref: Piped configuration Require a simple configuration which contains: - Piped credentials - Registered controlplane - Gitops credentials (ssh key, repositories) - Cloudprovider

Slide 22

Slide 22 text

PipeCD application ref: PipeCD user guide Application can be one of: - Kubernetes - AWS ECS - AWS Lambda - Terraform - Cloudrun (gcp)

Slide 23

Slide 23 text

Deployment configuration ref: Configure ECS deployment Require a simple configuration which define the PipeD behavior: - Kind (ECSApp for instance) - Input: contains ECS required configuration: task definition, service definition, targetGroup - Pipeline: contains deployment flow Note: - all configurations stored in Git - can reuse task definition and service definition as it is - no changes or PipeCD specified syntax required

Slide 24

Slide 24 text

Deployment configuration 24 The UI visualizes the state of the application in real time and clearly shows what happened at what timing

Slide 25

Slide 25 text

Bonus - LambdaApp 25 AWS Lambda Find more examples at pipecd/examples

Slide 26

Slide 26 text

Bonus - LambdaApp 26 AWS Lambda Find more examples at pipecd/examples

Slide 27

Slide 27 text

Bonus - KubernetesApp 27 AWS EKS Find more examples at pipecd/examples

Slide 28

Slide 28 text

Bonus - KubernetesApp Application detail view: show state of currently running resources Find more examples at pipecd/examples

Slide 29

Slide 29 text

29 PipeCD’s enterprise features

Slide 30

Slide 30 text

PipeCD’s enterprise features - Event wacher 30 Continuous Delivery(CD) Commit Changes Build Test Staging Production Continuous Integration(CI) Artifacts Event watcher Define how Piped handle an event and trigger the event from CI => Piped will update the configuration by itself via PR => trigger deployment ref: PipeCD eventwatcher We also use pipecd to deploy our pipecd development controlplane 😉

Slide 31

Slide 31 text

PipeCD’s enterprise features - Plan preview 31 ref: PipeCD plan-preview Enable to preview what will be applied/changed in your cluster at the pull request review step (the CD is not yet triggered - no deployment yet)

Slide 32

Slide 32 text

PipeCD’s enterprise features 32 Automated Deployment Analysis (ADA) Configuration Drift Detection

Slide 33

Slide 33 text

PipeCD’s enterprise features - Insights 33

Slide 34

Slide 34 text

34 PipeCD’s roadmap

Slide 35

Slide 35 text

Roadmap - Deployment chains 35

Slide 36

Slide 36 text

36 Continuous Delivery Solution for any application on any platform

Slide 37

Slide 37 text

pipe-cd/pipe @pipecd_dev 37 https://pipecd.dev/

Slide 38

Slide 38 text

38 Thank you! PipeCD OSSのBackendとFrontendのフルタイム・副業(時間の制限なし)を募集しています ご興味がある方、TwitterのDMなどご連絡ください