This week a little bit less of notes since I went to the Windows Azure Global Summit at Seattle, where I met many interesting persons. A lot of amazing things are coming for Windows Azure... but this is for another post!
[…] Read this getting started tutorial to walkthrough how you can build (in less than 5 minutes) a simple Windows 8 “To-do List” app that is cloud enabled using Windows Azure Mobile Services. Or watch this video of me showing how to do it step by step.[…]
Deploying Azure Websites with Git(Tyler) - Nice tutorial that how easy it is to manage our website with the new Github integration into the Windows Azure portal.
Logging Using Azure Table Storage (Michael R Duffy) - I'm use to see more logging solution using the Windows Azure storage with blob than with table. But it makes sense since now storage is so cheap. Great post.
How to migrate your TFS Repository to GitHub - Nice, simple and quick tutorial to start using git and in the meantime try Chocolately. (a kind of NuGet but for Windows instead of Visual Studio)
ScottGu's Blog - Good promo, no obligation, no credit card, good product... until the September 18.
[…]Read this getting started tutorial to walkthrough how you can build (in less than 5 minutes) a simple Windows 8 “To-do List” app that is cloud enabled using Windows Azure Mobile Services. Or watch this video of me showing how to do it step by step.[…]
Your resume vs. your LinkedIn profile (Thomas Wolff) - Nice advice about how we should use LinkedIn with our resume. They should complement each other not be the same.
Amazon AWS is the Cloud (for now anyway) (Ofir Nachmani) - It is true, Amazon web services is a strong well establish cloud provider. And big players like Google and Microsoft will force it to always improve the quality of their services.
Cloud Fundamentals Video Series (Alfred Thompson) – Wow! 25 good reasons to bookmarks this posts... if you want to get started on Windows Azure.
To TechDays 2012 and Beyond (Jonathan Rozenblit) - A lot of possibilities to learn more great Windows technology are coming, here is a sneak peak.
Connecting to the Cloud–Part 1 (Tyler Doerksen) - Nice post that explains at high level two ways to connect the cloud with a on premise solution: data synchronisation and application layer.
Connecting to the Cloud-Part 2 (Tyler Doerksen) - In this second post learn more about two other way to connect Azure with both on-premise or another cloud provider (like amazon or Rackspace): machine to machine and network layer.
Traffic Technique 6: Backlinks (Darren Rowse) - Today's website/blog are prettier than in the past with all the bling-bling. So the to increase the traffic you need to play in subtlety. A good series to learn more on those basic rules.
WebMatrix 2 is Released! + New Windows Azure Features (blogs.msdn.com) - WebMatrix is a great tool now with this new version it's even belter! From Windows Azure Portal you can download your web site edit it and republish it in few clicks... that only one thing among the things WebMatrix can do to simplify our lives.
The Hanselminutes Podcast - Very nice, I cannot wait to try the update database feature with the code first...
Why Remote Workers Are More (Yes, More) Engaged (Scott Edinger) - Nice post that explain how today with all the alternative we have to communicate that the distance is not a factor anymore. In business at least...
Shifting Blog From WordPress to Bloggers (gotchacode.blogspot.in) - I did the same choice for mostly the same reason few years ago. But now that you can host Wordpress in Windows Azure... maybe ;)
ScottGu's Blog - Great! This new service is awesome. Learn more in this post or follow the references to go dipper.
[…]Read this getting started tutorial to walkthrough how you can build (in less than 5 minutes) a simple Windows 8 “Todo List” app that is cloud enabled using Windows Azure Mobile Services. Or watch this video of me showing how to do it step by step. […]
Amazon AWS is the Cloud (for now anyway) - It is true that Amazon web services is a strong well establish cloud provider. And big players like Google and Microsoft will force them to always improve the quality of their services.
Fault-tolerance in Windows Azure SQL Database (Himanshu Singh) - Really nice article that explain the fault-tolerance, why it is needed, how it is done (replication, redundancy, detection, etc.).
SQL Azure – Disaster Recovery (Iain Hunter) - This is a mandatory post to read. The solution expose in this post is so simple to do. Everyone who use Windows Azure database should do it.
Top 5 Reasons Why You Should Refactor Your Code - Good post. Everyone should agree with those ideas of good code. More often, the problem come from determining how much effort and time to get it done that way.
Three cool things to try with your old netbook - Good idea that I also try with my Asus EeePC 701. The Ubuntu Netbook is also a really good option, you will be able to watch all the movies you want, have access to your Wi-Fi network and browse Internet.
Your words are wasted (Scott Hanselman) - Nice post that nails the idea where all developer should have a blog, blog more and doing it on their own controlled domain.
Scrum in 5 Minutes - Really nice post that describe very clearly the basic concepts and roles involve in Agile. It also suggests a book for more detailed explanations and a tool AgileSonic that looks gorgeous. A post to read.
“The problem is that writing code is much more like Finding a Cure for Cancer than Building a Brick Wall.”
Be More Productive. Take Time Off. (JASON FRIED) - That a nice idea! This post is about a company that try uncommon thing to boost productivity, and it works more than expected!
Ahhhhhhhhh! That was great! I was in vacation enjoying family time.
I read two no-technical books
Catching Fire – The Hunger Games book 2 (Suzanne Collins) – Great book!
Confessions of a Freelance Penmonkey (Chuck Wendig) – In this book you will found a lot of the really good post about writers… The style is different I and liked it!
And of course I have some reading notes that I didn’t publish before I went to vacation:
Multi-provider PaaSes - what exactly do they offer? - Great post where the author is sharing is toughs about the cloud. Putting your code in the cloud doesn’t make it elastic or invulnerable... you need to do it to make it append.
Introduction to Windows Azure Startup Tasks - Simple tutorial that is the perfect starting point for any one that knows the base of Azure. Nice catch for the "feature" in VS with batch scripts.
Windows Azure and Office 365 (Scott Gu) - Great post that pass through all the new features in Office365 and SharePoint.
Fault-tolerance in Windows Azure SQL Database (Tony Petrossian) - Really nice article that explain the fault-tolerance, why it is needed, how it is done (replication, redundancy, detection, etc.).
Marketing yourself as a programmer (Patrick Wyatt) - Being able to sale yourself as a good programmer is important to find a new job but also to progress and be happy at your current job.
Productivity vs. Guilt and Self-Loathing (Scott Hanselman) - This is a good post that need reflection. I could add that if you want to change something, do it progressively. Don’t try to wake up 3 hours earlier in one night...
One of the questions that clients often ask is: What tools could be used for Windows Azure development. Everyone knows that you need a web browser and a code editor (ex: Visual Studio), but what else? So, I decided to do a serie of posts to present them. This second post is about the Auto-scaling Application Block or WASABi for friends.
This serie is not meant to be an exhaustive list of all tools. Some other excellent tools are surely available. If you think I have forgotten one or want me to talk about one, let me know. I will be more than happy to adding it to the list.
To achieve elasticity until now, you needed to do it manually through the Azure management portal or writing your own code using the REST API. Using Wasabi, you just need to define some rules and the application will scale automatically: It can use a schedule or can be triggered by metrics, for example running fewer instances at night or adding extra instances if the CPUs are used at more than 80%.
The auto-scaling application block can be hosted either in a Windows Azure role or in an on-premises application. The auto-scaling application is typically hosted in a separate application from the target application that you want to scale.
Various scenarios are available to help you manage the auto-scaling by dynamically changing instance counts or performing application throttling of web/worker roles. The rules can auto scale based on timetables or metrics collected from the application and/or Windows Azure. You can even use notifications to preview any scaling operations before they take place and you can also use some PowerShell cmdlets to manage the autoscaler. You can constrain the auto scaling by:
Setting the instance counts upper and lower bounds
Preventing fast oscillations in the number of role instances with the stabilizer
For this demo we will use a simple Hello word application and scale it with a rule via a console application based on time.
Step 1: Put the app in Azure
To get started an Azure application is needed. Don’t forget to assign a certificate since the console application will need it.
You can then publish the application on the cloud.
Step 2: Adding the scaling application
Now create a console application and name it AutoScalingConsole. Add the WASABi package by executing: Install-Package EnterpriseLibrary.WindowsAzure.Autoscaling.
It should run without error and your Solution should look like this.
Step 3: Add and configure the rules
Add a new file call Rules.xml and set the property Copy to Output Directory: Copy always. Copy-paste this xml into the rules file.
It contains two rules: A default one that is always active, defining minimum and maximum instance counts of 1, and a second one used for scaling. The variable “Is rank” with a value of one means that it can be overridden by other constraint rules with a higher rank. . Naturally, if that rule is applied, there will be only a single instance of the role.
The second rule is named peaktime. This rule has the same target, a higher rank, a minimum value of two, a maximum value of four. Also a timetable makes the rule active for 20 minutes, starting at 10 minutes from the current time.
Step 4: Define the service model
You will now add a new xml file called services.xml and set the property Copy to Output Directory: Copy always. Copy-paste this xml into the services file.
Replace [yoursubscriptionname] with the name of your Windows Azure subscription and [yoursubscriptionid] with your Windows Azure subscription ID.
Replace [yourmanagementcertificatethumbprint] with your Windows Azure management certificate thumbprint.
Replace [yourhostedservicednsprefix] with the URL prefix of your Windows Azure hosted service.
Replace [yourstorageaccountname] with your Windows Azure storage account name and [yourstorageaccountkey] with your Windows Azure storage account primary access key.
Step 5: Configure the Auto-scaling Application Block
Right-click on the App.config file in Solution Explorer, add one if needed, then click Edit Configuration File. In the Blocks menu, click Add Autoscaling Settings. Now set the rules.xml and services.xml as sources for Rules Store and Service Information Store. Via the File menu, Save then Exit.
To by able to track evolution of the the testing let’s add some logging. In Visual Studio, double-click on the App.config file to open it in the editor. Then add this system.diagnostics at the end of the file:
You can now run the console application and observe how the auto-scaling rules work with the Azure application. Check the Output window in Visual Studio that logs which rules are being matched.
Conclusion
Using Wasabi makes your application elastic but doesn’t make your application scalable you must therefore design for scalability. If you have any comments, suggestions or experiences to share, feel free to let me know by adding a comment, by e-mail or by the contact page.
ASP.NET Web API and Azure Blob Storage (Yao) - Super tutorial that show step by step how to manage your Azure Blob Storage by code, by doing a nice helper class.
Exterminating Common jQuery Bugs (Elijah Manor) - Wow what a great video. It goes through all most frequent mistake we make, explain why it doesn't works and fix it. Take a look at the tool he is using. An open source (soon) presentation framework. Very nice!
3 Interview Questions That Reveal Everything (Jeff Haden) - Nice post. I like the questions it's true that you should learn a lot from them even if the candidate is not "verbose".
Architecting with AWS – Before You Go (Jeremiah Peschka) - Nice post about an architect training on AWS. The equivalent also exists for Azure... even if this post didn't talk about it.
What's New? - Wow the perfect monster machine to run those NoSQL databases...
All Things Distributed (Werner Vogel) - Nice post about the new high performance EC2 of AWS. All about the specs and features of this new instance type.
What Exactly Is GitHub Anyway? (Klint Finley) - Excellent post that demystify all unknown about GitHub. Nice work! A post that you should definitely read.
Azure CDN – with AzureCdn.Me and MVC3 (Iain Hunter) - Nice post and great tool. The AzureCdn.Me even has a NuGet package... This tool will simplify so much your work with the Azure content delivery network (CDN).
Advanced queries with Lucene.NET (codewrecks.com) - Lucene.NET is the best option to do full text search in Azure. This great post explains how to perform advanced queries.
Entity Framework and Open Source(Scott Gu) - I'm really happy to see that the Entity Framework is now completely open source and on CodePlex. Learn a bit more about version 5 and even 6.
ASP.NET Web API and Azure Blob Storage (Yao - MSFT) - Super tutorial that show step by step how to manage your Azure Blob Storage by code, by doing a nice helper class.
The Patient Knows What’s Wrong with Him - Nice thoughts, we shouldn't expect the solution from the user... only partial information. The analogy with the doctor is a really good idea, I’m sure I will reuse it someday...
[…]And the user exclaimed with a snarl and a taunt, “It’s just what I asked for, but not what I want!” That was 30 years ago, and I doubt the poem was new then.[…]
One of the questions that clients often ask is: What tools could be used for Windows Azure development. Everyone knows that you need a web browser and a code editor (ex: Visual Studio), but what else? So, I decided to do a serie of posts to present them. I’m therefore beginning with the indispensable SQL Azure Migration Wizard, since it’s used more often at the beginning of a project.
This serie is not meant to be an exhaustive list of all tools. Some other excellent tools are surely available. If you think I have forgotten one or want me to talk about one, let me know. I will be more than happy to adding it to the list.
What is SQL Azure Migration Wizard?
Most of the Azure projects that are starting these days are migration project or at least contain some data migration. The SQL Azure Migration Wizard, like its name implies , is a tool that will take you be the hand and help you migrate your database. In a few clicks the wizard will bring the database schemas and the data to the cloud.
Because Azure SQL database is very similar, but not totally compatible to Windows SQL Server 2008,the Wizard will also provide you a list of things that you should take care of like a missing clustered key.
How to use it
First, I will assume that you already have an active Azure account, if you don’t, please follow the instructions on this web page. Then of course you will need the SQLAzureMW tool that you can download on the CodePlex page project. Let’s do a simple migration from a local database to SQLAzure.
To get started, just double-click on the executable.
Some options will be proposed, but in our case we need to select: Analyse / Migrate SQL Database (second choice from the top)
Then pick your source. One nice thing with keeping the Master database selected, the list of all available databases on the specified server will be populated. Once you are done, click the Connect button.
The database used in this demo is a subset of Northwind database with three tables: Products, Suppliers, and Categories.
Once you have selected what you wanted to migrate, click the Next button.
Here three outputs are generated:
A result Summary: This explains all the steps made to extract the schemas and data of the database. The analysis will also highlight some incompatibilities and suggest some modifications. In this case, since I have not added any primary keys or indexes, it warned me that a clustered index will be added.
SQL Script: A nicely written database creation script that you can save for maintenance.
Data file: Since one of the best way to import massive data in AzureSQL database is by using BCP, some data files have been prepared to be imported.
Click the Next button to continue.
For the next step you will need a database server in Azure. So connect to the Azure portal, and from the left panel select Database.
You can than create a new server by clicking the Create button. You could also use a server that you already have.
Put the server name in your clipboard you will needed.
Back to our SQLAzureMW, paste the full name of the server in the Server name dropdown. It should be something like xxx.database.windows.net
Then enter the credentials of your SQL server. Note that the username should be follow by “@” and the first part of the server name.
Click Connect when you’re done.
Since no database was created, the list is empty. Let’s create a new database by clicking the Create Database button.
A popup window will ask for the name, location and format of the database to be created.
Click Create Database, and after few seconds you should be able to click the Next button to continue.
To see that the new database is really created go on the AzurePortal: you will see it in the database section.
After a quick confirmation the migration will be done.
A Nice summary is displayed so you can see if something went wrong.
The migration has been performed successfully, click Exit.
You can now connect to the new database by SQL Server Management Studio or by the Azure Management Portal.
You can see that the three tables are there and the data has also been migrated.
Like it was supposed to, the index was successfully created. This is really magic!
Conclusion
To conclude, let’s say that this tool is really fantastic and that you should definitely try it if you are planning to do a migration. It will save you a lot of time. Please note that the SQLAzureMW does not manage logins and users. I therefore strongly suggest using the Azure User Management Console – AUMC, available on CodePlex.
If you have any comments, suggestions or experiences to share, feel free to let me know by adding a comment, by e-mail or by the contact page. Next post is about the Windows Azure Auto-scaling Application Block (WASABi)
Monitoring your Windows Azure Web Site (Brian H. Prince) - Nice post that explain how to see the statistics of your servers with the new Azure graphic interface.
Overview of the Windows Azure Platform (Neil Mackenzie) - Great overview in this post about all the features of Windows Azure, specifying the advantages of each one.
Azure for Developers: Introduction to the Tutorial - Wow great job! This series of 8 post will explains all the basics (and more) about Windows Azure by constructing, step by step a real application. A perfect get started for all developer.
Windows Azure IaaS Overload (Michael Washam) - All regroup in one posts a lot of videos about crash course on Windows Azure IaaS.
Is recursion really bad? - Interesting demo about efficiency of recursive code compare to loop and stack. I would have liked to see the code that was used to test.
Rhino Mocks Isn’t Complicated (Jim Cooper) - This post by doing code sample comparison between convinces me to try it again. It's true that a Rhino mocks has change since last time I worked with it. The "new" syntax is really clearer.
10 crazy IT security tricks that actually work (Roger A. Grimes) - Good tips about security, even if some of them are for servers the other are simple to apply and should be very efficient.
Windows Azure - When do I use What? (Andrew Coates) - Nice quick post that demystify when it's the time to use a Azure website, a webrole or a VM.
Update on the Windows Azure Accelerators (Nathan Totten) - Important notice that explain why the Windows Azure Accelerators project is has become depreciated to be replaced by Azure Website.
Run your blog on Windows Azure (Brian H. Prince) - Quick tutorial to create a Wordpress blog with the new Azure Website services.
Windows Azure is a 3-Lane Highway: How to Drive It (David Pallmann) - Great post that clarifies how each parts of Azure service are working. Amazing works and the reference to the highway make it even clearer. Put it into your to read list.
Hadoop on Windows Azure - Wow, a fantastic post/tutorial that explain how Hadoop is working and how do some task with it.
Monitoring your Windows Azure Web Site (Brian H. Prince) - Nice post that explain how to see the statistics of your servers with the new Azure graphic interface.
Create and Consume JSON-Formatted OData - Great article that introduce a tool / framework call datajs. With datajs you can manage easily your oData directly in JavaScript.
Defend Your Sweet Spot (Peter) - Interesting post by Peter Bregman, the author of 18 minutes, that explains why finding and keeping your sweet spot is important.
[…] time management isn’t primarily about using minutes well, it’s about using yourself well.[…]