1. Enterprise Dev and Test
Lunch and Learn Series
Joe Ziegler – AWS Technical Evangelist
@jiyosub
Credit : Ryan Shuttleworth
2. Development & test
Explore AWS benefits with a ‘non-production’ use case
Create agility in development & test whilst ‘learning cloud’
Exercise elasticity and automation to real advantage
3. Agenda
Why AWS for development & test?
AWS services that can be employed
Common dev-test patterns
Where to go next
7. Projects start and stop frequently
Required for short period of time
Golden masters preferred
Disposable Numerous
8. Projects start and stop frequently Many environments support an app
Required for short period of time Preservation of known configurations
Golden masters preferred Overlapping development cycles
Disposable Numerous
9. Projects start and stop frequently Many environments support an app
Required for short period of time Preservation of known configurations
Golden masters preferred Overlapping development cycles
Development & test in the cloud
11. Take lots of it when you need it
Unlimited elastic capacity
Development & test in the cloud
12. Take lots of it when you need it Throw it away when you don’t
Unlimited elastic capacity Cost optimization
Development & test in the cloud
13. Take lots of it when you need it Throw it away when you don’t
Unlimited elastic capacity Cost optimization
Development & test in the cloud
Preserve it for future reference
Durable imaging & storage
14. Take lots of it when you need it
The elastic datacenter
Spinning up environments as you need them
Packaged applications
Development and test frameworks in AWS
Testing at scale
Rolling out to production
15. Take lots of it when you need it
The elastic datacenter
Spinning up environments as you need them
Packaged applications
Development and test frameworks in AWS
Testing at scale
Rolling out to production
27. Take lots of it when you need it
The elastic datacenter
Spinning up environments as you need them
Packaged applications
Development and test frameworks in AWS
Testing at scale
Rolling out to production
28. Do it yourself Beanstalk CloudFormation
Spinning up environments in a way that suits you
AMIs, snapshots,
boostrapping
Using core AWS features to set
up an environment to meet your
needs
Use console or enact through
simple scripting
29. Do it yourself Beanstalk CloudFormation
Spinning up environments in a way that suits you
AMIs, snapshots, Managed standard
boostrapping containers
Using core AWS features to set Give development & test
up an environment to meet your environments to developers
needs direct from IDEs
Use console or enact through Configure containers to meet
simple scripting your needs through properties
30. Do it yourself Beanstalk CloudFormation
Spinning up environments in a way that suits you
AMIs, snapshots, Managed standard Declaratively defined
boostrapping containers to your requirements
Using core AWS features to set Give development & test Take full control of complex
up an environment to meet your environments to developers environments using Cloud
needs direct from IDEs Formation template language
Use console or enact through Configure containers to meet Generate environment
simple scripting your needs through properties specifications as you build
software
31. Do it yourself Beanstalk CloudFormation
Spinning up environments in a way that suits you
AMIs, snapshots, Managed standard Declaratively defined
boostrapping containers to your requirements
Using core AWS features to set Give development & test Take full control of complex
up an environment to meet your environments to developers environments using Cloud
needs direct from IDEs Formation template language
Use console or enact through Configure containers to meet Generate environment
simple scripting your needs through properties specifications as you build
software
32. Do it yourself Beanstalk CloudFormation
Quickly deploy and manage apps in AWS…
33. Do it yourself Beanstalk CloudFormation
…into a range of containers
.Net Java Node.js
PHP Python Ruby
34. Do it yourself Beanstalk CloudFormation
Application package is deployed into Beanstalk
35. Do it yourself Beanstalk CloudFormation
Which creates the container in EC2
User Application
Application Service
HTTP Service
Language Interpreter
Operating System
Host
36. Do it yourself Beanstalk CloudFormation
Beanstalk takes care of the environment…
37. Do it yourself Beanstalk CloudFormation
…adding Elastic Load Balancer…
38. Do it yourself Beanstalk CloudFormation
…Auto Scaling groups
39. Do it yourself Beanstalk CloudFormation
…and launching instances
40. Do it yourself Beanstalk CloudFormation
…all wired into the Beanstalk framework
41. Do it yourself Beanstalk CloudFormation
…and published under a CNAME
42. Do it yourself Beanstalk CloudFormation
…with logs and app versions held in S3
43. Do it yourself Beanstalk CloudFormation
Spinning up environments in a way that suits you
AMIs, snapshots, boos Managed standard Declaratively defined
trapping containers to your requirements
Using core AWS features to set Give development & test Take full control of complex
up an environment to meet your environments to developers environments using Cloud
needs direct from IDEs Formation template language
Use console or enact through Configure containers to meet Generate environment
simple scripting your needs through properties specifications as you build
software
44. Do it yourself Beanstalk CloudFormation
CloudFormation components & terminology
CloudFormation
Template Stack
JSON formatted file Framework Configured AWS services
Parameter definition Stack creation Comprehensive service support
Resource creation Stack updates Service event aware
Configuration actions Error detection and rollback Customisable
45. Do it yourself Beanstalk CloudFormation
The benefit of templated environments
Procedural definition
Create it programmatically
Template
46. Do it yourself Beanstalk CloudFormation
The benefit of templated environments
Procedural definition Known configuration
Create it programmatically Store stack configuration in
Template source control
47. Do it yourself Beanstalk CloudFormation
The benefit of templated environments
Procedural definition Known configuration
Create it programmatically Store stack configuration in
Template source control
Parameter driven
Dynamic and user-driven
templates
48. Do it yourself Beanstalk CloudFormation
The benefit of templated environments
Procedural definition Known configuration
Create it programmatically Store stack configuration in
Template source control
Parameter driven Collaboration
Dynamic and user-driven Share templates with ease as
templates just files
49.
50. Complex technology stack – development = 46 servers
All configuration and deployment manual
56 days and 6 teams to build a new environment
Impact
Slow project start up
Only run one major project at a time
Lack of innovation
51. • Developers can run up or tear down
environments
• Ability to stand up 8 distinct
environments quickly
• Time to set up environment reduced
from 56 days to 6 hours
52. Take lots of it when you need it
The elastic datacenter
Spinning up environments as you need them
Packaged applications
Development and test frameworks in AWS
Testing at scale
Rolling out to production
54. http://aws.amazon.com/sap/
Certification of SAP BusinessObjects business intelligence
solutions and SAP Rapid Deployment Solutions (RDS) on
Linux & Windows Server 2008 R2
Certification of SAP Business All-in-One on Linux & Windows
Server 2008 R2
Certified database engines for production SAP deployments:
MaxDB, DB2, MS SQL Server 2008 R2
55. Platform and application
templates now available
Reduce implementation times from
days to minutes and include Oracle
Enterprise Linux, Oracle Database
11gR2, Oracle E-Business
Suite, Oracle JD Edwards Enterprise
One, and Oracle PeopleSoft.
56. Take lots of it when you need it
The elastic datacenter
Spinning up environments as you need them
Packaged applications
Development and test frameworks in AWS
Testing at scale
Rolling out to production
57. Frameworks & environments
AWS is open and flexible – build your dev-test systems
Source control Project management
Leverage EC2 to run popular source Add integrated project
control systems management and issue tracking
Workstations Build servers
Enable standard build Use EC2 horsepower to drive build
developer/test workstations servers and continuous integration
58.
59.
60.
61. Take lots of it when you need it
The elastic datacenter
Spinning up environments as you need them
Packaged applications
Development and test frameworks in AWS
Testing at scale
Rolling out to production
62. Testing at scale
Create environments to support specific test types
Unit & regression Load & performance
Scale up and parallel run unit and Utilize spot market for generating
regression plans in a fraction of the load and test how applications
time perform with auto-scaling
A/B Security
Run A/B scenario testing with Create sandboxes for aggressive
replica stacks security testing
68. Take lots of it when you need it
The elastic datacenter
Spinning up environments as you need them
Packaged applications
Development and test frameworks in AWS
Testing at scale
Rolling out to production
69. Elastic
Load
Balancer
Auto Scaling
Group
V1
Amazon
Relational
Database Service
(RDS)
70. Elastic
Load
Balancer
Auto Scaling Auto Scaling
Group Group
V1 V2
Amazon
Relational
Database Service
(RDS)
71. Elastic
Load
Balancer
Auto Scaling Auto Scaling
Group Group
V1 V2
Amazon
Relational
Database Service
(RDS)
72. Elastic
Load
Balancer
Auto Scaling Auto Scaling
Group Group
V1 V2
Amazon
Relational
Database Service
(RDS)
73. Elastic
Load
Balancer
Auto Scaling
Group
V2
Amazon
Relational
Database Service
(RDS)
74.
75. Take lots of it when you need it Throw it away when you don’t
Unlimited elastic capacity Cost optimization
Development & test in the cloud
Preserve it for future reference
Durable imaging & storage
76. Take lots of it when you need it Throw it away when you don’t
Unlimited elastic capacity Cost optimization
Development & test in the cloud
Preserve it for future reference
Durable imaging & storage
77. Instance types
On-demand instances Reserved instances Spot instances
Unix/Linux instances start at 1- or 3-year terms Bid on unused EC2 capacity
$0.02/hour
Pay low up-front fee, receive significant hourly Spot Price based on supply/demand,
Pay as you go for compute power discount determined automatically
Low cost and flexibility Low Cost / Predictability Cost / Large Scale, dynamic workload handling
Pay only for what you use, no up-front Helps ensure compute capacity is available
commitments or long-term contracts when needed
Use Cases: Use Cases: Use Cases:
Applications with short term, spiky, or Applications with steady state or predictable Applications with flexible start and end times
unpredictable workloads; usage
Applications only feasible at very low compute
Application development or testing Applications that require reserved capacity, prices
including disaster recovery
78. Turn it off when not in use
Daily CPU Load
14
12
10
Load
8
6
4
2
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Hour
79. Turn it off when not in use
Daily CPU Load
14
12
10
Load
8
6
4
25% Savings
2
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Hour
80. Turn it off when not in use
Auto-scaling
Auto-scaling
by schedule
by schedule
14
12
10
Load
8
6
4
2
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Hour
81.
82. Take lots of it when you need it Throw it away when you don’t
Unlimited elastic capacity Cost optimization
Development & test in the cloud
Preserve it for future reference
Durable imaging & storage
83. Take lots of it when you need it Throw it away when you don’t
Unlimited elastic capacity Cost optimization
Development & test in the cloud
Preserve it for future reference
Durable imaging & storage
84. Disposable environments can be recreated
Dispose for cost optimization, but preserve critical configurations
85. Disposable environments can be recreated
Dispose for cost optimization, but preserve critical configurations
AMIs
Create a catalog of AMIs for
each iteration of an application
Stored in S3
86. Disposable environments can be recreated
Dispose for cost optimization, but preserve critical configurations
AMIs Snapshots
Create a catalog of AMIs for Save disk images with ‘frozen’
each iteration of an application data sets and attach to instances
Stored in S3 when needed
87. Disposable environments can be recreated
Dispose for cost optimization, but preserve critical configurations
AMIs Snapshots Templates
Create a catalog of AMIs for Save disk images with ‘frozen’ Source control infrastructure
each iteration of an application data sets and attach to instances templates with every
Stored in S3 when needed application version
88. Disposable environments can be recreated
Dispose for cost optimization, but preserve critical configurations
AMIs Snapshots Templates
Create a catalog of AMIs for Save disk images with ‘frozen’ Source control infrastructure
each iteration of an application data sets and attach to instances templates with every
Stored in S3 when needed application version
Roll back and recreate an environment for any given application version
89. “The AWS Cloud brings business agility as Shell is
able to deploy services much more quickly”
Johan Krebbers
Vice President of Architecture
The Story The Benefits
Global oil and gas company No minimum commitment up front and pay per use
brings significant savings
Using AWS since 2010
Fast provisioning within minutes for many
Operationalising their cloud strategy
applications
Shell Foundation Platform – an IT framework – is
Elasticity – the ability to expand and contract IT
AWS approved
infrastructure as needed
Core operational applications running in production
on AWS
Development and test environments running on
AWS
93. The cloud makes development & test easy
You can make extensive savings by leveraging elasticity
Provides unique toolsets to help you create and manage environments
Let’s you perform at scale and agility beyond traditional physical environments
Vertical scaling on commodity hardware. Perfect for Hadoop.
SERVICE
Defaults to min 1
Log files and application versions in S3
Vertical scaling on commodity hardware. Perfect for Hadoop.
Vertical scaling on commodity hardware. Perfect for Hadoop. 100 instances in Syd
Each autoscaling group uses a different set of AMIAMI-B contains the test code.
Build websites that sleep at night. Build machines only live when you need it
Build websites that sleep at night. Build machines only live when you need it
Build websites that sleep at night. Build machines only live when you need it
Build websites that sleep at night. Build machines only live when you need it
Shell started provisioning AWS services in April 2010 The Shell Foundation Platform – an IT framework – is AWS approvedThat means that the Center of Excellence has a pre-approved framework that allows LOBs to deploy cloud-approved applications onto AWSThe Shell Foundation Platform is a framework used by all new projects utilizing on-demand cloud services. The SFP is certified to run on AWS. Compliant applications built on the SFP are able to be run in production on AWS. Development and Test Environments are considered AWS ready within a VPC and may run on AWSCore operational applications running in production on AWSThe business is divided into upstream (research, extraction, production) and downstream (distribution and sales) applicationsShell is running a number of downstream applications – enterprise applications that operate the retail business – in production in the AWS CloudShell is running several development and test environments in the AWS Cloud