I would like to wish everyone happy holidays and merry christmas to those that celebrate!
CloudVane will take a two-weeks break (probably ;))
Looking forward to having you visit this Blog again in 2013!

Christmas Cat

Christmas Cat

The above shown image of a cat in the Christmas Tree is licensed under the Creative Commons Attribution-ShareAlike 2.0 Generic (CC BY-SA 2.0) Licence. It is provided by Susan E Adams.

As already mentioned in the last post, Application deployment in the Cloud is not an easy task. It requires a lot of work and knowledge, unless you use Platform as a Service. The later one might reduce this complexity significantly. In order to deploy your Applications to an Infrastructure as a Service Layer, you might need additional knowledge. Let us now built upon what we have heard from the last post by looking at several strategies and how they are implemented by different enterprises.
Some years ago before joining IDC, I worked for a local Software Company. We had some large-scale deployments in place and we used Cloud Services to run our Systems. In this company, my task was to work on the deployment and iteration strategy (but not only on that ;)). We developed in an agile iteration model (basically it was Scrum). This means that our Team had a new “Release” every 2 weeks. During these two weeks, new Features were developed and bugs fixed. The Testing department checked for Bugs and the development Team had to fix them. We enforced daily check-ins and gated them. A gated check-in means that the check-in is only accepted if the Source Code can be compiled on the Build Server(s). The benefit of this was to have a working Version every morning as some started early (e.g. 6am) and others rather late (e.g. at 10am). Before starting with that, our Teams often ran into the error of having to debug bad code that was checked in by someone the day before. Different teams worked on different Features and if the team decided a feature to be final, it was merged to the “stable” branch. Usually on Thursdays (we figured out that Fridays are not good for deployment for various reasons) we deployed the stable branch. The features initially get deployed to a staging system. The Operations Team tests the features. If a feature isn’t working, it has to be disabled and removed from the stable release. Once there was a final version with working features, we deployed them to the live system. This usually happened on Friday evening or Saturdays. Over the years, the Development and Operations Team got a real “Team” and less features had to be removed from the staging system due to errors/bugs. My task was to keep the process running since it was now “easy” to forget about the rules once everything seems to run good.
Want to hear more about Application Deployment? Subscribe to the Newsletter:


A very advanced environment is Windows Azure. Windows Azure is Microsoft’s Cloud Platform and was usually designed as a PaaS-Platform. However, they added several IaaS-Features so far. In this post, I will only focus on the PaaS-Capapilities of Windows Azure. There are several steps involved:

  1. Full Package with Assemblies gets uploaded
  2. If a new Package is added, a Staging Environment is started. There is now the possibility to Test on that Staging Environment
  3. Once the Administrator decides the Package to be „safe“, Staging is switched to Production
  4. New Roles with the new Binaries are started
  5. Old Roles that still have Sessions are up and running until all Sessions are closed
Deployment for Windows Azure PaaS

Deployment for Windows Azure PaaS

This is a very mature deployment process and solves a lot of problems that are normally associated with deployment for large-scale Cloud Systems.
Facebook described their process for deployment very clear:
  1. Facebook takes advantage of BitTorrent
  2. New Versions of the Software gets added to a Tracker
  3. Each Server listens to the Trackers
  4. Once a new Version is available, it is downloaded to the Server
  5. The Server then unloads the current Version and Loads the new one
  6. Old Versions always stay on the Server
  7. Easy Rollback
Any Questions/Issues on deployment? Post your comments below.

This is the second part of the interview with Mario Szpuszta, who works with Microsoft as Technical Evangelist for Windows Azure. Mario’s answers are stated with [MS], the questions are marked with [MMH]. The Interview is divided into several parts and will be published over the next weeks.

Mario Szpuszta, Microsoft Cooperation

Mario Szpuszta, Microsoft Cooperation

