Skip to main content

Posts

Showing posts with the label Azure

Remote login on Azure Roles

In case you do not follow this guy :), there has been one significant change to Azure which would make developers life much easier while debugging and testing an azure deployment. You can now enable remote login into azure deployment without requiring you to enable it during the package creation. This means even if the deployment happened with Remote login not enable, you can still enable remote login from azure management portal directly. More details are available here  So no more forgetting remote login option. Just do a deployment and if required enable remote login from azure management portal .

Azure and Package Deployment for Specific Roles

When a single Azure Subscription Service has multiple roles (Web and Worker) in it, updates to the role cannot be selective. Time and again I have had scenarios where I wanted to update the one role but did not want to touch the other. But as Azure deployment works, there is a single package and it updates all roles in the subscription.  While doing an update today I was pleasantly surprise that now while updating the site I do have an option to select which specific role to update. Here is what the dialog looks like now So now we can update specific roles without touching other ones. Great!!! Things to keep in mind here would be, once deployment is complete you cannot tell which role was updated and which is still running on a older version. But the deployment name does change. So i think this is a good feature for some quick fixes, else we should stick to simultaneous updates only.

Appharbor build notification using Google Talk (XMPP) - Implementation

In my last post about creating an Appharbor notification bot, I described about the problem domain, the solution approaches and how the end to end scenario works.This post would dig deeper into the implementation aspects of the solution. To start with we need to understand the two esential ingredients for this recipe Appharbor Service hooks : Appharbor Service hooks are the building block for the solution. Appharbor provides capability, where it can post to any public url with status of a build on completion. Service hooks are available for events Build Success. Build failure. XMPP protocol : XMPP is a protocol used for Instant Messaging (IM) communication. It allows us to relay messages to the users IM client using XMPP servers (in our case Google Talk messaging servers). With the understanding on these two concept we are ready to dive into the nitty gritty  of the solution. Assuming that the user did the initial configurations to setup notifications (see ...

Appharbor build notification using Google Talk (XMPP)

Appharbor recently ran a contest to encourage developers to use their API and showcase the API capabilities. Based on some ideas floated by the Appharbor team I too decided to build something useful\interesting for Appharbor platform.I decided to create a desktop notification client which can notify user when the build is complete, its status in terms of success or failure. How Appharbor works is that you push your code to a git repo supported by Appharbor ( github , bitbucket etc). As soon as the checkin is done, Appharbor pulls the code base build it, and updates the running website. It's like a single click deployment! I started to explore my option for a desktop client and some of the options I though of were Build a desktop windows app and integrate with the Appharbor API.  This approach was the most flexible approach. I have full control of features and capabilities, but would take a good amount of time to develop. Use third party desktop notification apps like...

Azure Blob file download not resuming !

Azure Blobs are a scalable infrastructure to host\store files. I was working on understanding the behavior of large file uploads and downloads and create a reasonable strategy to support both scenarios in our application. Azure blob file can be downloaded using any browser or internet download manager. For a public blob the url of file would suffice, but for downloading a private blob one needs to create a url containing the Secured Access Signature . While testing downloads I realized that in case I pause and resume the download in Firefox or Chrome or any download manager the download restarts !!! I was expecting that the download should start from the place it paused. Imagine the scenario where we have uploaded half of a 2GB file and resuming the download would start over again !!! Clearly the Azure Blob storage was not supporting HTTP Range header . As it turns out the Azure blob service is not a trivial file server. It is more of a Storage Application Server. It exp...

Contrasting Azure and IronFoundry Deployment Behaviour

I have been exploring Iron Foundry a PaaS player in .Net space for the last few weeks. One of the things I liked about Iron Foundry was, how fast deployments happened. One of the reasons for this is how binary\file package gets uploaded to the cloud infrastructure. The Iron Foundry \ Cloud Foundry approach (since Iron Foundry is port of CF) of only uploading change-set instead of complete binary\file package makes this step of deployment quite fast. What happens in Azure is You create a package file (cspkg) using either Visual Studio (VS) or command line tool cspack The generated package file contains the complete set of binaries and other resources such as images, css, javasripts etc  This package is then uploaded to Azure infrastructure and then deployed by the Fabric Controller. In contrast the process that Cloud Foundry follows to decide what it should send to cloud follows a multi-stage process. When an application is ready to be pushed to Cloud Foundry the client a...

Nerddinner on Appharbor

My last exercise on deploying Nerddinner on IronFoundry helped me a lot to understand the platforms capabilities. Time to do the same thing on AppHarbor , another PaaS player in .Net space. AppHarbor tries to emulate Heroku in .Net space. They are the ' Azure done right ' brigade. As a developer I just needs to push code either to AppHarbor or some of the supported repositories such as CodePlex, GitHub, BitBucket and AppHarbor does the rest. AppHarbor Builds the code. Runs unit tests Deploys the application on AppHarbor’s application servers (backed by Amazon EC2 ). Other than that it also provides all the standard benefits as provided by most PaaS players. To gain first hand experience on AppHarbor I decided to port Nerddinner onto AppHarbor. I already had the Nerddinner codebase in github so i could start right away. Creating Account   The first step was to register my account with AppHarbor. Once registration is complete we get a single instance under the...

Porting Nerddinner on IronFoundry

One of the new entrants in the .Net PaaS space is IronFoundry . Tier 3 an enterprise cloud platform for mid-tier, large enterprise and SaaS have come up with Iron Foundry(IF) a port of Cloud Foundry (CF) that is targeted towards Microsoft .Net platform. IF is an implementation of CF that is tightly integrated with the .NET Framework. It can support multiple frameworks, cloud providers, and application services all on a cloud scale platform. The platform is currently thin on documentation so what better way to learn about it than to port some application to run on IF Nerddinner - The application of choice Nerddinner was a good fit for this exercise. It is a tiered application with an ASP.Net MVC based front end and MS SQL Server based data access, both supported by Iron Foundry out of box. The Process The process started with setting up an Iron Foundry account that would be used to deploy the application. Since the service is in beta there is no cost incurred during setting up...

The cloud billing mess

"with great power comes great responsibility" - Spiderman Movie Nothing can be more true than this statement when it comes to Cloud. Spinning up a new server is effortless, scaling up and down even easier. While building a cloud based solution for our client we too have made same mistakes. Since the impact of such mistakes are not immediate these thing many a times go unnoticed. It is not until we receive inflated bills that we start looking into such matters and realize our mistakes. Cloud infrastructure should not cause an organization to abandon all server provisioning workflows but tweak them to take Cloud components into consideration. Thanks, Chandermani

Integrate ELMAH with WCF and Azure

I recently integrated ELMAH (Error Logging Modules and Handlers) with our Azure application. ELMAH is an excellent error logging and reporting libary available for ASP.Net. We used ELMAH for logging all unhandled service exceptions in WCF and ASP.Net. While there is information available on internet about how to integrate these technologies, data is scattered in bits and pieces. My aim through this blog post is to details the steps required for integration. The scenario of usage is, we wanted to log all unhandled exception thrown by our WCF service layer in a database which in our case was SQL Azure. Once done we could easily navigate to the the elmah default url to get a nice report on what errors were being generated by the application. Had it been a typical ASP.Net application, integrating ELMAH is a piece of cake. But since we were working on a Azure web deployment with SQL Azure as the backend some tweaks were necessary. Here are the things to do to get ELMAH fully functional in...