domgreen

The Geek Will Inherit the Earth

  • Host Multiple Web Sites in a single Azure Web Role

    • 23 Jun 2011
    • 0 Responses
    •  views
    • Azure Windows Azure
    • Edit
    • Delete
    • Tags
    • Autopost

    Multipleinstances

    Hosting multiple web sites in a single Windows Azure web role is much easier than it sounds, all you have to do is update the ServiceDefinition file as below to add in a new Site (unfortunatley, this can't be done via the VS associate menu item) to the Sites node and create an endpoint where it can be exposed.

    In the below example I add a new web project to the solution, at the same level as the one create automatically by the VS tools.

    When you then run your cloud application you will be able to see that two websites are created within IIS, and only a single node has been launched in the Compute Emulator.

     

    • Tweet
  • Bye Bye Microsoft, Hello Huddle

    • 7 Jun 2011
    • 0 Responses
    •  views
    • Huddle Jobs Microsoft
    • Edit
    • Delete
    • Tags
    • Autopost

    After 3 great years working as a Consultant for Microsoft in the UK, I have decided to make a move and join Huddle.

    Domandsteveb

    I started with Microsoft as a MACH graduate just afterI finished university and the three years since then has been a fantastic learning curve and allowed me to really build up some consulting based soft skills, deep technical knowledge of the Windows Azure Platform and given me the chance to work with some truly great people both in the UK and worldwide.

    During my time with Microsoft I have been able to work on a number of really great and ground breaking projects from visualising air and water quality around Europe with Eye On Earth and the European Environmental Agency, building up the first large scale (1000+) Windows Azure cloud busting applications along with generation of new patterns around scaling and units of scale within a cloud environment with RiskMetrics and helped to scale out the London Underground’s data feeds by moving their Trackernet data feeds into Windows Azure.

    Microsoft has also given me some great opportunities to travel, not just with the MACH graduate scheme where we went “training” (drinking) in Budapest, Istanbul and Dublin but I have been able to travel to present on Cloud computing in Seattle a number of times and also in Amsterdam allowing me to share what I have learned with fellow ‘softies. I have also been given the chance to work with customers all over the world travelling to Norway, Seattle, China and Israel working for various lengths of time helping customers realise the potential of the Windows Azure Platform.

    As part of my time at Microsoft I have also been awarded numerous times for my contribution to the company and the wider Microsoft ecosystem winning one of the most prestigious awards in Microsoft the Circle of Excellence – Platinum Club Award whilst still a graduate and getting to meet Mr. Ballmer on a number of occasions, not to mention a jolly to Monte Carlo. Outside Microsoft I was also a medalist in last years BCS Awards for the Young IT Professional of the Year.

    So … what's next?

    I'm going to be joining Huddle a relativley young company as a full time developer to really focus on my passion for coding and improving my technical skills. Day to day coding and being part of a Kaizen culture at the bleeding edge is something that I have been looking forward to doing for a long time, and the switch from a big corporate to a small startup company will be an eye opening experience. I am really excited to be working with some amazing people including Bandrew, ICooper and BobFromHuddle, and I’m sure the rest of the team will be just as great.

    Huddle provides the leading alternative to SharePoint in the cloud, collaboration, document management and social media integration is at the heart of Huddle. Huddle are already being used by numerous large organisations and government organisations such as Boots, AKQA and sections of the NHS.

    Microsoft has been a great company to work at, now its time for me to go and earn my scars in the big bad world J 

    Huddleblog

     

    • Tweet
  • Converting a CER to PFX Certificate

    • 25 May 2011
    • 0 Responses
    •  views
    • Windows Azure cer certificates pfx
    • Edit
    • Delete
    • Tags
    • Autopost

    After needing to use a cer file in Windows Azure to sign a web request I needed to upload the given CER file to the cloud and into my Azure nodes. This however proved problematic when the Windows Azure Management Portal only allowed the upload of PFX certificates (with a password) so I had to find a way to transform the current CER certificate to a PFX certificate.

     

    This method create a PFX certificate from a CER certificate at the location specified and gives a password to be used with the PFX certificate so that it can be successfully uploaded to Azure and used to sign my http requests.

     

    • Tweet
  • Calling the Correct Version of PowerShell from Startup Tasks

    • 9 May 2011
    • 0 Responses
    •  views
    • PowerShell Windows Azure osFamily startup task
    • Edit
    • Delete
    • Tags
    • Autopost

    During the deployment of the startup tasks used to create Event Logs in a previous post I noticed a number of errors with the roles deploying into a busy loop and never successfully deploying when trying to execute these tasks.

    This turned out to be a problem with the version of PowerShell running in the Windows Azure operating system that you are trying to boot and can be solved by specifically setting the osFamily within the Service Configuration file to family 2. This then ensures that the image used is made from Windows Server 2008 R2 and has full support for PowerShell version 2 allowing unrestricted execution without changing registry settings (as would be needed if using osFamily = “1”).

    The below snippet has been used to force the OS to the correct version needed for our scripts: 

    • Tweet
  • Creating Event Logs in Azure using Start Up Tasks

    • 8 May 2011
    • 0 Responses
    •  views
    • Deployment Windows Azure migration
    • Edit
    • Delete
    • Tags
    • Autopost

    Over the past couple of weeks I have been looking at migrating existing ASP.NET applications from being hosted in on premise to being hosted on the Windows Azure Platform.

    One of the problems that I have run into whilst trying to migrate the applications to Windows Azure was ensuring that the Event Log’s and Performance Counter were accessible and could be written to by the application.

    When running inside of Windows Azure applications tend to run without elevated permissions so we ended up running into multiple security messages signifying that the application could not write to the required event logs due to the lack of security permissions.

    A work around for this is to use a new feature recently added to Windows Azure and the ability to create startup tasks that can be run as administrator when the VM starts. From this we can run command statements to install the event logs and performance counters.

    Getting a startup task running in the Azure nodes means adding the following snippet to each role, this will run the specified command line task (startup.cmd) with elevated privileges before anything else is done on the VM (taskType=simple).

    The file startup.cmd is then added to the site (or could be added as an additional file during packaging) and ensure that the properties are set so that this and any other file needed for the startup task is set to “Copy always” this will ensure the file is within the package when built.

    Within this startup.cmd task we are to first set up PowerShell and then run our own PowerShell script which will contain the code to start register the event logs:

    Within CreateEventLog.ps1 we can then easily create event logs and sources with the following PowerShell snippet:

    This will now have created the needed event logs that can be written to by the application when it starts running ... no more security errors, and your eventlog is now accessiable.

    • Tweet
  • Your Taste is Why Your Work Disappoints You

    • 27 Apr 2011
    • 0 Responses
    •  views
    • Edit
    • Delete
    • Tags
    • Autopost

    Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it's just not that good. It's trying to be good, it has potential, but it's not. But your taste, the thing that got you into the game, is still killer. And your taste is why your work disappoints you. A lot of people never get past this phase, they quit.

    This quote was posted via Hacker News and really resonates with me, the feeling of helplessness and longing to be better than you currently are. Working as an aspiring developer I often find myself getting frustrated, that I am not as talented as those around me and the people that I aspire to be like.

    This disappointment in where I currently am can almost be viewed as a reassuring factor, showing how passionate I really am about becoming a better developer and that I truly care about the work I do. This will hopefully drive me to constantly push to become better and embrace a kaizen culture of continual improvement.

    Sometimes I have to keep telling myself that I am still young and have plenty of time to improve and cultivate my skills.

    One thing is for sure ... there will be no quitting.

    • Tweet
  • Automating Cloud Deployment using Rake

    • 27 Apr 2011
    • 0 Responses
    •  views
    • Azure Deployment Rake Ruby Windows Azure
    • Edit
    • Delete
    • Tags
    • Autopost

    After a previous post where I discussed the benefits of using existing tools over creating your own build tasks I have been able to reproduce exactly the same deployment script working in Rake as I had previously shown in MSBuild using the Windows Azure Tools to control the deployment and initialization of instances in the public and local cloud environments.

    When deploying to the public cloud the only thing that I have changed in the scenario is to add a line to use the CSPack tool rather than relying on the MSBuild tasks supplied with the Windows Azure SDK to create the cloud package for my application.

    The full Rake build, deployment and initialization script is below, showing that we can use all the same tools and concepts independent of the build engine. This script relies heavily on calling out to the command line with the exec method that I have created to pass in the command line arguments.

     

    • Tweet
  • Tools Not Tasks … Automating Cloud Deployment

    • 26 Apr 2011
    • 0 Responses
    •  views
    • Edit
    • Delete
    • Tags
    • Autopost

    I have been involved in talks recently about how to automate deployment into a Windows Azure environment, after doing a number of presentations and white papers on the subject. I have decided that my personal preference is that we should not be getting our dev teams to write custom PowerShell, or MSBuild scripts to automate the deployment and instead use out of the box tools that are freely available to do the job instead.

    This will get us to the desired result, an automated build process that reliably deploys applications into the cloud independent of the platform and development environment.

    The up side of using existing tools / executable are:

    • No development required
    • Lets you focus on the application not on the deployment
    • Tools are developed by SME’s for a specific purpose
    • No need to maintain and update in house
    • Easy to replace and update with platform changes
    • Community supported
    • Proven agility on projects (I have used this approach with a number of customers)

    So with this in mind I have been able to use a variety of out the box tools to get my Windows Azure build to automate my deployments. The one gotcha at the moment is that there is no simple tool that I have found to upload a package to Azure Storage, this I have developed myself and can be used on multiple projects.

    The tools I will be using to deploy into the public cloud for Windows Azure are:

    • CSPack – Package application into cspkg to deploy into Windows Azure
    • AzureUploader – Custom tool to upload packages to Windows Azure Storage
    • CSManage – Call the Azure Service Management API to start / delete deployments
    • CSRun – Needed for deployments against the development fabric

    If using MSBuild to run your build and deployment you can also use the in built tasks for creating a package, the below code snippet shows the basic outline of the local and cloud targets. The new targets that we create will have to be kicked off “AfterBuild” and then also depend on the CorePublish or CorePacakgeComputeService for creating the deployment package based on the environment (dev fabric or public cloud).

    The tokenised outline for the CloudDeployment scenario is:

    This shows the process that you will need to go through in order to deploy to the public Windows Azure platform. The command PacakageUploader calls into the AzureUploader tool with the specified command line arguments giving the package we generated (from CorePublish) and the connection string for the storage account.

    The next couple of commands Suspend, Delete, Create and Run all then use the CSManage command line tool to call the Service Management API enabling us to deploy and run the application in Windows Azure. You will be able to see that each of these also has the ContinueOnError flag set to true, this is due to a small bug in the tool that gives an incorrect return value when the operations return successfully.

    In comparison to deploy against the local dev. fabric you only need to use CSPack (or the MSBuild target) and the CSRun command line tool that allows us to start the dev. fabric with a given package.

    As you can see this whole process should be able to be run using any build engine, the only slight alteration is to take out the shortcut I used for packaging the application and use the CSPack command line tool instead.

    This approach to build seems to make a lot more sense to me, there is no need to maintain or code any of your own targets to do work when there are perfectly capable tools already released and looked after by domain experts, leaving you to concentrate on your application instead of how to build and deploy it into different environments.

    The full build script that I currently run from MSBuild is below, this can be updated and improved further by tokenising all variables so that you can then deploy into multiple environments and accounts.

    • Tweet
  • I Support the Agile Manifesto!

    • 26 Apr 2011
    • 0 Responses
    •  views
    • Edit
    • Delete
    • Tags
    • Autopost

    We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

    Individuals and interactions over processes and tools

    Working software over comprehensive documentation

    Customer collaboration over contract negotiation

    Responding to change over following a plan

    That is, while there is value in the items on the right, we value the items on the left more.

     

    Agile Development is something that I firmly believe will not only ensure that we are building the best software for customers but will also improve ourselves and the team as developers.

    To show my support and belief in Agile methodologies I have signed the manifesto.

    I feel that as an advocate of Agile software development it is also my responsibility to evangelize these practices and ensure that as many like-minded people sign up to show their support. My aim is to get 10 friends to also sign in support of the manifesto.

    If also feel passionate about developing the best quality software using Agile methodologies you can also become a signatory here.

    • Tweet
  • Lets Play TDD

    • 24 Apr 2011
    • 0 Responses
    •  views
    • Java TDD Testing
    • Edit
    • Delete
    • Tags
    • Autopost

    Test Driven Development is a development area that facinates me however, one of the problems that I currently have adopting TDD is getting it put into use on real world projects as well as keeping the rest of the team motivated to practice TDD when deadlines are closing in.

    For this reason I have been trying to implement TDD on small projects and coding problems in my spare time. One thing that has really helped with this over the past couple of weeks has been an excellent video series by James Shore called Lets Play TDD.

    The video series shows James developing a financial application from scratch using TTD. Watching such a video series is great for a number of reasons:

    • It lets you see how TDD is done in a more real world scenario by people that have had experience doing it for a number of years.
    • Very useful  way of seeing some of the real world problems and things you need to consider when doing TDD.
    • The series has also allowed me to polish up on some of my Java skills that have sat dormant since my university days.
    • Watching someone else code is a great way to improve your skills by watching how their thought process works and some of the tricks they are doing both with the code and the IDE they are using. 
    • Following along with your own project is a great way to re-enforce learning and get some hands on experience of what is being talked about

    Lets Play TDD is released on a regualr cadece and is now has over 100 videos in the collection, if your interested in TDD or watching how someone else codes then go check the series out right here:

    http://jamesshore.com/Blog/Lets-Play/

     

    • Tweet
  • « Previous 1 2 3 4 5 Next »
  • About

    By day a virtual warrior, hunched over a keyboard cranking out line after line of code at Huddle, living the East London tech dream at Silicon Roundabout. We are an Enterprise collaboration tool that will revolutionise how your company collaborates, shares and operates, we are taking the fight to Microsoft SharePoint, we are David and we're taking on Goliath.

    However, by night this pasty geek escapes his keyboard and monitor with the attempt to get fit. I train at one of the greatest gyms in London, Thames CrossFit. CrossFit is not like other gyms its a lifestyle, and as the guys at Thames say you must be prepared to work hard.

    I also run with the great Run Dem Crew a Shoreditch based running family who run the mean streets of London by night. RDC is a mecca for runners, and creatives alike.

    With all this training its bound to get hard, its bound to be tough but its certainly worth it when you achieve something great and make friends along the way.

    So remember, "Pain is temporary but victory is forever".

    75486 Views
  • Archive

    • 2011 (13)
      • June (2)
      • May (5)
      • April (6)
    • 2010 (3)
      • April (1)
      • January (2)

    Get Updates

    Subscribe via RSS
    TwitterBuzz