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
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Asgard, the Grails App that Deploys Netflix to the Cloud
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 Cloud
Joe Sondow, Netflix
@joesondow #gr8conf
6. Agenda
Who am I? Why am I here?
Asgard, Screen shots
Netflix, Freedom and Responsibility
7. Agenda
Who am I? Why am I here?
Asgard, Screen shots
Netflix, Freedom and Responsibility
Regional URLs
8. Agenda
Who am I? Why am I here?
Asgard, Screen shots
Netflix, Freedom and Responsibility
Regional URLs
Cloud Deployment Model
9. Agenda
Who am I? Why am I here?
Asgard, Screen shots
Netflix, Freedom and Responsibility
Regional URLs
Cloud Deployment Model
Offline Development
10. Agenda
Who am I? Why am I here?
Asgard, Screen shots
Netflix, Freedom and Responsibility
Regional URLs
Cloud Deployment Model
Offline Development
Why not the AWS Console?
21. Why am I here?
Sell you something
Discuss business plans
22. Why am I here?
Sell you something
Discuss business plans
Answer technical questions
23. Why am I here?
Sell you something
Discuss business plans
Answer technical questions
Be a smaller fish in AWS
24. Why am I here?
Sell you something
Discuss business plans
Answer technical questions
Be a smaller fish in AWS
Give back to community
25. Why am I here?
Sell you something
Discuss business plans
Answer technical questions
Be a smaller fish in AWS
Give back to community
Steal your engineers
40. Joe Sondow Clay McCoy Jason Gritman
@joesondow @claymccoy @jgritman
Asgard Team
June 2012
(The dolphin writes integration tests)
41.
42. With more than 25 million streaming members in the
United States, Canada, Latin America, the United
Kingdom and Ireland, Netflix, Inc. (NASDAQ: NFLX) is
the world's leading internet subscription service for
enjoying movies and TV programs.
(from http://ir.netflix.com)
80. Inventing the Application
Problem:
Application is not an Amazon concept
Solution:
Create an Application domain in SimpleDB
Enforce naming conventions on Amazon objects
85. Fast Rollback
Optimism causes outages
Production traffic is unique
Keep old version running
Switch traffic to new version
86. Fast Rollback
Optimism causes outages
Production traffic is unique
Keep old version running
Switch traffic to new version
Monitor results
87. Fast Rollback
Optimism causes outages
Production traffic is unique
Keep old version running
Switch traffic to new version
Monitor results
Revert traffic quickly
96. 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”
97. Inventing the Cluster
Instead of keeping a database in sync, use naming
conventions to store the source in truth in Amazon’s API
api Application
api-usprod Cluster
api-usprod-v007 Auto Scaling Group
api-usprod-v008 Auto Scaling Group
Asgard is a Grails application used by Netflix engineers to deploy code changes and manage resources in the Amazon cloud on a massive scale. This presentation will include slides and discussion about aspects of Asgard from both the user and developer points of view.\n\nThe Netflix cloud model of Applications and Clusters built on top of Amazon building blocks\nAsgard&#x2019;s process for large deployments and fast rollback\nOpen sourcing Asgard on github in 2012\nComparison with the AWS Management Console\nTour of the user interface\nPublishing a REST interface API for other tools to call Asgard\nEnhancing Grails URLs to add region-specificity\nUsing external configuration to pull Netflix-specific details out of Asgard\nStoring metadata on cloud objects instead of a database\nUsing closures to help cache massive cloud metadata for multiple Amazon regions\nTango open source icons to improve the user experience\nJavaScript filters for large list pages and drop-downs\nMocking the AWS back-end for offline automated testing\n
Asgard is a Grails application used by Netflix engineers to deploy code changes and manage resources in the Amazon cloud on a massive scale. This presentation will include slides and discussion about aspects of Asgard from both the user and developer points of view.\n\nThe Netflix cloud model of Applications and Clusters built on top of Amazon building blocks\nAsgard&#x2019;s process for large deployments and fast rollback\nOpen sourcing Asgard on github in 2012\nComparison with the AWS Management Console\nTour of the user interface\nPublishing a REST interface API for other tools to call Asgard\nEnhancing Grails URLs to add region-specificity\nUsing external configuration to pull Netflix-specific details out of Asgard\nStoring metadata on cloud objects instead of a database\nUsing closures to help cache massive cloud metadata for multiple Amazon regions\nTango open source icons to improve the user experience\nJavaScript filters for large list pages and drop-downs\nMocking the AWS back-end for offline automated testing\n
Asgard is a Grails application used by Netflix engineers to deploy code changes and manage resources in the Amazon cloud on a massive scale. This presentation will include slides and discussion about aspects of Asgard from both the user and developer points of view.\n\nThe Netflix cloud model of Applications and Clusters built on top of Amazon building blocks\nAsgard&#x2019;s process for large deployments and fast rollback\nOpen sourcing Asgard on github in 2012\nComparison with the AWS Management Console\nTour of the user interface\nPublishing a REST interface API for other tools to call Asgard\nEnhancing Grails URLs to add region-specificity\nUsing external configuration to pull Netflix-specific details out of Asgard\nStoring metadata on cloud objects instead of a database\nUsing closures to help cache massive cloud metadata for multiple Amazon regions\nTango open source icons to improve the user experience\nJavaScript filters for large list pages and drop-downs\nMocking the AWS back-end for offline automated testing\n
Asgard is a Grails application used by Netflix engineers to deploy code changes and manage resources in the Amazon cloud on a massive scale. This presentation will include slides and discussion about aspects of Asgard from both the user and developer points of view.\n\nThe Netflix cloud model of Applications and Clusters built on top of Amazon building blocks\nAsgard&#x2019;s process for large deployments and fast rollback\nOpen sourcing Asgard on github in 2012\nComparison with the AWS Management Console\nTour of the user interface\nPublishing a REST interface API for other tools to call Asgard\nEnhancing Grails URLs to add region-specificity\nUsing external configuration to pull Netflix-specific details out of Asgard\nStoring metadata on cloud objects instead of a database\nUsing closures to help cache massive cloud metadata for multiple Amazon regions\nTango open source icons to improve the user experience\nJavaScript filters for large list pages and drop-downs\nMocking the AWS back-end for offline automated testing\n
Asgard is a Grails application used by Netflix engineers to deploy code changes and manage resources in the Amazon cloud on a massive scale. This presentation will include slides and discussion about aspects of Asgard from both the user and developer points of view.\n\nThe Netflix cloud model of Applications and Clusters built on top of Amazon building blocks\nAsgard&#x2019;s process for large deployments and fast rollback\nOpen sourcing Asgard on github in 2012\nComparison with the AWS Management Console\nTour of the user interface\nPublishing a REST interface API for other tools to call Asgard\nEnhancing Grails URLs to add region-specificity\nUsing external configuration to pull Netflix-specific details out of Asgard\nStoring metadata on cloud objects instead of a database\nUsing closures to help cache massive cloud metadata for multiple Amazon regions\nTango open source icons to improve the user experience\nJavaScript filters for large list pages and drop-downs\nMocking the AWS back-end for offline automated testing\n
Asgard is a Grails application used by Netflix engineers to deploy code changes and manage resources in the Amazon cloud on a massive scale. This presentation will include slides and discussion about aspects of Asgard from both the user and developer points of view.\n\nThe Netflix cloud model of Applications and Clusters built on top of Amazon building blocks\nAsgard&#x2019;s process for large deployments and fast rollback\nOpen sourcing Asgard on github in 2012\nComparison with the AWS Management Console\nTour of the user interface\nPublishing a REST interface API for other tools to call Asgard\nEnhancing Grails URLs to add region-specificity\nUsing external configuration to pull Netflix-specific details out of Asgard\nStoring metadata on cloud objects instead of a database\nUsing closures to help cache massive cloud metadata for multiple Amazon regions\nTango open source icons to improve the user experience\nJavaScript filters for large list pages and drop-downs\nMocking the AWS back-end for offline automated testing\n
Asgard is a Grails application used by Netflix engineers to deploy code changes and manage resources in the Amazon cloud on a massive scale. This presentation will include slides and discussion about aspects of Asgard from both the user and developer points of view.\n\nThe Netflix cloud model of Applications and Clusters built on top of Amazon building blocks\nAsgard&#x2019;s process for large deployments and fast rollback\nOpen sourcing Asgard on github in 2012\nComparison with the AWS Management Console\nTour of the user interface\nPublishing a REST interface API for other tools to call Asgard\nEnhancing Grails URLs to add region-specificity\nUsing external configuration to pull Netflix-specific details out of Asgard\nStoring metadata on cloud objects instead of a database\nUsing closures to help cache massive cloud metadata for multiple Amazon regions\nTango open source icons to improve the user experience\nJavaScript filters for large list pages and drop-downs\nMocking the AWS back-end for offline automated testing\n