testen in der cloud - software-architects.com...–3rd party tools (e.g. cerebrata) db . sql azure...
TRANSCRIPT
![Page 1: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/1.jpg)
Veranstalter:
Speziell zu Software-Testing
14.-15. Februar 2011, München
Testen in der Cloud
Altbekanntes oder neue Herausforderungen?
![Page 2: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/2.jpg)
Abstract
Wenn man Marktforschungsunternehmen glaubt, wird der Trend in der IT in den nächsten Jahren Cloud Computing sein. Microsoft bietet mit der Windows Azure Plattform eine Cloud-Umgebung, die sich ideal für Anwendungen auf der Technologie des Konzerns aus Redmond eignet. In dieser Session stellt Rainer Stropek dar, welche neuen Herausforderungen hinsichtlich Testen bei Einbeziehung von Cloud Computing, insbesondere Windows Azure, zu meistern sind. Er zeigt, welche Möglichkeiten zur Testautomatisierung bereit stehen und diskutiert auch die kaufmännischen Aspekte, die sich aus dem Pay-per-use Modell von Cloud Computing für Test- und Entwicklungsumgebungen ergeben.
According to market research organizations like Gartner or IDC cloud computing will be a big trend over the next years. With the Windows Azure Platform Microsoft offers a cloud computing environment that is perfectly suited for applications that are based on technologies like .NET or SQL Server. In this session Rainer Stropek discusses how using the cloud – especially Windows Azure – changes software testing. He shows possibilities for test automation and also covers pricing aspects with regards to test and development environments.
![Page 3: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/3.jpg)
Introduction
• software architects gmbh
• Rainer Stropek
– Developer, Speaker, Trainer
– MVP for Windows Azure
– @rstropek
http://www.timecockpit.com
http://www.software-architects.com
![Page 4: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/4.jpg)
Introduction
Testing for the cloud – similarities and differences
![Page 5: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/5.jpg)
Similarities and Differences
• Similarities
– Just another .NET application
– Just another Windows Server
– Just another IIS
– Just another SQL Server
![Page 6: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/6.jpg)
Similarities and Differences
• Differences
– Design, develop and test for clusters
– Handle failures (i.e. failover)
– Design, develop and test for scalability
– Use the elastic nature of the cloud
![Page 7: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/7.jpg)
Similarities and Differences
• Side topics
– Cloud enables new tools for testing
• E.g. LoadStorm
– SLAs become more and more important
• Who monitors the cloud?
![Page 8: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/8.jpg)
On-Premise Cloud Emulators
DevFabric and DevStorage
![Page 9: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/9.jpg)
DevFabric Introduction
• Windows Azure Compute Emulator aka DevFabric – Part of Windows Azure SDK free
• Simulates Windows Azure during development process – For debugging purposes
– To lower costs
– For offline scenarios
• DevFabric ≠ Windows Azure – Can access all locally installed resources
– Might not be available in the real cloud
– DevFabric does not mitigate testing in the real cloud
![Page 10: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/10.jpg)
DevFabric Introduction
• Prerequisites – Windows Azure SDK and Azure Tools for VS
– Visual Studio 2010
– IIS and SQL Server 2008 R2 (see also MSDN)
• Installation – Install SDK and tools
– Configure DevFabric (see also MSDN)
– Configure DevStorage (see later)
• DevFabric and DevStorage only support local use – Tip: Various articles about how to access DevFabric and DevStorage
over the network are available (e.g. Emmanuel's Blog)
![Page 11: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/11.jpg)
Debugging With DevFabric
• Demo DevFabric in Visual Studio
– F5-Experience
![Page 12: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/12.jpg)
Profiling With DevFabric
• Most of today‘s leading profiler tools (e.g. ANTS Profiler) do not support applications running in DevFabric
– Example of a working profiler: YourKit Profiler for .NET (with limitations)
• Tip: Build apps that run with and without DevFabric/Cloud – RoleEnvironment.IsAvailable
![Page 13: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/13.jpg)
Automating DevFabric Windows Azure SDK Deployment Tools
• CSPack.exe
– Pack binaries for DevFabric or Azure deployment
– Typically done by Visual Studio
• CSRun.exe
– Deploys package to DevFabric and runs it
– Typically done by Visual Studio
– Tip: Testers can use CSRun to run an app without Visual Studio and sourcecode
• CSUpload.exe – Uploads VHDs to Azure
• CSManage.exe
– Sample that shows how to automate Azure Service Management
![Page 14: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/14.jpg)
DevFabric and Unit Tests
Tips
– Encapsulate logic that has to be unit tested into separate class libraries testing as usual
– Include DevFabric in integration tests using CSPack/CSRun
– Build applications and services that can be run inside and outside of Azure
![Page 15: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/15.jpg)
Storage in Azure
Blobs: large, unstructured data (audio, video, etc)
Tables: simply structured data, accessed using WCF Data Services
Queues: serially accessed messages or requests, allowing web-roles and worker-roles to interact
![Page 16: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/16.jpg)
Windows Azure Storage
• Windows Azure Storage Emulator aka DevStorage
– REST Services on http://127.0.0.1:1000 – 10002
– UseDevelopmentStorage=true
– Credentials and important tips see MSDN
• Storage Explorers
– Visual Studio Server Explorer
– 3rd party tools (e.g. Cerebrata)
DB
![Page 17: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/17.jpg)
SQL Azure
Replica 1
Replica 2
Replica 3
DB
Replica 4
!
![Page 18: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/18.jpg)
SQL Azure
Application
Internet
LB
TDS (tcp)
TDS (tcp)
TDS (tcp)
Apps use standard SQL client
libraries: ODBC, ADO.Net, PHP, …
Load balancer forwards ‘sticky’
sessions to TDS protocol tier
Security Boundary
Gateway Gateway Gateway Gateway Gateway Gateway
Scalability and Availability: Fabric, Failover, Replication, and Load balancing
SQL SQL SQL SQL SQL SQL
Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to backend SQL
![Page 19: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/19.jpg)
SQL Azure Differences and Limitations
• Features – Only RDBMS, no SQL Agent, SSIS, SSRS (already in beta) or SSAS
– No support for hardware-related features
– No distributed queries or transactions
• Protocol – TDS 7.3 or later
– No OLE DB support
– Only TCP/IP protocol without MARS with encryption
• You need Management Studio 2008 R2
• Every table must have a clustered index
• Further details see MSDN Guidelines and Limitations (SQL Azure Database)
![Page 20: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/20.jpg)
DevStorage
• Demo
– DevStorage and Cloud storage with Cerebrata Cloud Storage Studio and Visual Studio 2010
– SQL Azure with Management Studio 2008 R2
– Fiddler with DevStorage and Cloud Storage
![Page 21: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/21.jpg)
Deployment
Moving your app into the cloud
![Page 22: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/22.jpg)
Production and Staging Environments
• Production environment – http://<myapp>.cloudapp.net
• Staging environment – http://<guid>.cloudapp.net
– Used for testing and preparation of new production version
![Page 23: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/23.jpg)
Deployment Types
• In-Place update – Can be performed on prod and staging
– Service model must be identical (e.g. same number of roles)
• VIP Swap (Virtual IP Swap) – Switches Prod ↔ Staging
– Service model may have changed; endpoints must have stayed the same
![Page 24: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/24.jpg)
Deployment in VS Authentication using certificate
Deployment using Azure Store
Deployment process in VS
![Page 25: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/25.jpg)
Deployment in VS
![Page 26: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/26.jpg)
VIP Swap
• Prod contains Vx
• Deploy Vnext to Staging – Connect staging to staging data stores
– Do final QS
– Connect staging to prod data stores
– Do final QS and warmup
• Perform VIP Swap, now Vnext is online
• Stop and delete staging
![Page 27: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/27.jpg)
Troubleshooting
Hunting errors in the cloud using RDP, Diagnostics and IntelliTrace
![Page 28: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/28.jpg)
RDP vs. Diagnostics
On-Premise
• Static environment
• Well-known environment
• Single server
Cloud
• Dynamic environment
• Multi-instances, elastic
• Many nodes
![Page 29: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/29.jpg)
RDP vs. Diagnostics
• Remote access via RDP
– During development
– Troubleshooting for specific instance (e.g. memory or CPU consumption)
• Diagnostics
– Permanent
– Long-term statistics
– Monitor health of complete system
![Page 30: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/30.jpg)
Remote Connection (RDP) Certificate for
credential encryption
Credentials Don’t forget to enable RDP!
![Page 31: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/31.jpg)
Azure Diagnostics
Role
Role Instance
Diagnostic Monitor
Configuration
Quota enforcement
Local directory storage
Data collection (traces, logs, crash dumps)
Windows Data Sources
IIS Logs & Failed Request Logs Perf Counters
Windows Event Logs
Image Source: Microsoft PDC 09, Session SVC15, Matthew Kerner
![Page 32: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/32.jpg)
Azure Diagnostics
Role
Role Instance
Diagnostic Monitor
Local directory storage
Request upload
Windows Azure
Storage
Scheduled or on-demand upload
Windows Data Sources
Image Source: Microsoft PDC 09, Session SVC15, Matthew Kerner
![Page 33: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/33.jpg)
Remote Diagnostics
config.
Diagnostics aufsetzen
![Page 34: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/34.jpg)
IntelliTrace in Azure
• Collect data about events that happened in Azure
• Open data in VS and see e.g. exceptions, call flow, etc.
• IntelliTrace data is collected in Windows Azure Storage
![Page 35: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/35.jpg)
Build Automation with Azure
• Automate deployment and run unit tests in the cloud
![Page 36: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/36.jpg)
Build Automation with Azure
• Goals
– Create a build process template for customization
– Build cspkg in Build Process
– Deploy to Azure using Azure Powershell Cmdlets
– Run Unit test against newly deployed service
– Remove Hosted Service
• Unless you have too much $
![Page 37: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/37.jpg)
Pre-requisites
• Working Azure Solution
– WebRole with Service (ToUpper)
– Test Assembly
• Service Reference to Service
• Build Server with
– Azure Toolkit (tested with 1.3)
– Powershell
– Powershell Azure Cmdlets
• Azure Account
– Hosted Service for testing
– Certificate for Buildserver
– Certificate from Developer Machine
Instead of User/Pwd
![Page 38: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/38.jpg)
Setting up certificates
• Why certificates?
– Allows you to store credentials in a secure place
– No passwords in source code
– Only way for Azure REST API
• Idea:
– Every machine allowed to access managment
• Creates and installs a new certificate in windows secure store
• Upload public key to azure management portal („Management Keys“)
• Login on machine with build account
– The account that runs the build agent
– Open visual studio shell
– Execute a command
• makecert -r -pe -a sha1 -n "CN=Build Machine Certificate" -ss My -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 buildmachine.cer
– This creates a public key, buildmachine.cer
– Upload buildmachine.cer to management portal
![Page 39: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/39.jpg)
Setting up certificates
• Upload the certificate to Azure
– Browse to the folder with the cert
• Sidenotes:
– A cer file is not critical
– It is only a public key
– You don‘t want to loose it
– You can distribute it to anybody
– Authenticates the machine/account
![Page 40: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/40.jpg)
Goal: Create a custom build template
• Create a new build definition
– Team Explorer -> Builds -> New Build Definition
– Choose a build Controller
– Process
• Show details
• Choose „New“
• Select a new name
• New process templated created in
– „$TeamProject\BuildProcessTemplates\
![Page 41: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/41.jpg)
Goal: Create a custom build template
• Create a new blank Solution
• Add created Process Template XAML to it.
– Better to edit Process Template within a solution
– Especially true if creating custom activities
• We have our build definition for now
– Will customize it later to do azure deployment
![Page 42: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/42.jpg)
Build Automation with Azure
• Goals
– Create a build process template for customization
– Build cspkg in Build Process
– Deploy to Azure using Azure Powershell Cmdlets
– Run Unit test against newly deployed service
– Remove Hosted Service
• Unless you have too much $
![Page 43: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/43.jpg)
Goal: Building cspkg in Build Process
• Microsoft.CloudService.targets provides a „Publish“ target
– used by default for cloud projects
– call the target additionally to the normal build
• Creates the cspkg in the Publish folder
– Is automatically copied to Drop location
![Page 44: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/44.jpg)
Goal: Building cspkg in Build Process
• Edit the Build definition
• Go to „Process“ -> „Advanced“
• Edit MSBuild Arguments – /t:Build;Publish
• Save the definition
![Page 45: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/45.jpg)
Build Automation with Azure
• Goals
– Create a build process template for customization
– Build cspkg in Build Process
– Deploy to Azure using Azure Powershell Cmdlets
– Run Unit test against newly deployed service
– Remove Hosted Service
• Unless you have too much $
![Page 46: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/46.jpg)
Goal: Deploying to Azure
• Powershell Cmdlets
– Provide scriptable access to Azure Management
– A wrapper for the Windows Azure REST API
– No magic calls
• You could use whatever to call the REST Service
• Cmdlets provide some helpers
• Uploading to blob store and creating a deployment is a single call
– Free to use, on MS Code Gallery
![Page 47: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/47.jpg)
Goal: Deploying to Azure
• We created a PS script that – Creates a new deployment in staging
– Sets deployment to running
– Swaps with Production
– Waits till role is „Ready“
• Waiting till „Ready“ is crucial – Follow-up unit tests would fail
• That script is checked in – Checked-out during the build process and therefore executable
![Page 48: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/48.jpg)
Goal: Deploying to Azure
# certificatethumb subscriptionId servicename package config $certTP = $args[0] $cert = Get-Item cert:\CurrentUser\My\$certTP $sub = $args[1] $storageAccount = $args[2] $servicename = $args[3] $package = $args[4] $config = $args[5] $label = $args[6] Add-PSSnapin AzureManagementToolsSnapIn
New-Deployment -serviceName $servicename -storageserviceName $storageAccount -subscriptionId $sub -certificate $cert -slot 'Staging' -package $package -configuration $config -label $label | Get-OperationStatus -WaitToComplete
Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |Get-Deployment -Slot 'Staging' |Set-DeploymentStatus 'Running' |Get-OperationStatus -WaitToComplete Get-Deployment staging -subscriptionId $sub -certificate $cert -serviceName $servicename | Move-Deployment | Get-OperationStatus -WaitToComplete Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |Get-Deployment -Slot 'Staging' |Set-DeploymentStatus 'Suspended' |Get-OperationStatus -WaitToComplete Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |Get-Deployment -Slot 'Staging' |Remove-Deployment | Get-OperationStatus -WaitToComplete Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |Get-Deployment -Slot 'Production' |Set-DeploymentStatus 'Running' |Get-OperationStatus -WaitToComplete $ready = $False while(!$ready) { $d = Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub |Get-Deployment -Slot 'Production' $ready = ($d.RoleInstanceList[0].InstanceStatus -eq "Ready") -and ($d.Label -eq $label) }
![Page 49: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/49.jpg)
Goal: Deploying to Azure
• Executing the script in the Build Process – Modify Build Process Template to execute the script
• Open the Build Template
• Navigate to – Sequence – Run On Agent
– Try Compile, Test and Associate Changesets and Work Items
– Sequence
– Compile, Test, and Associate Changesets and Work Items
– Try Compile and Test
– Compile and Test
– For Each Configuration in BuildSettings.PlatformConfigurations
– Compile and Test for Configuration
![Page 50: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/50.jpg)
Goal: Deploying to Azure
You are Here! ;-)
![Page 51: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/51.jpg)
Goal: Deploying to Azure
• This “Deploy to Azure” Sequence
• Finds the cscfg and cspkg files in the Publish directory – Uses the FindMatchingFiles Activity provided by TFS
• Assigns the deployscript variable – a local variable
• Invokes the powershell script
• Arguments passed to the script are
– SubscriptionID
– Certificate ThumbPrint (no password!)
– Service Name
– Blobstore to use
– Cscfg path
– Cspkg path
![Page 52: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/52.jpg)
Goal: Deploying to Azure
• Where does it the following information from? – AzureCertificateThumbPrint
– AzureSubscriptionID
– AzureStorageName
– AzureHostedServiceName
• Arguments to the WorkFlow Process!
![Page 53: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/53.jpg)
Goal: Deploying to Azure
• Create Arguments
![Page 54: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/54.jpg)
Goal: Deploying to Azure
• Edit the Build Process and fill in the blanks
• Where From ? – Azure Portal!
– AzureStorageName – SomeBlobStorage name (you might have to create one first)
– AzureHostedServiceName – A newly created Hosted service (without any deployment)
![Page 55: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/55.jpg)
Goal: Deploying to Azure
• Let‘s try it! – Queue a new build
![Page 56: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/56.jpg)
Goal: Deploying to Azure
• Did the PS script wait till ready? – Yes
– It took about 11 minutes
![Page 57: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/57.jpg)
Build Automation with Azure
• Goals
– Create a build process template for customization
– Build cspkg in Build Process
– Deploy to Azure using Azure Powershell Cmdlets
– Run Unit test against newly deployed service
– Remove Hosted Service
• Unless you have too much $
![Page 58: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/58.jpg)
Goal: Run Unit test against newly deployed service
• Unit test currently runs against a local service
• Change endpoint in test configuration
– Service name you chose(!)
• Start a new build
• Open build
![Page 59: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/59.jpg)
Build Automation with Azure
• Goals
– Create a build process template for customization
– Build cspkg in Build Process
– Deploy to Azure using Azure Powershell Cmdlets
– Run Unit test against newly deployed service
– Remove Deployment
• Unless you have too much $
![Page 60: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/60.jpg)
Goal: Remove Deployment
• After testing, service is still running
• We created a second PS script
– Suspends productive deployment
– Removes the deployment
– Executed after unit tests
![Page 61: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/61.jpg)
Goal: Remove Deployment
# certificatethumb subscriptionId servicename $certTP = $args[0] $cert = Get-Item cert:\CurrentUser\My\$certTP $sub = $args[1] $servicename = $args[2] Add-PSSnapin AzureManagementToolsSnapIn Get-HostedService $servicename -Certificate $cert -SubscriptionId $sub | Get-Deployment -Slot 'Production' | Set-DeploymentStatus 'Suspended' | Get-OperationStatus -WaitToComplete Remove-Deployment -Slot 'Production' -ServiceName $servicename -SubscriptionId $sub -Certificate $cert | Get-OperationStatus -WaitToComplete
![Page 62: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/62.jpg)
Build Automation with Azure
• Goals
– Create a build process template for customization
– Build cspkg in Build Process
– Deploy to Azure using Azure Powershell Cmdlets
– Run Unit test against newly deployed service
– Remove Deployment
• Unless you have too much $ (See next section)
![Page 63: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/63.jpg)
Build Automation with Azure -- Summary
• Use Powershell Cmdlets for automation
– Very handy, no custom Activities
• Can be used for more
– Storage creation
• Make sure your azure role is „Ready“
– Followup activities might depend on it
• Finally, cleaning up after one-self saves money
![Page 64: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/64.jpg)
Costs
Pay only those test resources that you really need
![Page 65: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/65.jpg)
Windows Azure Pricing
Virtual Machine instances Load balancers, routers, etc. Relational DB instances Automated service management
- Fabric controller operations Load balancer programming
COMPUTE
PRICE $0.12 / hour per size unit
SQL Azure PRICE
1GB db : $9.99/month 5 GB db: $49.95/month * 10 GB db : $99.99/month 50 GB db: $499.95/month * Data transfers = $0.10 in / $0.15 out / GB
* Starting June 28, 2010
Easy to use Reliable Compatible with what you have
STORAGE
Blob Storage Table Storage Multiple replicas
PRICE $0.15 / GB stored / month Storage transactions: $0.01 / 10k
BANDWIDTH
Ingress/Egress (to/from internet only)
PRICE Bandwidth: $0.10 IN; $0.15 OUT; / GB
![Page 66: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/66.jpg)
Windows Azure Pricing Advantages
• Get a production-like test environment for very little money
– Compute and storage cluster
• Keep test environment online only as long as you need it
– Tip: Think about keeping test data in the cloud
• VIP Swap to put new releases into production
![Page 67: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/67.jpg)
Veranstalter:
Speziell zu Software-Testing
14.-15. Februar 2011, München
FRAGEN?
![Page 68: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/68.jpg)
Wir sehen uns wieder!
High-Level-Konferenz speziell zu C++
05. – 06. Mai 2011, direkt am Chiemsee cpp.ADC2011.de
Trainings und Events der ppedv Mehr als 100 verschiedene Trainings
auf Microsoft-Technologien spezialisiert
11 Standorte in D & AT
Maßgeschneiderte Trainings direkt bei Ihnen vor Ort!
www.ppedv.de
![Page 69: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/69.jpg)
Veranstalter:
Speziell zu Software-Testing
14.-15. Februar 2011, München
Hat Ihnen mein Vortrag gefallen? Ich freue mich auf Ihr Feedback!
![Page 70: Testen in der Cloud - software-architects.com...–3rd party tools (e.g. Cerebrata) DB . SQL Azure Replica 1 Replica 2 Replica 3 DB Replica 4 ! SQL Azure Application Internet LB TDS](https://reader033.vdocuments.site/reader033/viewer/2022053010/5f0e05877e708231d43d3adf/html5/thumbnails/70.jpg)
Veranstalter:
Speziell zu Software-Testing
14.-15. Februar 2011, München
Vielen Dank! Rainer Stropek