Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Automating AWS
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Andrew Best
July 19, 2016
Programming
2
380
Automating AWS
Using Octopus, Cloud Formation and Powershell DSC to build immutable phoenix environments in AWS
Andrew Best
July 19, 2016
Tweet
Share
More Decks by Andrew Best
See All by Andrew Best
The Surprising Truths Behind Good Mentoring
andrewabest
0
120
Learn Authentication The Hard Way
andrewabest
0
340
Finding The Sweet Spot BNE
andrewabest
1
240
Finding The Sweet Spot
andrewabest
0
450
Conventional Wisdom
andrewabest
1
460
DSC a-b-c's
andrewabest
0
150
AWS a-b-c's
andrewabest
3
160
What is Git?
andrewabest
0
220
Client Side Testing
andrewabest
0
71
Other Decks in Programming
See All in Programming
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
2k
ご飯食べながらエージェントが開発できる。そう、Agentic Engineeringならね。
yokomachi
1
270
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
200
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
8
2.1k
メタプログラミングで実現する「コードを仕様にする」仕組み/nikkei-tech-talk43
nikkei_engineer_recruiting
0
140
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
110
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.6k
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
910
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
320
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
12
6.7k
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
810
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
2
180
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
360
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
170
Technical Leadership for Architectural Decision Making
baasie
2
270
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
330
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
140
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Skip the Path - Find Your Career Trail
mkilby
0
71
Statistics for Hackers
jakevdp
799
230k
Ruling the World: When Life Gets Gamed
codingconduct
0
160
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
480
Building Adaptive Systems
keathley
44
2.9k
Transcript
Automating AWS
Part 1 Automating Infrastructure
Page Birds-eye view / Copyright ©2014 by Readify Pty Ltd
3 Step 1: Deploy infrastructure Step 2: Bootstrap instances Step 3: Deploy software
Page The infrastructure / Copyright ©2014 by Readify Pty Ltd
4
Page / Copyright ©2014 by Readify Pty Ltd 5 Deploy
Infrastructure Bootstrap Instances Register Tentacle Deploy Software Fire Project Trigger Nothing up my sleeve…
Page / Copyright ©2014 by Readify Pty Ltd 6 Deploy
Infrastructure Bootstrap Instances Register Tentacle Deploy Software Fire Project Trigger Nothing up my sleeve…
Page Step 1: Deploy infrastructure › Deploy.ps1 › Package and
upload bootstrapping resources to S3 › Package and upload configuration variables to S3 › Do we need to deploy a new stack? › Yes - New-CFNStack › No - New-CFNChangeSet › CloudFormation resource creation based on template / Copyright ©2014 by Readify Pty Ltd 7
Page / Copyright ©2014 by Readify Pty Ltd 8 Deploy
Infrastructure Bootstrap Instances Register Tentacle Deploy Software Fire Project Trigger Nothing up my sleeve…
Page Step 2: Bootstrap instances › EC2 userdata › cfn-init.exe
› AWS::CloudFormation::Init › Powershell DSC › Octopus tentacle › tentacle.exe --register-with / Copyright ©2014 by Readify Pty Ltd 9
Page / Copyright ©2014 by Readify Pty Ltd 10 Deploy
Infrastructure Bootstrap Instances Register Tentacle Deploy Software Fire Project Trigger Nothing up my sleeve…
Page Step 3: Deploy software › Prior to Octopus 3.4
=> DSC › Octopus 3.4 => Project Triggers › Software is deployed by Octopus via the Project Trigger › DSC polls a local health check endpoint › ASG waits to be signalled before completion › DSC => cfn-signal.exe › fin / Copyright ©2014 by Readify Pty Ltd 11
Page / Copyright ©2014 by Readify Pty Ltd 12 Deploy
Infrastructure Bootstrap Instances Register Tentacle Deploy Software Fire Project Trigger Nothing up my sleeve…
Part 2 Immutable infrastructure
Page Updating CF stacks What updating stacks used to be
like / Copyright ©2014 by Readify Pty Ltd 14 Are you feeling lucky?
Page / Copyright ©2014 by Readify Pty Ltd 15
Page CloudFormation Change Sets › Supply your updated template to
a Change Set via New-CFNChangeSet › AWS diffs the updated template against the current stack › A detailed list of what changes and what doesn’t is provided › Details the dependency chain and how it is effected / Copyright ©2014 by Readify Pty Ltd 16
Page Immutability › Rev infrastructure package => refresh instances ›
CI + CloudFormation can do this for us › Inject version into Launch configuration userdata › Triggers a replacement of the launch configuration › How do we stay HA while our infrastructure refreshes? / Copyright ©2014 by Readify Pty Ltd 17
Page AutoScaleGroup Update Policies › Allows an ASG to stay
HA while undergoing a refresh › Keeps a number of instances in service while terminating stale and creating fresh instances › Works with cfn-signal.exe to ensure updates are successful › Rolls back on failure / Copyright ©2014 by Readify Pty Ltd 18
Part 3 Phoenix environments The really really cool part!
Page Deploying feature branches › The Dream: › Developer checks
in code on a feature branch › The feature branch is built by our CI service of choice › Once complete, our CI service then invokes Octopus and triggers an isolated stack of hardware to be deployed for it › Once the hardware is ready, the feature branch’s payload is automatically deployed to it by Octopus › From check-in to our feature running on new, isolated compute. Ready to test and destroy when we are done / Copyright ©2014 by Readify Pty Ltd 20
Page Octopus 3.4 › Introduces new features that allow us
to work with a tonne more flexibility in elastic environments › Multi-tenancy › Project Triggers / Auto Deploy Overrides › Machine Policies / Copyright ©2014 by Readify Pty Ltd 21
Page Setup › We have built a new feature ryan
on an isolated feature branch! We push the code up to our repository › Our CI service notices this and creates a release for our feature branch package, with a semver version number 1.0.0-ryan0001 / Copyright ©2014 by Readify Pty Ltd 22
Page Octo 3.4 – Multi-tenancy › We created a tenant
ryan0001for our feature branch –we are using the semver from the built package as a naming convention › Allows us to isolate and group sets of machines within an environment › Allows us to configure projects with tenant-specific variables › Allows us to control what software gets deployed to what sets of machines via triggers within an environment / Copyright ©2014 by Readify Pty Ltd 23
Page Octo 3.4 – Auto Deploy Overrides › We created
an auto deploy override for our feature branch tenant ryan0001 for the feature branch package version 1.0.0-ryan0001 › Part of Project Triggers › Auto Deploy Overrides allow us to say ‘when a project trigger fires, and the machine that triggered it is for a given tenant, deploy an explicit version of the project to the machine, not the default’ / Copyright ©2014 by Readify Pty Ltd 24
Page Octo 3.4 – Machine Policies › When our instances
register with Octopus via tentacle.exe, they indicate a machine policy › When we clean up our CloudFormation, how do we ensure Octopus is cleaned up as well? › Old way: AWS Lambda › New way: Octopus Machine Policies › Healthchecks and unavailable machines › Cleanup unavailable machines / Copyright ©2014 by Readify Pty Ltd 25
Page Living The Dream 26
Thank you Andrew Best | @_andrewb |
[email protected]