The document summarizes Tiago Henriques' presentation on continuous deployment at the AWS Summit 2013 in Tel Aviv. It describes how Tiago discussed using AWS services like CloudFormation to automate deployments and provision test environments on demand for low cost. It also outlines CloudOn's development and test deployment model of using "All In One" instances that allow developers to easily deploy any code branch for integration testing.
41. “…AWS seemed to be the best solution available to allow a
small, independent company to rapidly develop and test a
completely new infrastructure, and host it.
We also loved the flexibility that AWS allowed us, when
spinning up smaller test environments, for beta trials, QA,
localization, and during development. The low initial cost
was also crucial.”
Alex Evans, CTO
81. CloudOn Dev / Test Flows
AWS IL Conference
Oct 16 2013
82. What is CloudOn?
CloudOn is a versatile productivity
solution that allows you to connect with
cloud storage providers to create,
review, edit and share your Micosoft
Office files across different devices.
Proprietary and Confidential | 82
83. The CloudOn Production Environment
Provisioning
Storage
Social
Sessions DB
File Sharing
API
RDS
Proprietary and Confidential | 83
84. Production Deployment Flow
Bootsrapping
Launch Instances
install 3rd party infra (Java, Tomcat, etc)
Configure roles
Deploy CloudOn Java services
(Not using OpsWorks yet)
Proprietary and Confidential | 84
85. Dev / Test Deployment Needs
Developer Needs
Push-button deploy by developers
Deploy any branch
Several deployments in parallel
Automated Regression Needs
Deploy specific release candidate combos
Run parallel regressions
Low Cost
Proprietary and Confidential | 85
86. The CloudOn Dev/Test Deployment Model
All In One
Proprietary and Confidential | 86
87. All In One (AIO) - Deploy
A single instance hosting all CloudOn services
Launches via Jenkins Job
All In One
Allows to override defaults:
Branch and build
Instance type
Regions
Settings
Tagged by the developer name
Each CloudOn service runs on a different port, no
collision
Allows re-deploy on existing AIO
Proprietary and Confidential | 87
88. All In One – External Services
What to do with the external, AWS services?
RDS
DynamoDB
ElastiCache
RDS
SQS
SES
Proprietary and Confidential | 88
89. All In One – SQS, DynamoDB, SES
Using a shared dev account - SQS, DynamoDB, SES
New Queue, Tables created for each AIO
Keyed by the instance private IP
Old Queues and Tables (from obsolete AIOs) deleted upon
creation of the newest AIO
Proprietary and Confidential | 89
90. All In One – RDS, Memcached
Using a local mySQL, memcached on the machine
Allows each instance to have its own data
Allows exploring private schema changes
(No cost)
Proprietary and Confidential | 90
91. All In One – Cost
Medium instance (default, can be changed)
Most AIOs are automatically destroyed at midnight
(unless requested not to at creation time)
Weekly report on long-running AIOs
(still find rogue AIOs running for too long…)
Proprietary and Confidential | 91
92. All In One – Additional Benefits
•
•
•
•
•
•
Push-button deploy by developers
On demand
Easy end-to-end integration test on AWS
Any branch and version
Allows operational testing
Allows sandboxing for QA, partners
Proprietary and Confidential | 92