Duration: 120 seconds
Talk Track
Casey: Talk about who Gaggle is
Duration: 30 seconds
Talk Track
Casey: The challenge…
Duration: 60 seconds
Talk Track
Casey: Describe problem:
* Lead time = 47 days
* Deploy frequency = 2/day
* WIP 87
* Efficiency = 12%
Duration: 90 seconds
Talk Track
Casey: Inability to work in isolation -> long feedback loops
* developers can’t run everything locally (lambdas, kinesis, sqs, etc)
* Forced use of shared account and release branches.
* QA owns shared environment and deployed to shared account.
SLOW FEEDBACK. → DEV and QA are coupled to get feedback.
Duration: 30 seconds
Talk Track
Casey: Use Control tower to provision each developer their own account
Duration: 90 seconds
Talk Track
Casey: How do they deploy to new accounts? Can’t use bamboo
Duration: 120 seconds
Talk Track
Casey: Wrap existing CFN templates with CDK where possible. Create shared resources.
Duration: 120 seconds
Talk Track
Casey: Create higher order constructs
S3Website – S3 Bucket, CloudFront, Route53, Deploy code
S3JsonFile – dynamic values from CFN pushed to JSON file in bucket
Duration: 60 seconds
Talk Track
Casey: IAM Permission Boundary to allow creating IAM policies in CDK,
but automatically add the appropriate perm boundary to avoid privilege escalation
Duration: 60 seconds
Talk Track
Casey: We enforce certain tags – make it easy to add those tags to the stack or app
Duration: 90 seconds
Talk Track
Casey: How do I deploy my dependencies?
Duration: 120 seconds
Talk Track
Casey: Define dependencies in code, pull/build/deploy deps
Quickly converge any environment to run an app and its deps
Duration: 120 seconds
Talk Track
Casey: CDKR tool. Define deps in YAML. Run deploy
Clones dependencies and deploys
Duration: 60 seconds
Talk Track
Casey: Still waiting on QA for all testing – and now devs are providing pressure!
Still have shared account and release branches.
Bottleneck is now QA.
They own shared environment and deployed to shared account.
SLOW FEEDBACK. → COUPLING between ALL dev teams to test/release changes.
ONLY 1 path to production!
Duration: 60 seconds
Talk Track
Casey: MOAR accounts!
New account per team
This account allows teams to handle their integration testing in parallel of other teams
Duration: 60 seconds
Talk Track
Casey: Each service gets CodePipeline
Explain how dependencies are deployed into team accounts but not to higher accounts
Duration: 120 seconds
Talk Track
Casey: CDK - high level construct for a pipeline
Creates build job - use buildspec
Creates deploy to integration and runs tests
“ Staging
“ prod
Duration: 60 seconds
Talk Track
Casey: Hard to manage costs across dozens of accounts
Devs trying new things
Devs scaling old things
Need visibility
Duration: 120 seconds
Talk Track
Casey: Approach: decentralized view into budgets...give ownership to others
Automate provisioning of budget per member account
Attach SNS top to budget
Subscribe slack and email
Duration: 120 seconds
Talk Track
Casey:
# 'owner' - email address to notify for overages
# 'workspace' - slack workspace id
# 'channel' - slack channel to notify for overages
# 'default_daily_limit' - a default daily limit for any account that isn't included in a team
Duration: 120 seconds
Talk Track
Casey: Run in master account.
Loop through all accounts and create an account budget construct
Budget construct does the budget, notifications, and sns topic
Include daily limit and emails for notifications
Include chatbot from budget SNS topic