Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
// Feed your brain            GR8Conf Europe 2012       gr8.technologies.each{               June 6th-8th         yourBrai...
Slides onlinehttp://slideshare.net/joesondow   @joesondow #gr8conf
Agenda
AgendaWho am I? Why am I here?
AgendaWho am I? Why am I here?Asgard, Screen shots
AgendaWho am I? Why am I here?Asgard, Screen shotsNetflix, Freedom and Responsibility
AgendaWho am I? Why am I here?Asgard, Screen shotsNetflix, Freedom and ResponsibilityRegional URLs
AgendaWho am I? Why am I here?Asgard, Screen shotsNetflix, Freedom and ResponsibilityRegional URLsCloud Deployment Model
AgendaWho am I? Why am I here?Asgard, Screen shotsNetflix, Freedom and ResponsibilityRegional URLsCloud Deployment ModelOffl...
AgendaWho am I? Why am I here?Asgard, Screen shotsNetflix, Freedom and ResponsibilityRegional URLsCloud Deployment ModelOffl...
Who am I? @joesondow #gr8conf
Who am I? @joesondow #gr8conf
Who am I?Joe Sondow @joesondow #gr8conf
Who am I?Joe SondowNetflix since 2010 @joesondow #gr8conf
Who am I?Joe SondowNetflix since 2010Asgard lead @joesondow #gr8conf
Who am I?Joe SondowNetflix since 2010Asgard leadGrails @joesondow #gr8conf
Who am I?Joe SondowNetflix since 2010Asgard leadGrailsjQuery @joesondow #gr8conf
Why am I here? @joesondow #gr8conf
Why am I here?
Why am I here?Sell you something
Why am I here?Sell you somethingDiscuss business plans
Why am I here?Sell you somethingDiscuss business plansAnswer technical questions
Why am I here?Sell you somethingDiscuss business plansAnswer technical questionsBe a smaller fish in AWS
Why am I here?Sell you somethingDiscuss business plansAnswer technical questionsBe a smaller fish in AWSGive back to commun...
Why am I here?Sell you somethingDiscuss business plansAnswer technical questionsBe a smaller fish in AWSGive back to commun...
Asgard
Asgard
AsgardScreen shots
AsgardApplication list
AsgardAuto Scaling Group list
AsgardCluster deployment, ready for fast rollback
Asgard
AsgardCloud deployment
AsgardCloud deploymentCloud management
AsgardCloud deploymentCloud managementStarted 2010
AsgardCloud deploymentCloud managementStarted 2010Open source in 2012
AsgardCloud deploymentCloud managementStarted 2010Open source in 2012  Follow @NetflixOSS
AsgardCloud deploymentCloud managementStarted 2010Open source in 2012   Follow @NetflixOSS100’s of Jira tickets
AsgardCloud deploymentCloud managementStarted 2010Open source in 2012   Follow @NetflixOSS100’s of Jira ticketsActively dev...
Joe Sondow          Clay McCoy        Jason Gritman   @joesondow          @claymccoy        @jgritmanAsgard TeamJune 2012(...
With more than 25 million streaming members in theUnited States, Canada, Latin America, the UnitedKingdom and Ireland, Net...
Freedom and Responsibility
Freedom and Responsibility
Freedom and ResponsibilityCloud SOA
Freedom and ResponsibilityCloud SOA100’s of services
Freedom and ResponsibilityCloud SOA100’s of servicesSmall teams
Freedom and ResponsibilityCloud SOA100’s of servicesSmall teamsIndependent releases
Freedom and ResponsibilityCloud SOA100’s of servicesSmall teamsIndependent releasesControlled chaos
Regional URLs
Regional URLsLet’s see some code
Regional URLsCloud object URLs were unique, conventional, intuitiveDefault Grails URL mapping is excellent
Regional URLsLater, Netflix needed to use multiple Amazon regions
Regional URLsRegion is another URL dimensionAdd URL mapping, but don’t break existing links
Regional URLsRegionService.groovy (excerpt)
Regional URLsRegionService.groovy (excerpt)
Regional URLsSome controllers should never be regionalRegionService detects RegionAgnostic annotation
Cloud deployment model
Cloud deployment modelApplications and Clusters
Cloud deployment model
Cloud deployment model   Auto Scaling      Group
Cloud deployment model    Auto Scaling       Group    Launch  Configuration
Cloud deployment model                   Elastic Load                     Balancer    Auto Scaling       Group    Launch  ...
Cloud deployment model                    Elastic Load                      Balancer    Auto Scaling       Group    Launch...
Cloud deployment model                    Elastic Load                      Balancer    Auto Scaling       Group          ...
Cloud deployment model                    Elastic Load                      Balancer    Auto Scaling       Group          ...
Cloud deployment model                    Elastic Load                      Balancer    Auto Scaling       Group          ...
Cloud deployment model                    Elastic Load                      Balancer    Auto Scaling       Group          ...
Cloud deployment model                    Elastic Load                      Balancer    Auto Scaling       Group          ...
Cloud deployment model
Cloud deployment model                    Search
Cloud deployment model            API     Search
Cloud deployment model                     Ratings            API     Search
Cloud deployment modelStreaming Starts                          Ratings                   API   Search
Cloud deployment modelStreaming Starts                          Ratings                   API   SearchAutocomplete
Cloud deployment model                   Sign UpStreaming Starts                              Ratings                     ...
Cloud deployment model                   Sign UpStreaming Starts                                   Ratings                ...
Inventing the Application
Inventing the Application Problem: Application is not an Amazon concept Solution: Create an Application domain in SimpleDB...
Fast Rollback
Fast RollbackOptimism causes outages
Fast RollbackOptimism causes outagesProduction traffic is unique
Fast RollbackOptimism causes outagesProduction traffic is uniqueKeep old version running
Fast RollbackOptimism causes outagesProduction traffic is uniqueKeep old version runningSwitch traffic to new version
Fast RollbackOptimism causes outagesProduction traffic is uniqueKeep old version runningSwitch traffic to new versionMonitor...
Fast RollbackOptimism causes outagesProduction traffic is uniqueKeep old version runningSwitch traffic to new versionMonitor...
Fast Rollback
Fast Rollback                     api-frontend   api-usprod-v007
Fast Rollback                     api-frontend   api-usprod-v007                  api-usprod-v008
Fast Rollback                     api-frontend   api-usprod-v007                  api-usprod-v008
Fast Rollback                     api-frontend   api-usprod-v007                  api-usprod-v008
Fast Rollback                     api-frontend   api-usprod-v007                  api-usprod-v008
Fast Rollback                     api-frontend   api-usprod-v007
Inventing the Cluster
Inventing the Cluster Problem: Two ASGs with one function but different names Solution: Append version number in reserved ...
Inventing the ClusterInstead of keeping a database in sync, use namingconventions to store the source in truth in Amazon’s...
Offline Development
Offline DevelopmentMakes on a plane
Offline DevelopmentMock dataMock behaviorSystem property switch offline=true
Mock Datahttp://asgardprod/us-east-1/autoScaling/list.json
Mock DataParse JSON
Mock BehaviorOverride Amazon Java client methods
System Propertygrails run-app -Doffline=true
Why not the AWS console?
Why not the AWS console?No, not to keep me busy
Why not the AWS console?
Why not the AWS console?
Why not the AWS console?Hide keys
Why not the AWS console?Hide keysCustomize model
Why not the AWS console?Hide keysCustomize modelEnforce conventions
Why not the AWS console?Hide keysCustomize modelEnforce conventionsAutomate workflow
Why not the AWS console?Hide keysCustomize modelEnforce conventionsAutomate workflowLog changes
Why not the AWS console?Hide keysCustomize modelEnforce conventionsAutomate workflowLog changesIntegrate systems
Why not the AWS console?Hide keysCustomize modelEnforce conventionsAutomate workflowLog changesIntegrate systemsCreate REST...
@NetflixOSS
@NetflixOSShttp://techblog.netflix.com
@NetflixOSShttp://techblog.netflix.comOpen source announcement...
@NetflixOSShttp://techblog.netflix.comOpen source announcement...
@NetflixOSSThank you
@NetflixOSSThank youQuestions?  @joesondow  slideshare.net/joesondow  linkedin.com/in/joesondow
Asgard, the Grails App that Deploys Netflix to the Cloud
Asgard, the Grails App that Deploys Netflix to the Cloud
Upcoming SlideShare
Loading in …5
×

Asgard, the Grails App that Deploys Netflix to the Cloud

36,671 views

Published on

Overview and technical exploration of Asgard, a graphical web console created by Netflix for cloud deployments and operations. Presented at the GR8 Conference in Copenhagen, Denmark, June 8, 2012.

Apple Keynote version with animations available at http://bit.ly/asgardgr8denmark

  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://urlzs.com/UABbn } ......................................................................................................................... Download Full EPUB Ebook here { https://urlzs.com/UABbn } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL. BOOKS INTO AVAILABLE FORMAT, ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL PDF EBOOK here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL EPUB Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... 1.DOWNLOAD FULL doc Ebook here { https://tinyurl.com/y8nn3gmc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @Joe Sondow, thanx for interesting slide. r u still using grails as a main platform in Netflix?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Asgard, the Grails App that Deploys Netflix to the Cloud

  1. 1. // Feed your brain GR8Conf Europe 2012 gr8.technologies.each{ June 6th-8th yourBrain << it Copenhagen, Denmark }The Grails App that Deploys Netflix to the CloudJoe Sondow, Netflix @joesondow #gr8conf
  2. 2. Slides onlinehttp://slideshare.net/joesondow @joesondow #gr8conf
  3. 3. Agenda
  4. 4. AgendaWho am I? Why am I here?
  5. 5. AgendaWho am I? Why am I here?Asgard, Screen shots
  6. 6. AgendaWho am I? Why am I here?Asgard, Screen shotsNetflix, Freedom and Responsibility
  7. 7. AgendaWho am I? Why am I here?Asgard, Screen shotsNetflix, Freedom and ResponsibilityRegional URLs
  8. 8. AgendaWho am I? Why am I here?Asgard, Screen shotsNetflix, Freedom and ResponsibilityRegional URLsCloud Deployment Model
  9. 9. AgendaWho am I? Why am I here?Asgard, Screen shotsNetflix, Freedom and ResponsibilityRegional URLsCloud Deployment ModelOffline Development
  10. 10. AgendaWho am I? Why am I here?Asgard, Screen shotsNetflix, Freedom and ResponsibilityRegional URLsCloud Deployment ModelOffline DevelopmentWhy not the AWS Console?
  11. 11. Who am I? @joesondow #gr8conf
  12. 12. Who am I? @joesondow #gr8conf
  13. 13. Who am I?Joe Sondow @joesondow #gr8conf
  14. 14. Who am I?Joe SondowNetflix since 2010 @joesondow #gr8conf
  15. 15. Who am I?Joe SondowNetflix since 2010Asgard lead @joesondow #gr8conf
  16. 16. Who am I?Joe SondowNetflix since 2010Asgard leadGrails @joesondow #gr8conf
  17. 17. Who am I?Joe SondowNetflix since 2010Asgard leadGrailsjQuery @joesondow #gr8conf
  18. 18. Why am I here? @joesondow #gr8conf
  19. 19. Why am I here?
  20. 20. Why am I here?Sell you something
  21. 21. Why am I here?Sell you somethingDiscuss business plans
  22. 22. Why am I here?Sell you somethingDiscuss business plansAnswer technical questions
  23. 23. Why am I here?Sell you somethingDiscuss business plansAnswer technical questionsBe a smaller fish in AWS
  24. 24. Why am I here?Sell you somethingDiscuss business plansAnswer technical questionsBe a smaller fish in AWSGive back to community
  25. 25. Why am I here?Sell you somethingDiscuss business plansAnswer technical questionsBe a smaller fish in AWSGive back to communitySteal your engineers
  26. 26. Asgard
  27. 27. Asgard
  28. 28. AsgardScreen shots
  29. 29. AsgardApplication list
  30. 30. AsgardAuto Scaling Group list
  31. 31. AsgardCluster deployment, ready for fast rollback
  32. 32. Asgard
  33. 33. AsgardCloud deployment
  34. 34. AsgardCloud deploymentCloud management
  35. 35. AsgardCloud deploymentCloud managementStarted 2010
  36. 36. AsgardCloud deploymentCloud managementStarted 2010Open source in 2012
  37. 37. AsgardCloud deploymentCloud managementStarted 2010Open source in 2012 Follow @NetflixOSS
  38. 38. AsgardCloud deploymentCloud managementStarted 2010Open source in 2012 Follow @NetflixOSS100’s of Jira tickets
  39. 39. AsgardCloud deploymentCloud managementStarted 2010Open source in 2012 Follow @NetflixOSS100’s of Jira ticketsActively developed
  40. 40. Joe Sondow Clay McCoy Jason Gritman @joesondow @claymccoy @jgritmanAsgard TeamJune 2012(The dolphin writes integration tests)
  41. 41. With more than 25 million streaming members in theUnited States, Canada, Latin America, the UnitedKingdom and Ireland, Netflix, Inc. (NASDAQ: NFLX) isthe worlds leading internet subscription service forenjoying movies and TV programs.(from http://ir.netflix.com)
  42. 42. Freedom and Responsibility
  43. 43. Freedom and Responsibility
  44. 44. Freedom and ResponsibilityCloud SOA
  45. 45. Freedom and ResponsibilityCloud SOA100’s of services
  46. 46. Freedom and ResponsibilityCloud SOA100’s of servicesSmall teams
  47. 47. Freedom and ResponsibilityCloud SOA100’s of servicesSmall teamsIndependent releases
  48. 48. Freedom and ResponsibilityCloud SOA100’s of servicesSmall teamsIndependent releasesControlled chaos
  49. 49. Regional URLs
  50. 50. Regional URLsLet’s see some code
  51. 51. Regional URLsCloud object URLs were unique, conventional, intuitiveDefault Grails URL mapping is excellent
  52. 52. Regional URLsLater, Netflix needed to use multiple Amazon regions
  53. 53. Regional URLsRegion is another URL dimensionAdd URL mapping, but don’t break existing links
  54. 54. Regional URLsRegionService.groovy (excerpt)
  55. 55. Regional URLsRegionService.groovy (excerpt)
  56. 56. Regional URLsSome controllers should never be regionalRegionService detects RegionAgnostic annotation
  57. 57. Cloud deployment model
  58. 58. Cloud deployment modelApplications and Clusters
  59. 59. Cloud deployment model
  60. 60. Cloud deployment model Auto Scaling Group
  61. 61. Cloud deployment model Auto Scaling Group Launch Configuration
  62. 62. Cloud deployment model Elastic Load Balancer Auto Scaling Group Launch Configuration
  63. 63. Cloud deployment model Elastic Load Balancer Auto Scaling Group Launch Configuration Amazon Machine Image
  64. 64. Cloud deployment model Elastic Load Balancer Auto Scaling Group Security Group Launch Configuration Amazon Machine Image
  65. 65. Cloud deployment model Elastic Load Balancer Auto Scaling Group Security Instances Group Launch Configuration Amazon Machine Image
  66. 66. Cloud deployment model Elastic Load Balancer Auto Scaling Group Security Instances Group Launch Configuration Amazon Machine Image
  67. 67. Cloud deployment model Elastic Load Balancer Auto Scaling Group Security Instances Group Launch Configuration Amazon Machine Image
  68. 68. Cloud deployment model Elastic Load Balancer Auto Scaling Group Security Instances Group Launch Configuration Amazon Machine Image
  69. 69. Cloud deployment model
  70. 70. Cloud deployment model Search
  71. 71. Cloud deployment model API Search
  72. 72. Cloud deployment model Ratings API Search
  73. 73. Cloud deployment modelStreaming Starts Ratings API Search
  74. 74. Cloud deployment modelStreaming Starts Ratings API SearchAutocomplete
  75. 75. Cloud deployment model Sign UpStreaming Starts Ratings API SearchAutocomplete
  76. 76. Cloud deployment model Sign UpStreaming Starts Ratings Application Application Application API SearchAutocomplete Application Application Application
  77. 77. Inventing the Application
  78. 78. Inventing the Application Problem: Application is not an Amazon concept Solution: Create an Application domain in SimpleDB Enforce naming conventions on Amazon objects
  79. 79. Fast Rollback
  80. 80. Fast RollbackOptimism causes outages
  81. 81. Fast RollbackOptimism causes outagesProduction traffic is unique
  82. 82. Fast RollbackOptimism causes outagesProduction traffic is uniqueKeep old version running
  83. 83. Fast RollbackOptimism causes outagesProduction traffic is uniqueKeep old version runningSwitch traffic to new version
  84. 84. Fast RollbackOptimism causes outagesProduction traffic is uniqueKeep old version runningSwitch traffic to new versionMonitor results
  85. 85. Fast RollbackOptimism causes outagesProduction traffic is uniqueKeep old version runningSwitch traffic to new versionMonitor resultsRevert traffic quickly
  86. 86. Fast Rollback
  87. 87. Fast Rollback api-frontend api-usprod-v007
  88. 88. Fast Rollback api-frontend api-usprod-v007 api-usprod-v008
  89. 89. Fast Rollback api-frontend api-usprod-v007 api-usprod-v008
  90. 90. Fast Rollback api-frontend api-usprod-v007 api-usprod-v008
  91. 91. Fast Rollback api-frontend api-usprod-v007 api-usprod-v008
  92. 92. Fast Rollback api-frontend api-usprod-v007
  93. 93. Inventing the Cluster
  94. 94. Inventing the Cluster Problem: Two ASGs with one function but different names Solution: Append version number in reserved format Parse ASG name to determine long-term “cluster”
  95. 95. Inventing the ClusterInstead of keeping a database in sync, use namingconventions to store the source in truth in Amazon’s APIapi Applicationapi-usprod Clusterapi-usprod-v007 Auto Scaling Groupapi-usprod-v008 Auto Scaling Group
  96. 96. Offline Development
  97. 97. Offline DevelopmentMakes on a plane
  98. 98. Offline DevelopmentMock dataMock behaviorSystem property switch offline=true
  99. 99. Mock Datahttp://asgardprod/us-east-1/autoScaling/list.json
  100. 100. Mock DataParse JSON
  101. 101. Mock BehaviorOverride Amazon Java client methods
  102. 102. System Propertygrails run-app -Doffline=true
  103. 103. Why not the AWS console?
  104. 104. Why not the AWS console?No, not to keep me busy
  105. 105. Why not the AWS console?
  106. 106. Why not the AWS console?
  107. 107. Why not the AWS console?Hide keys
  108. 108. Why not the AWS console?Hide keysCustomize model
  109. 109. Why not the AWS console?Hide keysCustomize modelEnforce conventions
  110. 110. Why not the AWS console?Hide keysCustomize modelEnforce conventionsAutomate workflow
  111. 111. Why not the AWS console?Hide keysCustomize modelEnforce conventionsAutomate workflowLog changes
  112. 112. Why not the AWS console?Hide keysCustomize modelEnforce conventionsAutomate workflowLog changesIntegrate systems
  113. 113. Why not the AWS console?Hide keysCustomize modelEnforce conventionsAutomate workflowLog changesIntegrate systemsCreate REST API
  114. 114. @NetflixOSS
  115. 115. @NetflixOSShttp://techblog.netflix.com
  116. 116. @NetflixOSShttp://techblog.netflix.comOpen source announcement...
  117. 117. @NetflixOSShttp://techblog.netflix.comOpen source announcement...
  118. 118. @NetflixOSSThank you
  119. 119. @NetflixOSSThank youQuestions? @joesondow slideshare.net/joesondow linkedin.com/in/joesondow

×