Application architecture considerations i. SOA ii. Chunky vs. chatty iii. Designing for failure iv. Services over servers
Amazon Web Services Product catalog tour / history i. Terminology ii. Geography iii. Billing model iv. Deep dive 1. EC2 2. S3 3. RDS 4. Route53 5. IAM 6. CloudFormation
Lab: Deploying basic infrastructure on AWS using best practices . Security i. Redundancy ii. Repeatability
Day 2: DevOps
The philosophy
Predecessors (Lean manufacturing, agile development) i. Infrastructure as code ii. Job roles and functions iii. The politics
Configuration management Why it’s critical when working with IaaS i. Overview of the options: Puppet, Chef, SaltStack, etc. ii. Linux vs. Windows challenges iii. Lab: Chef
Continuous integration Proper source code branching strategies i. Deployment models (blue-green, etc..) ii. Testing/QA automation 1. Unit tests 2. Integration/regression tests 3. Performance testing iii. Lab: Jenkins
Monitoring Monitoring services, not servers i. Leveraging CloudWatch and SNS effectively ii. Troubleshooting complex, distributed applications iii. Lab: Elasticsearch/Kibana/Logstash
Alerting/logging i. Instrumenting the application ii. Pushing vs polling iii. Incident management procedures 1. Reverting infrastructure 2. DR strategies
Day 3: Capstone
Tying everything together by deploying a simple Java app into a multi-environment, highly-available deployment on AWS. Cloudformation template to launch infrastructure i. Provision servers using Chef ii. Load test to see it autoscale and watch the usage graphs iii. Make some code changes and push them through the pipeline
Discussion about RBN i. Important KPIs for a DevOps organization ii. Lessons learned over the years