[MMH] So a major feature was the persistent VM Role. This is basically Infrastructure as a Service. Why is Microsoft now also providing an IaaS Platform?
[MS] The official name is Windows Azure Virtual Machines. Well, we decided to provide IaaS capabilities to make it easier for many companies with legacy applications to also move to the cloud. Still the primary strategy is PaaS as we believe that is the most effective way for operating your own applications in the cloud. But for many companies and ISVs it is hard to make the direct move to PaaS with all the implications. IaaS enables them to move to the cloud faster and think about approaching PaaS in a step-by-step fashion.
There’s one thing I’d like to highlight specifically: we put really lots of efforts to enable mix-solutions of IaaS and PaaS deployments. That essentially enables customers to use PaaS and benefit from the advantages of PaaS wherever possible while at the same time leverage IaaS where PaaS is not easy to implement short time and integrate those two world together. One example: let’s assume you have built a web application with a SQL Server database in the back-end. Further assume in that SQL database you make heavy use of SQL Server features such as .NET integration by writing most of your stored procedures in .NET using SQL CLR. When moving that solution to Azure you’ll quickly notice that SQL CLR is not supported in Windows Azure SQL Databases (as some other features aren’t supported). Now you have the choice: wait with your path to the cloud until you’ve re-written all that stored procedures. Or move to the cloud now, leverage PaaS for your web applications and put the SQL database in a full SQL Server running in Windows Azure Virtual machines connected with your PaaS deployment through virtual networks. That is a pretty powerful scenario! By leveraging PaaS for the web sites you don’t need to take care of managing those web servers anymore (patching, updating, load balancing) thus saving lots of operational overheads. At the same time you can re-use your existing efforts in the SQL database (your SQL CLR procedures) through operating SQL Server in a Virtual Machine on Azure that is in the same virtual network as your PaaS instances.
And exactly these are the scenarios we’re thinking about to support by introducing Virtual Machines. In our opinion it’s still all about the app and the service you want to provide and IaaS will make the on-boarding into the cloud much easier.
Of course there are some other scenarios we are thinking about when it comes to IaaS. One thing is, for example, the installation and operation of demo environments or test environments. Such environments can be setup quickly through IaaS in the cloud without big investments upfront and without waiting until new hardware and software orders are shipping to your company. That is of course another area where we see tremendous benefits by offering IaaS…
Want to read more about the interview? Subscribe to the Newsletter to get updates when new topic is available!


[MMH] I hear a lot of people saying that the persistent VM Role is made for SharePoint (among others, of course). What opportunities do you see with Azure and SharePoint 2013, as there is now an app store? What great things are now possible for ISVs?
[MS] SharePoint is definitely one scenario we’re addressing with Azure Virtual Machines. The other three primary scenarios we’ve been testing for are SQL Server and Active Directory. So you can operate all three on top of Virtual Machines on Azure. Of course in addition to those you essentially can operate any other software you can install on either Windows or Linux (these are the guest operating systems we do support with Azure Virtual Machines). But SQL, AD and SharePoint are specifically tested by us and we will provide guidance for how-to best operate those and where the limits of Azure VMs will be with regards to operating those (in terms of load, performance etc).
[MMH] Another big release this year was Windows 8. Are there any great opportunities for Developers and ISVs to utilize Windows Azure?
[MS] Windows 8 is going to be a big opportunity for service providers that do offer a cloud-based version of their product. For me it’s really a big channel to become well-known with your service and win new customers in a large scale. If you build an app for the market place you will get visible on millions of devices in the upcoming year thus introducing a big opportunity for you as a software vendor. That way Windows 8 is a perfect front-end for a cloud based offering and a great marketing-channel. I’d recommend everybody to leverage that opportunity!! For developers we do also offer specific SDKs for Windows 8 that make the integration between Win8 and Azure a peace-of-cake and leverage services such as notifications and the like. So also from that perspective it’s looking really good and it’s just going to be a fun experience for developers building new kinds of apps on-top of their services;)
[MMH] Talking about the future; do you see that the Worker and Web Roles (Compute) will become commodity? What will it mean to customers?
[MS] In my personal opinion (yes, my personal opinion) I would guess that compute power in the cloud will become a commodity service long-term. I think compute will be something that everybody expects to get from the cloud for a fairly cheap price. That of course brings up the question how cloud-vendors such as Microsoft or Amazon will still be able to make money out of cloud services because essentially at the moment compute-power is the biggest source of income for them!? And here I think it’s going to come from higher-level platform services. Platform services that do offer true functionality instead of just providing infrastructure. Just like, for example, Windows Azure Media Services where you get e.g. encoding services and you will pay (as soon as preview is over;)) for the number of GB you encoded. But this is my personal opinion, and we’ll see if that becomes a truth or not:)

