Search results matching tags 'testing' and 'Upgrades'http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&tag=testing,Upgrades&orTags=0Search results matching tags 'testing' and 'Upgrades'en-USCommunityServer 2.1 SP2 (Build: 61129.1)How Microsoft helps you NOT break your Windows Azure Application: Storage Services Versioninghttp://sqlblog.com/blogs/buck_woody/archive/2011/12/06/how-microsoft-helps-you-not-break-your-windows-azure-application-storage-services-versioning.aspxTue, 06 Dec 2011 14:42:57 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:40161BuckWoody<p><font size="2">One of the advantages of using Windows Azure to run your code is that you don’t have to constantly manage upgrades on your platform. While that’s a big advantage indeed, it immediately brings up the question - how do the upgrades happen? Microsoft upgrades the Azure platform in periodic increments, and the components that are affected are documented. </font></p> <p><font size="2">This brings up another question - upgrades mean change, and change can sometimes alter the way you might implement a feature. What if you have taken a dependency on some feature in your code that has been altered by an upgrade? Windows Azure does have an Application Lifecycle Management (ALM) Process, which I’ll reference at the end of this post. But beyond that, there are some features we’ve put into place that will help you manage many of these changes. One of those is being able to set the version of storage features you would like your code to use. </font></p> <p><font size="2">Windows Azure is made up of three main component areas: Computing, Storage and a group of features called the Application Fabric. You can use these components together or separately, depending on what you would like your application to do. In this post I’ll deal with the version control in the storage subsystem - in other posts I’ll explain how to track and in some cases control the versions of the other components you work with.</font></p> <p><font size="2">When you send a request to a Windows Azure resource, you’re actually using a <a href="http://en.wikipedia.org/wiki/REST" target="_blank">REST</a> call. That’s a three-part call to the system that has a request (called a URI), a header, and a body of code you want to send. So a typical call, such as to a table, might look like this example, which changes the properties of a Blob: </font></p> <p><font size="2"><strong>URI</strong>: <br /><font color="#0000ff">PUT http://myaccount.table.core.windows.net/?restype=service&amp;comp=properties HTTP/1.1</font></font></p> <p><font size="2"><strong>Header</strong>: <br /><font color="#0000ff"><font style="background-color:#ffff00;">x-ms-version: 2011-08-18</font> <br />x-ms-date: Tue, 30 Aug 2011 04:28:19 GMT <br />Authorization: SharedKey <br />myaccount:Z1lTLDwtq5o1UYQluucdsXk6/iB7YxEu0m6VofAEkUE= <br />Host: myaccount.table.core.windows.net</font></font></p> <p><font size="2"><strong>Body</strong>: <br /><font color="#0000ff">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; <br />&lt;StorageServiceProperties&gt; <br />&#160;&#160;&#160; &lt;Logging&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Version&gt;1.0&lt;/Version&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Delete&gt;true&lt;/Delete&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Read&gt;false&lt;/Read&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Write&gt;true&lt;/Write&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;RetentionPolicy&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Enabled&gt;true&lt;/Enabled&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Days&gt;7&lt;/Days&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/RetentionPolicy&gt; <br />&#160;&#160;&#160; &lt;/Logging&gt; <br />&#160;&#160;&#160; &lt;Metrics&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Version&gt;1.0&lt;/Version&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Enabled&gt;true&lt;/Enabled&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;IncludeAPIs&gt;false&lt;/IncludeAPIs&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;RetentionPolicy&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Enabled&gt;true&lt;/Enabled&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;Days&gt;7&lt;/Days&gt; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;/RetentionPolicy&gt; <br />&#160;&#160;&#160; &lt;/Metrics&gt; <br />&lt;/StorageServiceProperties&gt; <br /></font></font><font size="2"></font></p> <p><font size="2"><em>(</em><a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh452240.aspx" target="_blank"><em>Source</em></a><em> of this code)</em></font></p> <p><font size="2">You can see that I’ve highlighted a portion of the header block - that’s where you set the version of the Storage Services you would like to use. You can find a list of the <a href="http://msdn.microsoft.com/en-us/library/windowsazure/dd894041.aspx" target="_blank">features introduced in each version here</a>. </font><font size="2">It’s not a requirement of adding that element to the header, but it’s best practices to do so. </font></p> <p><font size="2">You don’t have to use REST calls directly, however. It’s more common to use the API in the Software Development Kit to just change the property in your IDE environment - the setting you’re looking for there is the <a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh343266.aspx">Set Storage Service Properties</a> call. </font></p> <p><font size="2">Interestingly, rather than a breaking change you might run into an unexpected behavior if you are not aware of these parameters. In some code I recently reviewed a newer feature from the storage system failed when it was called. On inspection I found that the developer had used an older codeblock from a previous version of the storage system - he was not aware you can set the version of storage in the call. We changed the header to the latest version, and everything worked as expected. </font></p> <p><font size="2"><strong>References:</strong></font></p> <p><font size="2">The Storage Services Versioning and the changes for each version: </font></p> <p><font size="2"><span style="font-family:'Calibri','sans-serif';font-size:11pt;mso-fareast-font-family:'Times New Roman';mso-bidi-font-family:'Times New Roman';mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"><a href="http://msdn.microsoft.com/en-us/library/windowsazure/dd894041.aspx"><u><font color="#4f81bd" size="2" face="Arial">http://msdn.microsoft.com/en-us/library/windowsazure/dd894041.aspx</font></u></a><font color="#000000" face="Arial"> </font></span></font></p> <p><span style="font-family:'Calibri','sans-serif';font-size:11pt;mso-fareast-font-family:'Times New Roman';mso-bidi-font-family:'Times New Roman';mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"><font color="#000000" size="2" face="Arial">Windows Azure Application Lifecycle Management: </font></span></p> <p><span style="font-family:'Calibri','sans-serif';font-size:11pt;mso-fareast-font-family:'Times New Roman';mso-bidi-font-family:'Times New Roman';mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"><font color="#000000" size="2" face="Arial"><a href="http://msdn.microsoft.com/en-us/library/ff803362.aspx">http://msdn.microsoft.com/en-us/library/ff803362.aspx</a></font></span></p> <p><span style="font-family:'Calibri','sans-serif';font-size:11pt;mso-fareast-font-family:'Times New Roman';mso-bidi-font-family:'Times New Roman';mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"><font color="#000000" size="2" face="Arial"><a href="http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-03-Windows-Azure-Lifecycle-Part-1">http://channel9.msdn.com/posts/Windows-Azure-Jump-Start-03-Windows-Azure-Lifecycle-Part-1</a></font></span></p> <p><span style="font-family:'Calibri','sans-serif';font-size:11pt;mso-fareast-font-family:'Times New Roman';mso-bidi-font-family:'Times New Roman';mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"><a href="http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/COS201">http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/COS201</a>&#160;</span></p> <p><span style="font-family:'Calibri','sans-serif';font-size:11pt;mso-fareast-font-family:'Times New Roman';mso-bidi-font-family:'Times New Roman';mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;">&#160;</span></p>Spit it out already!http://sqlblog.com/blogs/buck_woody/archive/2010/01/06/spit-it-out-already.aspxWed, 06 Jan 2010 14:11:11 GMT21093a07-8b3d-42db-8cbf-3350fcbf5496:20617BuckWoody<p>You’ve probably seen that commercial where the chewing-gum company van stalks the guy who has been chewing the same piece of gum too long, and they attack him and make him chew another piece.</p> <p>I feel like that with SQL Server 2000. Almost every shop I go into has at least one primary application running on SQL Server 2000. Now, don’t get me wrong – SQL Server 2000 is a fine piece of software engineering. From over TEN YEARS AGO. In “software time”,&#160; that’s like a thousand years or something. </p> <p>While it was great for its day, the newer versions are faster, more secure, and more robust. And every time it doesn’t get upgraded, SQL Server is perceived as “not as fast/strong/etc” as other platforms (which <em>are</em> upgraded, of course).</p> <p>Now, I’m not suggesting that anyone upgrade for upgrade’s sake. We all have work to do, and the last thing we need to do is change out a platform when there’s no need. </p> <p>But there is a need. SQL Server 2000 isn’t in mainline support any more. That means it can be attacked easier and so on. And it doesn’t scale like the new offerings, nor does it have any of the new features the latest versions have. </p> <p>“Oh”, you might say, “I don’t use those features anyway.” Well of course you don’t – you can’t if you still have SQL Server 2000! How do you know the ways you could help your organization if you don’t experiment with the new stuff?</p> <p>But it isn’t the DBA I would chase down and steal gum from. It’s the <em>vendors</em>. </p> <p>Every time I raise my eyebrows when I hear about the SQL Server 2000 installs, the DBA shrugs and says “The vendor won’t certify SQL Server X, so we have to stay at SQL Server 2000 or 2005.” And I say, that’s just <em>lazy</em>. Unless the vendor codes specifically for deprecated features, a simple test run during their software development should allow them to move forward. I’m not saying that’s an easy task, but certainly they’ve tested their software releases once in the last ten years, no? If not, doesn’t that make you nervous?</p> <p>Anyhoo, spit out the SQL Server 2000. Or I might have to fire up the company van.</p>