AWS Lunch and Learn - Agile Development
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

AWS Lunch and Learn - Agile Development

on

  • 1,019 views

AWS Lunch and Learn - Lean and Agile Development

AWS Lunch and Learn - Lean and Agile Development

Statistics

Views

Total Views
1,019
Views on SlideShare
1,018
Embed Views
1

Actions

Likes
9
Downloads
23
Comments
0

1 Embed 1

http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

AWS Lunch and Learn - Agile Development Presentation Transcript

  • 1. Lean & Agile Development Approaches Markku Lepistö Principal Technology Evangelist @markkulepisto
  • 2. IDEA%!%
  • 3. Fail%Fast% Fail%Cheap% Fail%Forward%
  • 4. Scale%Success%
  • 5. Validate%Idea%
  • 6. Minimum%Viable%Product%(MVP)% •  Release%quickly% •  Limited%core%features% •  Iterate%in%producFon% •  Business%decisions%based%on%data% % “Produc(on*is*truly*the*only*place** you*can*validate*your*code”* H%Michael%Nygard,%author%of%‘Release%it!’%
  • 7. ApplicaFon%Architecture% for%MVP’s%Core%Features%
  • 8. Tightly%Coupled,%Monolithic%(monster)%
  • 9. Decomposed%to%Services%
  • 10. Decomposed%to%Services%
  • 11. Decomposed%to%Services%
  • 12. Define%Your%MVP’s%Building%Blocks%
  • 13. Define%Your%MVP’s%Building%Blocks% Microservices*Architecture* Compute% Object%Store% Load%Balancer% SQL%Database% IdenFty%&%Access% Data%Warehouse% ApplicaFon%Lifecycle% CDN% RecommendaFon%Engine% Social%Login%SSO% BI%AnalyFcs% Web%Server% Reverse%Proxy% My%Second%Cool%Feature%My%Cool%Feature%
  • 14. Focus%
  • 15. Focus%on%Your%Core%DifferenFator%
  • 16. Outsource%UndifferenFaFng%Ones%to%Services% Amazon%EC2% Amazon%S3% ElasFc%Load%Balancing% Amazon%RDS% AWS%IAM% Amazon%RedShi]% AWS%OpsWorks% Amazon%CloudFront% EasyRec% HybridAuth% JasperSo]% Puma% Nginx% My%Second%Cool%Feature%My%Cool%Feature%
  • 17. Amazon%Web%Services%
  • 18. Regions,%Zones%and%Edge%LocaFons%
  • 19. API$ Regions Availability Zones Edge Locations Storage% S3 EBS Glacier Storage Gateway Foundation Services$ Networking% VPC Direct Connect ELB Route53 Databases RDS ElastiCacheDynamo RedShift Content Delivery CloudFront Analytics% DataPipelineEMR Kinesis EC2 Compute% WorkSpaces AWS$Global$Infrastructure$ Deployment& Management$ IAM Federation Identity & AccessMonitoring CloudWatch Deployment & Management BeanStalk Cloud Formation OpsWork CloudTrail AWS$ Global$ Infrastru cture$ Libraries, SDK’s% Web Console Interaction% Human Interaction% Support Command Line AWS$Global$Infrastructure$ Application Services$ Application Services% SES SNS SQS Elastic Transcoder CloudSearch SWF AppStream
  • 20. Discover%SW%Components%–%AWS%marketplace%
  • 21. Discover%SW%Components%–%GitHub%
  • 22. Discover%SW%Components%–%NeclixOSS%
  • 23. Services%are%Black%Boxes%Exposed%via%APIs% My%Cool%Feature% Iterate,%even%reH write%internal% implementaFon% API%is%stable,%with%few% changes,%potenFally% versioning% API%
  • 24. Loose%Coupling%Enables%ScaleHout%and%Resiliency% Use%Message%Queues%
  • 25. Loose%Coupling%Enables%ScaleHout%and%Resiliency% Use%Message%Queues% Simple%Queue%Service% (SQS)%
  • 26. Loose%Coupling%Enables%ScaleHout%and%Resiliency% Use%Idempotent%Interfaces%
  • 27. Loose%Coupling%Enables%ScaleHout%and%Resiliency% Use%Circuit%Breakers%
  • 28. Loose%Coupling%Enables%ScaleHout%and%Resiliency% Use%Circuit%Breakers% Temporarily%bypass% unresponsive%service.% Switch%to%degraded% mode%transacFons%
  • 29. Auto%Scale,%Load%Balance,%Monitor,%HA%Assure% Each%Service%Separately%
  • 30. Statelessness%Enables%ScaleHout% Separate%State%and%Data%from%Compute%Instances% Load%Balanced,%Auto%Scaling% pool%of%EC2%Workers% Scalable%Services%for% State%and%Data% ElastiCacheDynamoDBS3
  • 31. Amazon%DynamoDB% Zero%Admin%NoSQL%Service% Unlimited%Storage% Provisioned%Throughput% <10ms%response%Fme% Durable%on%SSD%
  • 32. CloudHSOA% S O A •  CloudHnaFve%New%ApplicaFons% •  SOA%principles%leveraging%Cloud%services% •  Architect%for% –  AutomaFon% –  Scale% –  Cost% –  Availability% –  Data% •  ApplicaFons%are%% –  AlwaysHon% –  SelfHhealing% –  AnFHfragile%
  • 33. Implemented%by%TwoHPizza%Teams% •  Small,%autonomous%teams% •  Full%responsibility%for%Service%X% •  Decoupled%launch%schedules% •  No%handovers% •  Trust% %
  • 34. Puing%It%All%Together%into%a%SoluFon%
  • 35. Puing%It%All%Together%into%a%SoluFon%
  • 36. Puing%It%All%Together%into%a%SoluFon%
  • 37. Puing%It%All%Together%into%a%SoluFon%
  • 38. =$ Programmable%Placorm%
  • 39. If%you%can%program%it% You%can%automate%it%
  • 40. AWS%SDKs%
  • 41. Java%SDK% …! res = ec2.runInstances new RunInstancesRequest([! !imageId: "ami-00754474", ! !keyName: ”MyKeyPair", ! !instanceType: ”m3.medium", ! !securityGroups: [”MySecurityGroup"],! !minCount: 1,! !maxCount: 1,! !userData:! !"AWSWeb.war".bytes.encodeBase64().toString()! !])! …! !
  • 42. Unified%Command%Line%Interface% ~ $ aws ec2 run-instances --image-id ami-554ac83c --min-count 1 --max-count 1 --key-name MyKeyPair --security-groups MySecurityGroup
  • 43. AMI$AMI$AMI$ YOUR$CODE$ CORE$SERVICES$ 3rd$PARTY$ LIBRARIES$ OPERATING$SYSTEM$ YOUR$CODE$ CORE$SERVICES$ 3rd$PARTY$ LIBRARIES$ OPERATING$SYSTEM$ YOUR$CODE$ CORE$SERVICES$ 3rd$PARTY$ LIBRARIES$ OPERATING$SYSTEM$ PreHbaked%Image% Base%OS%Image%+%OrchestraFon%%
  • 44. 3rd%Party%ConfiguraFon%Mgmt%&%OrchestraFon%Tools%
  • 45. AWS$OpsWorks$ AWS$ CloudFormaHon$ AWS$ElasHc$ Beanstalk$ DevOps$framework$for$ applicaHon$lifecycle$ management$and$ automaHon$ Templates$to$deploy$&$ update$infrastructure$ as$code$ Automated%resource$ management$–$web$ apps$made$easy$ DIY$/$$ On$Demand$ DIY,$on$demand$ resources:$EC2,$S3,$ custom$AMI’s,$etc.$ ControlConvenience AWS%Services%for%ApplicaFon%Lifecycle%Management%
  • 46. CloudFormaFon% Template%
  • 47. SOURCE CODE REPOSITORY DNS CONTINUOUS INTEGRATION SERVER PROJECT MANAGEMENT SERVER BUILDS DATABASE STORAGE
  • 48. CLOUDFORMATION TEMPLATE BUILD + DB SNAPSHOT
  • 49. Application Versions + Infrastructure Versions ApplicaFon% Your%Code% Infrastructure% To%Run%and%Support%Your%Code%
  • 50. Deliver%ConFnuously% •  Infrastructure%as%Code% – Everything%now%programmable% – App%=%code%+%infrastructure%descripFon% – In%version%control% •  Full%test%automaFon% •  Frequent%small%risk%&%size%builds% •  Successful%builds%to%producFon%
  • 51. test% ConFnuous%IntegraFon% code% build%plan% Agile%Development% Source%hop://www.collab.net% deploy% operate% collaboraFon% value% DevOps% release% ConFnuous%Delivery%
  • 52. Go%Global%–%in%Minutes% •  Launch%in%a%test%market% •  A/B%TesFng% •  Collect%all%logs% •  AnalyFcs%!%Insights%!%Iterate% % Once%you%hit%the%sweet%spot%–% •  Replicate%the%applicaFon%to%all%regions%
  • 53. Measure%&%Log%Everything% Amazon%CloudWatch%
  • 54. COLLECT%|%%STORE%%|%ANALYZE%|%SHARE% Import%Export% Glacier% S3% EC2% Redshi]%DynamoDB%% EMR% Data%Pipeline% S3%Direct%Connect% Leverage%AWS%Big%Data%Services% CloudFront% Kinesis%
  • 55. Keep%IteraFng%
  • 56. Keep%InnovaFng%
  • 57. «%Want%to%increase%innovaFon?% Lower$the$cost$of$failure$»% $ Joi%Ito% MIT%MediaLabs%
  • 58. Fail%Fast%&%Cheap%H%Scale%Success% Experiment$ OXen$ $ Fail$quickly$at$a$ low$cost$ $ More$ InnovaHon$ Experiment$ Infrequently$ $ Failure$is$ expensive$ $ Less$InnovaHon$ ONZPREMISE$
  • 59. SHOW$ME$ALREADY$!$
  • 60. DEMOS% 1.  AWS%ElasFc%Beanstalk%%% %Deploy%to%ProducFon%using%Git% 2.  AWS%CloudFormaFon% %% %Upgrade%a%Deployed%Template%% 3.  AWS%SDK%for%Ruby% % %Control%EC2,%S3%&%RDS%
  • 61. Thank%you% Markku%Lepistö%–%Principal%Technology%Evangelist% @markkulepisto%