Cloud Computing Platforms consist of different Services (if the Application is built with SOA – Service Oriented Architectures) or Roles. A Role is not necessary a Service, as a Role might consist of multiple Services. Let’s look at a Web Shop: a Role in the context of a Webshop would rather be the Shopping Cart. But the Shopping Cart itself would consist of more services. This is why we can talk about “Application Role Separation”. If we talk about SOA, everything is divided in the technical part. With ARS (Application Role Separation) we can have a “SOA of SOA” by adding services that belong to a specific domain to a Role.
However, Application Role Separation gives us more possibilities. If we have a serious issue such as an outage of the datacenter, we can shut down or run a specific role at lower priority. Back to the context of a webshop, this would mean that the Role “Comments” can be disabled. The “Comment” Role itself would again consist of different Services such as the rating (Stars) and the Read Comments and Write Comments Service.
Roles for the Webshop could be the following:

  • Webshop to read data
  • Shopping Cart
  • Order
  • Background Services (Business Intelligence and Statistics, Mail Processing, Order Processing Workflow)

Architecture for a Webshop

Architecture for a Webshop


As mentioned in the last Post, deployment is a very tricky thing in the Cloud. It can be easy if you run your applications on a PaaS-Service. However, it might be tricky in IaaS Environments.
There is mostly a need for an Operations-Team that takes care of deployment and maintains the Application for failures. In DevOps Environments, we often see the following:

„It‘s not my Code, it is your machines!“
„It‘s not my machines, it is your Code!“

This means that there are often problems between the two teams. The Development Teams finger-point at the Operations Team and vice versa. Flickr gave some best practices on how to overcome this issue. These Reccomendations are divided into two main points:

  1. Right Tools
  2. Culture
Right Tools consists of the following recommendations:
  • Automated Infrastructure
This consists of different tools such as Puppet for IT Automation, Cobbler for Automated Installation, CFengine for Configuration Management or other Tools
  • Shared Version Control
  • One-Step Build
All Build Actions are done in a Skript, no need to do more command-line-ing
  • Branching
  • Shared Metrics (Easy to read metrics to see improvements)
  • IRC and IM Robots to Communicate

This is the first part of the interview with Mario Szpuszta, who works with Microsoft as Technical Evangelist for Windows Azure. Mario’s answers are stated with [MS], the questions are marked with [MMH]. The Interview is divided into several parts and will be published over the next weeks.

Mario Szpuszta, Microsoft Cooperation

Mario Szpuszta, Microsoft Cooperation

