Thu, 26 Feb 2015 10:00:21 GMTOriginally posted on: http://geekswithblogs.net/asmith/archive/2015/02/26/161630.aspxI’ve been developing delivering training courses in the Azure technologies and services since 2010. During that time we have seen Azure evolve rapidly, with the addition new services and continued evolution of existing services. Currently there are over 40 services available in production, if you count the services in preview the total is over 50. Developing and delivering Azure training courses and keeping them up to date is challenging. During one course last year I modified a slide in front of the students to update the maximum capacity of a storage account, only to have to modify it again the next day after an announcement that the capacity had increased again. Whilst there is a rapid evolution on the Azure platform and services, there are a lot of areas where the theory and practices have remained constant. The way that applications use the storage services, the design patterns we use when working with non-relational Table Storage and the best practices used when building a cloud-based or hybrid application have remained very similar. With over 50 services available for customers to use and preview, there is also a challenge in what to cover during an Azure course. For public classes, where the attendees come from a range of backgrounds, I focus on what I call the core Azure services. Many of the Azure projects that I have worked tend to focus on leveraging services like Azure Storage, Azure Service Bus, Azure SQL Database, Azure Websites and occasionally Azure Worker Roles. Having a good understanding of these core services will allow developers to start building real-world application in the cloud. There are many other services that will only be used in a minority of applications, such as Azure Media Services or Azure Machine Learning. Having a good overview of the core Azure services will give developers a head start when exploring these new services. Many of the training engagements I deliver are custom engagements for organizations who are leveraging Azure in one of their projects. In these scenarios the content of the course can be tailored to match both the requirements of the team, and their existing knowledge of Azure and .NET development. One customer may want to have very deep coverage of Azure Service Bus Brokered Messaging, whilst another may want to focus on Azure Web Sites and Azure Media Services. Providing this kind of customized training for a development team can provide a lot more value for the company than the developers attending public courses, where only a fraction of the content will be relevant to the project, and coverage of the relevant sections may not be of sufficient depth. If you are interested in attending one of my public classes or workshops, the following dates are scheduled at the AddSkills training center in Stockholm, Sweden. Microsoft Azure Service Bus In-Depth 23rd – 24th April Microsoft Azure In-Depth 27th – 29th April Azure Racing Game Workshop – 8th May These courses are targeted at experienced .NET developers and many of the labs have additional challenge exercises for those who complete the lab quickly and would like to reinforce their new skills by solving an additional scenario. All training materials are kept fully up to date with the latest developments in the Azure technologies and services. All the training and materials are in English. If you are interested in custom on-site training, I can put together a course tailored to meet the requirements of your team. Feel free to contact me at firstname.lastname@example.org. I also deliver the official Microsoft Azure training courses, my full training schedule is available at www.cloudcasts.net. If you are based in Europe it would be worth a trip to Stockholm to attend a course, and spring is one of the best times to visit. [...]
Mon, 09 Feb 2015 10:40:50 GMT
Originally posted on: http://geekswithblogs.net/asmith/archive/2015/02/09/161453.aspx
I’ve just published a new version of the CloudCasts website at www.cloudcasts.net.
I published the first version in May 2009, and at the time it was running in a single web role instance on my PDC08 Azure trial account. To give you an idea of how much the Azure technologies have moved on since then, this is what the portal looked like when I was deploying it (hand’s up if you remember that interface)…
So much has changed since then, and the new version is focusing more on the webcasts I have recorded, and also the many conference presentations that I have done over the years. I’m embedding videos from YouTube and Channel9 instead of hosting directly in Blob storage, which makes for a much better user experience.
I have also added a bit of content to my e-book, the title has changed from “Azure Service Bus Developer Guide” to “Azure Developer Guide”, and I intend to add more coverage of the core Azure services, and how I am using them in some of the projects I am working on. The guide is located here: www.cloudcasts.net/devguide
Now all I need to do is find the time to keep it updated…(image)
Mon, 19 May 2014 07:49:23 GMT
Originally posted on: http://geekswithblogs.net/asmith/archive/2014/05/19/156418.aspx
Sweden Azure Group (SWAG) has the privilege of welcoming Michele Laroux Bustamente and Maartin Balliauw to present sessions at our meeting this Thursday. Michele and Maartin are two of the world’s leading experts in Cloud Computing and Azure, and will be taking time out from their busy schedules to share their ideas with us, and answer any questions. Knowit Stockholm are kindly hosting the event at their offices, and providing food and refreshments. It should be a great evening.
You can register for the event here.
Azure Q & A - Michele Leroux Bustamante
In this interactive Q & A session Michele Leroux Bustamante will be on hand to share her wealth of experience on Azure related issues. If you are new to Azure and wanting some tips to get started, or an experienced developer needing to negotiate the legal and political protocols related to Cloud Computing Michele will have been there, done that, and be willing to share her experiences. This session will be entirely driven by that attendees, so please come prepared with questions.
Reducing latency on the web with the Windows Azure CDN – Maarten Balliauw
Serving up content on the Internet is something our web sites do daily. But are we doing this in the fastest way possible? How are users in faraway countries experiencing our apps? Why do we have three webservers serving the same content over and over again? In this session, we’ll explore the Windows Azure Content Delivery Network or CDN, a service which makes it easy to serve up blobs, videos and other content from servers close to our users. We’ll explore simple file serving as well as some more advanced, dynamic edge caching scenarios.
Michele Leroux Bustamante
Michele Leroux Bustamante is CIO at Solliance (solliance.net), cofounder of Snapboard (snapboard.com), and is recognized as a Microsoft Regional Director and MVP. Michele is a thought leader with over 20 years specializing in building scalable and secure end-to-end system design, identity and access management, and cloud computing technologies – for companies of all sizes.
In recent years Michele has also helped launch several startup business ventures and has been a mentor to startups in several accelerator programs – providing both technical and business guidance. Michele shares her experiences through presentations and keynotes all over the world, and has been publishing regularly in technology journals.
Maarten Balliauw is a Technical Evangelist at JetBrains. His interests are all web: ASP.NET MVC, PHP and Windows Azure. He’s a Microsoft Most Valuable Professional (MVP) for Azure and an ASPInsider. He has published many articles in both PHP and .NET literature such as MSDN magazine and PHP architect. Maarten is a frequent speaker at various national and international events such as MIX (Las Vegas), TechDays, DPC, …(image)
Mon, 17 Mar 2014 11:24:11 GMT
Originally posted on: http://geekswithblogs.net/asmith/archive/2014/03/17/155700.aspx
For the past few months I have been working on a Windows Azure Storage In-Depth course for Pluralsight. The course is now live, and available on their site.
The content is as follows:
If you are new to Windows Azure and want to get an idea of the usage scenarios, performance and scalability of Windows Azure Storage it’s well worth taking a look at the introductory modules and scenarios. If you are an Azure developer the more advanced sections will be good for getting to grips with the full feature set of the storage services.
I really enjoyed putting the course together, and doing so taught me a lot about some of the more advanced usage scenarios of the storage services. Hope you find the course useful, and feel free to contact me with any feedback or questions.
The course is available here.(image)
Fri, 07 Mar 2014 15:08:42 GMT
Originally posted on: http://geekswithblogs.net/asmith/archive/2014/03/07/155614.aspx
For the past few months I have been working on a pet project to integrate a 3D car racing game with back-end services hosted in Windows Azure. It has been a really fun project to work on, and has been a great learning experience for using Azure services for game services and telemetry processing, but also getting a look at the world of game development, 3D graphics, and developing physics engines for games.
Red Dog Racing is a 3D driving game that makes use of back-end services hosted in Windows Azure. Sector and lap time data and telemetry data is send from the game to the Windows Azure Service Bus. A worker role is used to de-queue and process the data and store it as entities in Windows Azure Table Storage. Telemetry data is also sent to Windows Azure Blob Storage to provide the game with a replay function that displays ghost cars for the fastest laps driven by other players. The best lap times, overall standings, and driver telemetry data can be viewed on a website.
I have used the game as one of the scenarios in my recently published PluralSight course Windows Azure Storage In-Depth, to show how I use Queues, Table Storage and Blobs to process and store lap time, telemetry data and replay data from the game.
I will be presenting my Game Services and Telemetry Processing in Windows Azure session at a number of conferences over the next few months.
I’ll also be hosting one-day workshops with hands-on labs based on the game at NDC in Oslo, and DevSum in Stockholm, and including labs based on the scenario in my Windows Azure In-Depth training course. I will also be delivering one-day workshops based on the scenario to companies and training centers.
If you want to learn more about telemetry processing or implementing game services in Windows Azure, or would be interested in a Windows Azure training course or workshop please feel free to contact me though this blog.
In future posts I will be digging deeper into the implementation, and sharing my ideas about what makes Windows Azure such a great platform for developing scalable data storage and telemetry processing applications.(image)
Thu, 19 Sep 2013 19:47:23 GMT
Originally posted on: http://geekswithblogs.net/asmith/archive/2013/09/19/154085.aspx
The CloudBurst conference kicked off in Sweden today with sessions from Mark Brown, Magnus Mårtensson, Mike Martin, Maarten Balliauw, Scott Klein and Andy Cross. It was great to see such a good line up of presenters and some excellent sessions. Just like last year we had a packed room with many developers returning after last years event, and all sessions being live streamed.
We have a great line up for day 2, and will be live-streaming all the sessions from 09:00 Central European time. You can see the session line up and link to the live stream on the CloudBurst website.(image)
Thu, 15 Aug 2013 08:26:19 GMT
Originally posted on: http://geekswithblogs.net/asmith/archive/2013/08/15/153731.aspx
After months of planning today is the day we go public with CloudBurst 2013. We are following on from CloudBurst 2012 with two full days of presentations from community and industry leaders.
Magnus and I decided to run CloudBurst 2013 the day after CloudBurst 2012. Last year’s event saw some excellent presentations and great enthusiasm from the attendees. Following on from feedback from last years attendees we have shortened the lunch breaks to allow more session time, and there will be a “Mingle & Drinks” event at the end of day 1 where you will get a chance to chat with the presenters and other attendees.
The proposed session line-up as as follows:
All sessions will be in English. More details are on the event website.
The event will be free to attend*, but places are limited. Register here.
If you would like to be informed of more Sweden Windows Azure Group (SWAG) events, sign up here.
* Because this is a free event with very limited attendance capacity where great speakers donate their time that you will get to experience we ask you to very carefully honor your ticket. We reserve the right to invoice you 500 SEK if you reserve a ticket but do not attend the event.(image)
Tue, 13 Aug 2013 08:56:16 GMT
Originally posted on: http://geekswithblogs.net/asmith/archive/2013/08/13/153713.aspx
Jesper Zachrisson, Magnus Mårtensson and I will be presenting a semiar at Active Solution on Wednesday 28th September 11:30 – 12:45.
“Active Solution har satsat hårt inom molnet i allmänhet och Windows Azure i synnerhet. Olika typer av mer allmänna molntjänster som exempelvis mail är idag ett vanligt inslag hos de flesta företag. Active Solution använder molnet främst till lösningar som är unika för ett visst företag. Här har utvecklingen gått långsammare men det finns samtidigt mer att vinna i många fall.
Vi har bara under det senaste året jobbat i ett 15-tal uppdrag med kundunika lösningar. Vi ser att molnet används allt flitigare bland "IT-tunga" företag men att det är långt kvar för många "vanliga" företag och organisationer. Ursäkterna eller förklaringarna är inte alltid hållbara. Det tycker vi är fel och vill med det här seminariet visa hur andra gör.”
The event is free to attend. If you would like to attend you can register here.(image)
Fri, 14 Jun 2013 12:20:58 GMT
Originally posted on: http://geekswithblogs.net/asmith/archive/2013/06/14/153136.aspx
2013 has been a hectic year for conference presentations so far, NDC in Oslo has been the 6th conference I have attended, and my session there was my 11th conference presentation this year. I have been meaning to make the short trip over from Stockholm to NDC for a few years, and this was the first time I made it. I have heard a lot of great things about the event, and was impressed with the location, the sessions, and most of all the atmosphere around the event boots and during the party on Thursday evening.
The session I was delivering was my “Grid Computing with 256 Windows Azure Worker Roles & Kinect” demo, which I have delivered at many events over the past 12 months. The demo went fine. I’m always a little nervous when I try to scale out the application to 256 worker roles, it almost always works well and the application will scale in minutes, but very occasionally there can be a longer delay due to the provisioning process in the Windows Azure data centers. This would not be an issue for many scenarios, but when standing on stage in front of a room full of developers you really want things to run smoothly.
A number of people have suggested that I should pre-provision an environment so that it is guaranteed to be there when I run the demo during a session. For me the aim has always been to show the rapid scalability on cloud-based platforms live on stage. Pre-provisioning an environment may make for a more reliable demo but to me that would be cheating, and not half as much fun!(image)
Sun, 28 Apr 2013 19:46:02 GMTOriginally posted on: http://geekswithblogs.net/asmith/archive/2013/04/28/152812.aspxYesterday the attendees of the Global Windows Azure Bootcamp took part in a Global Render Lab that was built on the Windows Azure platform. The lab was adapted from a simple demo I wrote in 2010, and then adapted for a lab that I use on my Windows Azure training courses. The lab allowed attendees from events all over the globe to participate and compete in rendering frames in a 3D animation. All the processing would take place in a Windows Azure datacenter. About 750 attendees from 50 locations in 22 countries took part in the lab. During the event a total of 9904 worker role instances were started, with over 4,000 instances running concurrently for the second half of the event. 724,059 3D ray traced animation frames were rendered with a total render time of 4 years 184 days 2 hours and 46 minutes. The overall compute time used by the 9904 worker roles was almost 7 years. The Global Render Lab website received 3,718 unique visits, with 40,022 page views during the event. At times there were over 100 simultaneous visitors on the site. The traffic on the website was sustained over the day with over 5,000 page views per hour at its peak. The website was hosted on a single small reserved instance in Windows Azure Websites, with the ASP.NET cache being used to cache the result sets form the queries to the Windows Azure SQL Database. 228 animations were published to the website using Windows Azure Media Services. The peak inbound data was 6.57 GB per hour, and the maximum encoding job queue depth reached 43 jobs. The worker roles used 4 storage accounts for animating, rendering, and encoding and media storage. The rendering storage account peaked at 2,105,873 queue requests per hour, which is an average of 585 requests per second. The peak for blob storage was 415,435 requests per hour, which is an average of 115 requests per second. Creating the Global Render Lab – The Two-Dollar Demo Back in 2010 there was a lot of buzz around Windows Azure and Cloud Computing as they were, and still are, new and rapidly evolving technologies. I had set through a number of presentations where the scalability of cloud based solutions was evangelized, but had never seen anyone demonstrate this scalability on stage. I wanted to create a demo that I could show during a 60 minute conference or user group presentation that would demonstrate this scalability. My first job in IT was as a 3D animator and I had initially learned to create animations using PolyRay, a 3D text-based ray-tracer. Creating ray-traced animations is very processor intensive, so running PolyRay in a Windows Azure worker role and then scaling the number of worker roles to create an animation would be a great way to demonstrate the scalability of cloud-based solutions. I created a very simple Windows Azure Cloud Service application that used PolyRay to render about 200 frames that I could use to create an animation. The first time I shoed the demo was in Göteborg Sweden in October 2010. As I had was using the Windows Azure benefits in my MSDN subscription I had 20 cores available, and I demoed the application scaling to 16 cores. As the compute costs at the time were $0.12 per hour, 16 cores would cost $1.92, so I joked with the audience that it was my two-dollar demo. Grid Computing with 256 Worker Roles and Kinect Running on 16 instances was fine, but I really wanted to make the demo a little more impressive. Scaling to 256 instances seemed like the next logical step, and this would cost a little over $30 to run for an hour. With 256 instances I really needed a more impressive way to be able to create animations. I hit on the idea of using the depth camera in a Kinect sensor to capture depth data that coul[...]
Thu, 25 Apr 2013 22:27:15 GMT
Originally posted on: http://geekswithblogs.net/asmith/archive/2013/04/26/152793.aspx
I’m just putting the finishing touches on the Global Render Lab for the Global Windows Azure Bootcamp. The lab will allow bootcamp attendees around the world to join together to create a render farm in Windows Azure that will render 3D ray-traced animations created using depth data from Kinect controllers.
There is a webcast with an overview of the Global Render Lab here.
If you are attending a Global Windows Azure Bootcamp event you will have the chance to deploy an application to Windows Azure that will contribute processing power to the render farm. You will also have the chance to create animations that will be rendered in Windows Azure and published to a website.
A Kinect controller will be required to create animations, if you have either a Windows Kinect, or an X-Box Kinect with a power supply and adapter for a standard USB connection, please take it with you to the Global Windows Azure Bootcamp event you are attending. Having as many locations there are where attendees can create and upload animations as possible will male for a great community lab on a global scale.(image)
Mon, 01 Apr 2013 20:12:15 GMTOriginally posted on: http://geekswithblogs.net/asmith/archive/2013/04/01/152568.aspxIn the third of the series looking at website authentication with social identity providers I’ll focus on deploying the relying party application to a Windows Azure Website. This will require making some configuration changes in the management console in ACS, and the web.config file, and also changing the way that session cookies are created The other parts of this series are here: Website Authentication with Social Identity Providers and ACS Part 1 Website Authentication with Social Identity Providers and ACS Part 2 – Integrating ACS with the Universal Profile Provider The relying party website has now been developed and tested in a development environment. The next stage is to deploy the application to Windows Azure Websites so that users can access it over the internet. The use of the universal profile provider and a Windows Azure SQL Database as a store for the profile information means that no changes in the database or configuration will be required when migrating the application. Creating a Windows Azure Website The first step is to create a Windows Azure Website in the Azure management portal. The following screenshot shows the creation of a new website with the URL of relyingpartyapp.azurewebsites.net in the West Europe region. Note that the URL of the website must be unique globally, so if you are working through this solution, you will probably have to choose a different URL. Configuring a Relying Party Application With the website created, the relying party information will have to be configured for Windows Azure Active Directory Access Control, formally known as Windows Azure Access Control Service, (ACS). This is because the relying party configuration is specific to the URL of the website. One option here is to create a new relying party with the URL of the Windows Azure Website, which will allow the testing of the op-premise application as well as the Azure hosted website. This will require the existing identity providers and rules to be recreated and edited for the new application. A quicker option is to modify the existing configuration, which is what I will do here. The existing relying party application is present in the relying party applications section of the ACS portal. In order to change the configuration for the host application the name, realm and return URL values will be changed to the URL of the Windows Azure Website URL (http://relyingpartyapp.azurewebsites.net/). The screenshot below shows these changes. For consistency, the name of the rule group will also be changed appropriately. With these changes made, ACS will now function for the application when it is hosted in Windows Azure Websites. Configuring the Relying Party Application For the relying party application website to integrate correctly with ACS, the URL for the website will need to be updated in two places in the web.config file. The following code highlights where the changes are made.
Sun, 24 Mar 2013 17:39:36 GMTOriginally posted on: http://geekswithblogs.net/asmith/archive/2013/03/24/152503.aspx This is the second in a series of articles looking at using Windows Azure Active Directory Access Control (formally Windows Azure Access Control Service), to integrate the authentication services provided by social identity providers to authenticate users with a website. This walkthrough will continue on directly from Website Authentication with Social Identity Providers and ACS Part 1, and add integration with the new .NET Universal Profile Provider. Integrating ACS and Social Identity Providers with the .NET Universal Profile Provider The site currently allows users to authenticate with a number of social identity providers, but does not allow users to build up a site profile, or store any user specific information. In many cases, once a user is authenticated, there will be a requirement for the user to store information or configure a site profile. In this step the ASP.NET Universal Profile Provider will be used to store user profile information. The profile provider will need to be integrated with the claims provided by ACS so that the authenticated user can be matched to their saved profile. The architecture of the proposed implementation is shown below. .NET Universal Providers The .NET Universal Providers provide integration with multiple data sources, including SQL Server, SQL Server Compact and, most importantly for Azure developers, Windows Azure SQL Database. Scott Hanselman has an excellent blog post Introducing System.Web.Providers - ASP.NET Universal Providers for Session, Membership, Roles and User Profile on SQL Compact and SQL Azure, which provides some background on the providers. Installing the Microsoft .NET Universal Providers The Microsoft ASP.NET Universal Providers is installed as a NuGet package, the searching for “universal” in the Manage NuGet Pachaged dialog box will find the package in the search results. Clicking the Install button will install the universal providers and their dependencies. The installation of the NuGet package will also make changes to the Web.config file for the application to configure the providers.
Tue, 19 Mar 2013 19:58:39 GMTOriginally posted on: http://geekswithblogs.net/asmith/archive/2013/03/19/152462.aspxA couple of weeks ago I was on the road, presenting at SDC in Gothenburg, TechDays in Finland and TechDays in The Netherlands. I delivered five sessions, the “Grid Computing with 256 Windows Azure Worker Roles & Kinect” at all three events, and also two new sessions, “Migrate an On-Premise Application to the Cloud in 60 Minutes” and “Web Site Authentication with Social Identity Providers” at TechDays in The Netherlands. It was a hectic week, but the events were great to be a part of. SDC in Göteborg had a great speaker’s dinner, as always, the event was coinciding with an indoor athletics event, so we were not in the usual rooms, but I did get to eat breakfast on the table next to Team GB. I arrived at TechDays in Finland, and had an hour to so to prepare before presenting my session, which was second to last on the last day. I saw “TechDays Päättyy” on the program at the end of the day, and interpreted it as meaning “TechDays Party”, so I was disappointed when everyone disappeared and the venue emptied. It seemed like a good event, it was a shame I could not be there for longer. The next day I took a flight to Amsterdam, and made it to TechDays The Neatherlands in plenty of time for my session an Thursday. It was great to meet up with Clemens, Nuno, Rob Miles and Iris, and I got to have dinner with Scott Klien. I did another two sessions on the Friday, and then headed back home Saturday morning. The event was very well organized, add I was a bit skeptical of having 75 minute sessions instead of the typical 60 minutes, but after engaging in quite a few questions and discussions during my sessions I was glad of the extra time. There is a recording of the “Migrate an On-Premise Application to the Cloud in 60 Minutes” session on channel 9. I have some more presentations planned over the next few months… · 17th April – Designing for the Cloud workshop at ITARC in Sweden · 6th May – Migrate an On-Premise Application to the Cloud in 60 Minutes and Web Site Authentication with Social Identity Providers at Azure User Group Belgium · 29th-31st May – Grid Computing with 256 Windows Azure Worker Roles & Kinect at DevSum in Stockholm · 12th-14th June – Grid Computing with 256 Windows Azure Worker Roles & Kinect at NDC in Oslo I’d be happy to present these, and other sessions at conferences, user groups, and for companies, feel free to contact me through my blog if you are interested. [...]
Sun, 17 Mar 2013 18:56:52 GMTOriginally posted on: http://geekswithblogs.net/asmith/archive/2013/03/17/152436.aspxThis article is the first in a series of three articles looking at using the Windows Azure Access Control Service to implement web site authentication using social identity providers. It will show how Microsoft, Yahoo and Google accounts can be used to authenticate users using their social identities and login credentials rather than requiring them to create credentials and an identity on the website itself. Website Authentication using Social Identity Providers In this scenario social identity providers will be used to authenticate users for an ASP.NET website. Microsoft, Google and Yahoo will be used as identity providers, and the Windows Azure Access Control Service (ACS) will be used to convert the security tokens and transform the claims to a common format for the website. A Google account with two-step authentication will then be used to provide administrative access to the site using rules in ACS. Creating a Relying Party Application The first step is to create a simple relying party application. This will be created as an ASP.NET application, which can be tested locally, and then deployed to Windows Azure Websites. To keep things as simple as possible, the application will consist of a default page, a page for site members and a page for site administrators. The solution structure for the website is shown below. The Default.aspx page can be viewed by anyone, but content in the Members folder requires that users are authenticated. This is configured in the Web.config file in the Members folder.