04 | Continuous Deployment and Integration Jon Galloway | Technical Evangelist Cory Fowler | Program Manager, Azure Websites
Deployment Sources
Sources File-based Sources Source Control Sources Web Deploy FTP Dropbox Source Control Sources BitBucket CodePlex Git GitHub Mercurial TFS
CI / Github, VSO, etc. 2) Code Repository 1) Developers 4) Deploy to slot 5) Test 7) Deploy to Cloud 3) Build 6) Swap Azure Contoso App 6) Monitor and Improve
Deployments
Source Control Deployment from GitHub
Site Slots
Staging
Staging
Staging
Staging
Site Slots
Continuous Deployment Continuous Integration
Continuous Deployment Continuous Integration
Testing in Production
Testing in Production 80% 100% 20%
Testing in Production Introduction 5/19/2019 Testing in Production Introduction Route traffic based on ratio defined TiP cookies ensure users always return to the same version © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Testing in Production Basic example 5/19/2019 Testing in Production Basic example As ratios change, users are moved accordingly (chosen at random) © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Testing in Production Basic example 5/19/2019 Testing in Production Basic example As ratios change, users are moved accordingly (chosen at random) © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Testing in Production Control cookie 5/19/2019 Testing in Production Control cookie Users are randomly given a TiPMix cookie value, used to assure stickiness. Each slot serves a range based on the ratio. © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Testing in Production Custom Rules
Testing in Production Ramp-up 5/19/2019 Testing in Production Ramp-up $rule1.ChangeIntervalInMinutes = 5; $rule1.ChangeStep = 5; $rule1.MinReroutePercentage = 15; $rule1.MaxReroutePercentage = 85; © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Testing in Production Ramp-up callback 5/19/2019 Testing in Production Ramp-up callback {"TimestampUtc":"\/Date(-62135568000000-0800)\/", "AverageMemoryWorkingSet":0,"AverageTimeTaken":0, "CurrentMemoryWorkingSet":0,"Http2xx":225, "Http3xx":0,"Http401":2,"Http403":0,"Http404":0, "Http406":0,"Http4xx":0,"Http5xx":7,"IncomingRequestBytes":0, "IncomingRequestResponseBytes":0,"LocalReadBytes":0,"LocalWrittenBytes":0, "MaxMemoryWorkingSet":0,"MinMemoryWorkingSet":0,"NetworkReadBytes":0, "NetworkWrittenBytes":0,"OutgoingRequestBytes":0,"OutgoingRequestResponseBytes":0 ,"ProcessorTime":"PT0S","Requests":231,"StopRequests":0} $rule1.ChangeDecisionCallbackUrl = https://<sitename>.scm.azurewebsites.net/TiPcallback Request Metrics for both slots Response { "TimestampUtc":"\/Date(-62135568000000-0800)\/", "Http2xx":225, "Http3xx":0, "Http401":2, "Http403":0, "Http404":0, "Http406":0, "Http4xx":0, "Http5xx":7, "Requests":231, "StopRequests":0 } Providing step "exactPercentage":null, "step":5 Providing exact percentage "exactPercentage":13.5, "step":null © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Testing in Production Future 5/19/2019 Testing in Production Future Custom Cookie Route based on the value of a cookie set by site HTTP Verb filter Http verb filtering to different slots User agent filter Operating System, device, language, browser IP/geo filter City, State, Country User cookie filter User defined cookie to be used for routing decision A/B testing Routing & Filtering Analytics based on App Insights © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Testing in Production Use Cases 5/19/2019 Testing in Production Use Cases Mirror the source control branches Production Staging Testing Development Advanced scenarios Right now, officially not supported, but technically possible. Feedback needed. Cascade slots Makes use of Role Based Access AB testing Each slot is a website and thus has App Insights metrics. Deploy variants of the website to each slot Production – A Testing – B Some math required Websites instead of slots Using powershell websites instead of slots can be used. Known issues: Sites must be in same stamp. © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Testing in Production
Next Module Background Processing with Web Jobs