[MMH] Hi Mario, Thanks for your time to do this interview with you. Can you briefly explain the audience what your job with Microsoft is about?
[MS] Hey Mario! It’s great to get the chance for an interview with the Cloud Computing Journal and to meet you for that purpose again. Currently I am working as a Platform Strategy Advisor and Technical Evangelist for the EMEA Windows Azure ISV Incubation Team. In my role I do work with independent software vendors (ISV) to build new or migrate their existing products to cloud-based offerings running on top of Windows Azure. I work with the ISVs from both, a business as well as a technical perspective to help them being more successful in both areas! It’s indeed a very interesting job content-wise as we typically do see lots of different business scenarios our ISVs are thinking about as well as of course many different types and styles of architecture applied to their products.
[MMH] We see some Applications are fast when it comes to Cloud adoption, others are rather slow. What types of Applications do you see moving to the Cloud faster than others?
[MS] It’s hard to say, the world is very versatile. But reflecting a bit on the work we have done in the past year I see some characteristics with those ISVs who are able to move with their offerings to the cloud faster than others.
In case of ISVs you always have to look at their existing product portfolio. In that case I’d say if they have a big product portfolio that exists for a while now and they want to move with those products to the cloud it takes rather longer. It’s pretty clear because they need to look at their portfolio first and foremost from a business perspective. They need to see and learn, if and how they need change pricing models, payments, marketing and sales channels etc. Then there’s of course the technical side. Products that are on the market for a while do have some legacy that might be hard to be migrated to cloud-based environments. Of course Infrastructure-as-a-Service might help here but then it brings up the question if that’s really the most efficient way from a business perspective.
Then I’ve seen ISVs that complement their products with small, cloud-based add-ons. This is an extremely powerful way of moving to the cloud for several reasons in my opinion: it helps starting fast and small with a move to the cloud, it brings value to the existing customer base, it potentially will attract new customers and it can be done with a lower level of risk as opposed to migrating the existing product portfolio completely. Finally also for the technical teams it’s easier as that way they can get familiar with the cloud platform they’ve chosen in small steps while at the same time gaining valuable insights for eventual future migrations of existing products.
Finally there are startups. And here I can’t say which apps move faster to the cloud than others. Many of them are really fast in moving to the cloud as they most often start right away from the cloud.
Of course being successful is another topic…
Want to read more about the interview? Subscribe to the Newsletter to get updates when new topic is available!


[MMH] Referring back to my last question; what in your opinion makes some of those Applications more successful than others?
[MS] Well, there are many factors that are in the play for influencing success. Definitely I don’t know all of them but those cases I’ve seen being successful as opposed to not so successful ones there were a few differentiators:

  • Maybe apply different, broader approaches for sales and marketing.
  • Going international and global instead of staying local.
  • Go live fast and constantly deliver new, small features in short time intervals.

Let me try to find an example for each of the points I’ve mentioned. For example in Switzerland I’ve been working with a start-up where the investor itself is a marketing agency. Of course that’s great luck for them, because that agency is really good. Right before they went even live with a public beta they put an announcement-page live and applied Twitter, Youtube, Facebook and the like for true global digital marketing. It’s really cool as you find fairly funny yet professional videos on Youtube about their online service offering. Smart usage of wording and SEO got viewers to those videos and finally attracted people to sign-up quickly when they went live last spring with their offering. I think it’s really important to go beyond the traditional sales and marketing channels and approaches and apply such cool, creative ways. Of course that’s said easy. I mean, I would not be able to do that either. So you’d better work with a well-chosen agency that is good with such things.
Looking at Austria we’ve been working with a number of ISVs in very similar environments. For some of them it was too hard to go international or even global while others did. Although there were several reasons to not go international or global for some of those ISVs. But what I can definitely observe is that those who did the jump to the international market and that built up relationships with partners in other countries that help them selling their solution are more successful. It sounds obvious, but one thing these companies did when going international is to work with partners in the countries where they want to enter. Local resellers that do understand the culture, the local people and their expectations.
Finally one example for the last case I mentioned above. A story from a startup-ISV who entered in a very traditional branch with their software – logistics. In the country where they started this market was ruled by a small number of very well-known, traditional ISVs. They way how they put those traditional ISVs under pressure and really started becoming a true, important and competitive player on the market was simple. Go out with the fundamental set of features very fast with aggressive prices (cloud enabled them to offer aggressive prices through the low initial investment costs). Then deliver additional features in nearly a monthly basis. Small features, not big junks. But in a way where when their customers refreshed the browser the next time they just spotted a new functionality in their menus. That is pretty impressive and it truly helped them moving forward on the market fast and successful. Now, only less than 2 years after they’ve launched they are a known player on the market. I was so impressed by this approach – really cool.
Of course these are just some examples. Maybe others have different opinions on what makes someone successful or not. And these are for sure not the only factors, but in my opinion these are factors that do matter!
[MMH]  There was a major release on Windows Azure lately. Can you give us a brief overview of the most exciting features and news in the new release?
[MS] Recently, in June 2012 we released the 2012 spring release of Windows Azure. Compared to the previous release in December 2012 it was truly a big step forward. Apart from many details such as load balancer probes, dedicated caching or new Visual Studio tools with side-by-side support for multiple SDKs there were a number of new services that we introduced.
First and foremost many people definitely realized, that we have introduced Windows Azure Virtual Machines, which is essentially true Infrastructure-as-a-Service on Windows Azure. It was formerly called persistent VM role because, obviously, the hard disks are now persisted across the lifetime of single instances or machines (as it should be for IaaS).
Together with Virtual Machines we introduced Virtual Network capabilities. These allow you to (a) create your own, virtual network for compute instances running in the Windows Azure data center incl. capabilities such as a private DNS and (b) enable you to create VPN tunnels between your virtual network in Azure and professional VPN routers such as those from CISCO (that is just one example of a vendor we do support). It’s fairly cool as that allows you to also build mixed environments where you combine Platform-as-a-Service with IaaS or even you on-premises services.
Then we have Web Sites, an offering for all of those that do build typical web site solutions with ASP.NET, PHP, node.js or Python for example. Web sites is a highly scaleable PaaS offering for typical web applications that do have the web app tier directly connecting to the database. So whenever you, for example, just have a PHP web site that directly connects to MySQL as a database and not through some kind of middle-tier components or app servers, then web sites is for you.
Did I say MySQL? Yes – indeed. Web Sites allow you to work with both, Windows Azure SQL Database as well as MySQL. Both available as a service where you just request the database and don’t care about the database server infrastructure at all. But where’s that MySQL-as-a-service coming from? Well, that’s another thing we introduced alongside with the spring release. In the past year we formed a number of what we call “platform gap partnerships” for Azure. One of that platform-gap partners is ClearDB (www.cleardb.com). ClearDB offers MySQL-as-a-Service on Windows Azure. So they do take care of operating MySQL in a highly available fashion in our data centers and allow you to just consume certain sizes of MySQL databases. And Azure Web sites are using that service from ClearDB to provide the MySQL databases. Another of those platform gap partners, for example, is AppDynamics. They do provide a monitoring and diagnostics service that can be used together with Azure-based solutions every developer can build. These are just two examples and we’re working with others to continue improving in areas where we don’t deliver services and components by ourselves.
Alongside with these platform gap partnerships we also invested a lot into the SDKs as I mentioned before. One thing I’d like to highlight here is the availability of an Azure SDK for Python. That SDK now makes it easier for Python developers to leverage some of the Windows Azure services, especially storage including BLOB, Table and Queue as well as Service Bus messaging.
Then there’s Windows Azure Media Services. Although announced a few weeks earlier, it belongs to the spring 2012 release. Media services is a platform that can be leveraged by all parties that do require professional media content production pipelines. In it’s first release it comes with an encoding service that developers can use to create different formats of videos to be provided to a variety of devices through their application. In addition the current preview of media services comes with on-demand streaming capabilities.
Finally we also announced Windows Azure Active Directory which will become the primary identity management service in the cloud. The formerly known Access Control Service (ACS) that is used to enable federated authentication across different security domains using standardized protocols such as WS-Federation or OAuth is still available and now is positioned as a part of Windows Azure AD. While ACS of course is GA released, Windows Azure AD services such as graph API are still in preview. Also Virtual Machines and Web Sites are still in preview.

Large Applications such as Amazon, Google, eBay, Facebook and other large Websites have problems when it comes to deploying their Applications. Often, there are some 10,000 servers or even more of them when a new Version needs to be deployed. In Cloud Platforms, we often have similar issues. Even if we need to deploy to 100 instances, it might be difficult to get everything correct.
There is a significant difference between PaaS (Platform as a Service) and IaaS (Infrastructure as a Service) Applications. If we use IaaS, we have to take care of deployment. Each instance needs to have the newest Version. There are different tools available to automate that task or you either write your own tool for that. If you use PaaS, it is easy since most platforms (such as Google App Engine and Windows Azure) usually take care of that.
There are several issues and challenges if you use IaaS Platforms to run your applications:

  • You have to deploy to a lot of Servers – usually 100 or more
  • It is not possible to allow a “maintenance timeout”. In this timeframe, you loose money and your customers will be angry if you have a “maintenance downtime” for 2 hours or more every week
  • Deployment goes to the production System, where probably million users interact with – problems will immediately have effects.

This leads to some problems and the short answer is that there is no easy solution to that. Each deployment strategy must be tailored to the application. However, it is possible to use a specific iteration strategy, which is illustrated below:

Iteration strategies for Cloud deployment

Iteration strategies for Cloud deployment

There are 5 major phases in each deployment:

  1. Develop. Software/Platform is in development phase.
  2. Verify. Everything that was developed in Phase 1 is now tested. This is basically done by the testing department. There are no user tests involved so far and the new release is not deployed to a real environment.
  3. Stage. The new release is put on a staging environment. This is a sandboxed environment where no damage can be done to the real system.
  4. Verify. The new release is verified on the staging environment. This is basically done by beta-users or internal departments
  5. Deploy. The new release is deployed to the final system and all users access it from now on.


When we talk about Cloud Computing, we also talk about Automation in Datacenters. Cloud Computing transforms Datacenters to a way where we see much more Automation than we saw before. There is significant transformation going on and more and more Projects that enable that are launched nowadays. Famous Automation Platforms are Eucalyptus and OpenStack in the Open Source area. Microsoft and vmWare also offer some Automation Tools for the Cloud. But what are the concepts for Cloud Automation?
Let us first look at the illustration below to find out how automation in Datacenters work.

Datacenter Automation in the Cloud

Datacenter Automation in the Cloud

As shown in the illustration above, there are several steps involved. First, we add a new physical Server. This usually happens when a new Rack or Container is deployed to a Datacenter. The new physical Server is started and a Maintenance OS is started. This is usually a lightweight Version of Windows Server or Linux. The Maintenance OS is the basis for virtualisation. The Maintenance OS now connects to the Controller. The Controller is a Server that is somewhat of a Master in the Datacenter. The Controller tells the Maintenance OS what it should do. Normally, this is what virtual Host VM to start. The Host VM is now the container for different virtual Instances. They are called “Guest VMs”. Guest virtual Machines now run the applications the user wants. This can either be the Operating System (Infrastructure as a Service) or a Platform.



In Cloud Computing Environments, we see a significant switch in how the industry treats Datacenters. Cloud Computing and Big Data transform the way how we think about Datacenters. But why should that be so?
First of all, we have to look at how Servers and the market looked like some years ago. Many companies bought their Servers. Small and Medium Businesses (SMBs) used to run their own Servers, maintain them and own them. A datacenter often consisted of only one rack or some Servers. This means that there is a polypoly on the demand side (buyers). On the supply-side, we had some companies such as Dell, HP, IBM and others. This is named an oligopoly. In this market situation, the supply side is stronger and negotiations are traditionally harder. If you are a large enterprise, you could generally get better conditions.
Nowadays with Cloud Computing, the datacenter design is shifting dramatically. Small and Medium Businesses will rent their services such as Software (SaaS), Platforms (PaaS), Data Storages or Infrastructure. We will see less datacenter providers but large providers will have more datacenters at high capacity. This means that the market is shifting from an polypoly to an oligopoly. Large providers of Cloud Platforms will now buy more Hardware at better conditions. The Datacenter will look very homogenous as buyers will switch towards commodity Hardware and easy to replace Systems.

CloudVane thanks for 1,000 Facebook likes! CloudVane has seen tremendous growth over the last 3 month since we started, doubling the user base every month! Stay tuned to receive more News and Articles about Cloud Computing!

1000 Facebook Likes Celebration Baloons

1000 Facebook Likes Celebration Baloons

To receive regular updates, please also subscribe to our Newsletter: