Who Let The Dogs Out?

by Ciprian Jichici 24. June 2011 03:19

Seems to me the dogs are out in the wild when it comes to cloud wars. Microsoft’s latest announcement refers to a first (and significant) breach in Azure pricing. For the first time since Azure was launched, a significant component of its pricing scheme (inbound traffic) is reduced to zero. From this point of view, perhaps a better title for this post would be “Who Let The Dogs In?” Smile

It’s interesting to analyze a bit what’s behind this bold decision. First and foremost, it signals to me that Microsoft believes their cloud storage and communications infrastructures are mature enough to cope with the potential data surge resulting from their decision. Second, the decision underlines one key point in their cloud strategy: make cloud storage very attractive and tempt customers to use the cloud to store as much as possible of their data. Third, it eliminates part of the weird case of double taxation for the same service (a cloud customer pays two bills for the data traffic – one to the ISP and one to the cloud provider).

There are several scenarios that are boosted by the decision. Up until now, in US and Europe, the cost of storage was 15 cents/GB/month and the cost of inbound transfer was 10 cents/Gb/month (this is valid for pay-as-you-go offers, but you must be aware there are other offers too, tailored to specific needs). Outbound transfer was priced at 15 cents/Gb/month. All in all, the cost of moving 1 GB of data through the cloud (assuming you keep it there for one month) was 40 cents. With the new pricing scheme, this drops to 30 cents (a 25% decrease).

The reality is that there are scenarios where the real decrease in cost is much more significant. Think about using the cloud storage as a support for your backups. Suppose your backup is a modest (Smile) 1 TB/month and your incidents force you to retrieve from backup 1TB/year. Using today’s costs (assume a US or Europe datacenter, basic pay-as-you-go scheme), loading up the backups will cost 12 * 1024 * 0.10 = 1228.80 dollars/year. Keeping that data in the cloud costs you (1 + 2 + … + 12) * 1024 * 0.15 = 78 * 1024 * 0.15 = 11980.80 dollars/year. Finally, getting that 1TB out every year would cost 1024 * 0.15 = 153.60 dollars. This amounts to a grand total of 13263.20 dollars. Eliminating the 1228.80 dollars leads to a 9.2% decrease in cost. Not that much, some might say. True, but if you take a closer look, I assumed above that you will keep all 12 full backups in the cloud. What if you decide to keep only the last full backup? Well, the total cost will be 1228.80 + 12 * 1024 * 0.15 + 153.60 = 3225.60. In this case, the cost reduction is a significant 38%! That’s a big one, by any standard, you have to agree.

Backup is not the only scenario that gets important benefits from this decision. Basically, any scenario where a cloud customer supports the costs of putting data in the cloud while transferring the costs of getting data from the cloud to its own customers (either directly via invoices or indirectly via ads for example) benefits from zero inbound traffic price.

One other interesting thing to watch is what will be the reaction, if any, from Microsoft’s competitors in this game.

Tags:

Architecture | Azure | Microsoft Application Platform

Year 2 A.C.–Life In The Cloud

by Ciprian Jichici 26. May 2011 23:56

We’re in year 2 A.C. (anno cloud) on the Microsoft Application Platform. Lots of things are now a bit more clear than they were at the beginning of this era, but some are still to be clarified. Based on some recent feedbacks I got from software architects and developers, I came to the conclusion that it would be a good idea to produce a brief report on how does Azure impact our work in its second year of commercial availability.

Please note this is ongoing work. Today’s version of my analysis is merely a starting point. I’m not claiming it’s exhaustive and it very likely that it will be updated many times. In fact, your feedback would be greatly appreciated. By the way, I’m delivering today a talk at the IT Camp conference in Romania based on the ideas presented below.

This post has also been published on AzureCloud.eu, a site I strongly encourage you to visit if you’re interested in talks about Azure.

So, here it goes…

1. Azure Current Status

First of all, let’s start with a discussion about the big picture by answering the following question: what is the cloud computing offering on the Microsoft Application Platform?

The short answer is the Windows Azure Platform, but that’s way too generic. To get into more details, I’ll start with a bit of history. The first public announcement (and the first CTP) of Windows Azure occurred in October 2008 during the PDC. The next year brought the announcement about SQL Azure (the relational database in the cloud) and an updated CTP. The platform became commercially available in February 2010 and got later in the same year some significant updates.

Now’s a good time to be more specific. When we talk about Windows Azure, we really talk about four major components:

  • Windows Azure with the following functionalities:
    • Compute – web roles and worker roles
      • VM Role (currently in BETA) – deploy custom Windows Server 2008 R2 images
      • Extra Small Instance (currently in BETA)
    • Storage – blobs, queues, tables, and drives (NTFS VHDs mounted into compute instances)
    • Content Delivery Network – broad reach via globally distributed locations
    • Virtual Network
      • Connect (currently in CTP) – secure network connectivity between on-premises and cloud
      • Traffic Manager (currently in CTP) – load balance traffic to multiple hosted services
    • Management
  • SQL Azure with the following functionalities:
    • Database – relational database service built on SQL Server
    • Reporting (currently in CTP) – develop and deploy operational reports on the cloud
    • Data Sync (currently in CTP) – data synchronization service built on Sync Framework
    • Management
  • Windows Azure AppFabric with the following functionalities:
    • Service Bus – secure messaging capabilities
    • Access Control – standards-based service for identity and access control
    • Caching – distributed, in-memory cache service
    • Integration (will be CTP in 2011) -  BizTalk server integration capabilities
    • Composition Model
    • Management
  • Marketplace
    • Data Market
    • App Market

Well, that’s about it. Windows Azure seen from 10000 feet as it is today. As you can see, it’s an evolving platform with some components already available in release form and others as BETA or CTP. It’s also interesting to note that, while it started as pure PaaS, Azure is now also moving into the realm of IaaS (see this post for a detailed discussion about XaaS). Another interesting discussion revolves around the availability of Windows Azure in your own backyard (commonly referred as Windows Azure Platform Appliance). Despite the fact that Microsoft talks quite often about it, it’s nowhere to be seen yet.

Now that we have an overview of the platform let’s see how can we use it to architect the next generation, cloud-based applications.

2. Architectural Challenges

In the years that passed since software architects started to take into consideration cloud-based approaches for their solutions, one thing became very clear: there are lots of challenges and questions to be addressed. There is no doubt in my mind that on the long run the cloud will become ubiquitous. It has certain advantages in terms of flexibility, scalability, and availability that simply cannot be matched by on-premises solutions. On the other hand it also has some shortcomings that will most probably lead to a hybrid world (at least in the foreseeable future) where our software will run partly in our own backyard and partly in the cloud.

Consequently, as we advance into year 2 a.c., software architects have to address the following challenges (I don’t claim this to be a complete list, it one based on my practical experience):

  • The pace of evolution – as you can see in the Azure status I presented above, the cloud environment evolves much faster than the traditional on-premises backend environment
  • The new layer of complexity – instead of a pure on-premises world, architects now have to think at this level in a bi-dimensional way (at this point in time, hybrid approaches seem to be the favored by IT managers)
  • Perception – issues like security, reliability, and cost are often not that well understood; more than that, recent high-profile worldwide incidents in the cloud industry (Amazon, Sony, and others) did a lot of harm when it comes to perception
  • Suitable design patters – using the cloud for suitable scenarios (avoiding the technology for the sake of technology syndrome)
  • Out-of-the-box thinking on traditional cross-cutting concerns
    • Storage – relational vs. No-SQL
    • Communications – SOAP vs. REST, messaging paradigms, state/session management
    • Security – identity, service security
    • Decoupling – asynchronous patterns
    • Parallel computing – decomposing the universe of the problem to harness the full power of the cloud
    • Caching
    • Data management – backup, archiving, ETL processed, master data
    • Instrumentation
    • Operations

To be very clear, these are not the only challenges to be addressed. These are merely the ones that come with the cloud, in addition to the large number of traditional ones that software architects have to face.

Keeping these challenges in mind, let’s move one step further and discuss about designing applications for the cloud.

3. Designing Applications For The Cloud

The first thing we have to state when it comes to cloud applications is that we can identify four major situations (the terms native, full migration, partial migration, and forced migration are my own – they are not currently used by Microsoft to refer to the situations described below; I use them because I feel it’s easier to identify this way each individual case):

  • The application is designed from the ground up for Azure (native development)
  • The application already exists and it’s redesigned to work on Azure (full migration)
  • The application already exists and only parts of it are redesigned to work on Azure or new components that work on Azure are added to it (partial migration)
  • The application already exists and it’s moved as-is into Azure (forced migration)

It’s pretty obvious that each situation has its own advantages and disadvantages. Up until now, based on my personal experience, the most common ones are native development and partial migration. Somehow, this is in line with the overall evolution of the entire cloud industry in general and cloud perception in particular. The most likely parts of a company’s application infrastructure to move into the cloud are right now the non-critical ones. Most companies have this approach because they recognize the value of the cloud as an application platform (PaaS) but they are not yet confident in their capacity of handling all the new stuff that’s out there.

The table below points out some of the strong points and some of the weaknesses for each of the four situations enumerated above:

Approach

Advantages

Disadvantages

Native development

  • Harnesses the full power of the cloud
  • Allows many architectural approaches
  • Higher learning curve
  • Depending on the number of native Azure features used, leaving the cloud might be tricky

Full migration

Same as native development

+

  • Enables redesign on some sub-optimal features

Same as native development

+

  • The effort might not pay off
  • Replacing some architectural decisions with ones more suitable for the cloud might be very difficult

Partial migration

  • More manageable than full migration
  • Enables you to concentrate on fewer cloud features, shortening the learning curve
  • The hybrid environment might be difficult to implement and operate

Forced migration

  • Minimizes any migration effort allowing you to move the application into the cloud in the shortest time possible
  • Usually ignores many of the features, using the cloud in as IaaS way rather than an PaaS way

Regardless of the approach, you will have to address the most part of the architectural challenges I talked earlier about. The Cartesian product of the architectural challenges and the application design cases gives you a pretty accurate image of what it means today to design and develop for the cloud. Although at first sight it might look like a daunting task, keep in mind that the reward is significant. Do things right and you’ll get a solution that makes all the powers of the cloud work in your favor.

4. Harnessing The Cloud Infrastructure

Finally, this discussion has to refer to some of the IaaS capabilities of the cloud. I’ve seen in the past two years quite a few cases where companies were not ready yet (for countless reasons) to develop applications for the cloud, yet they found great value in some of the platform’s IaaS capabilities. To name just a few:

  • Massive (and parallel) processing
  • Content delivery
  • Storage (for backup and/or archiving)

 

Well.. this is it. I tried (and hope that I also succeeded, at leas to some degree) to give you an image of Microsoft’s cloud computing platform as it is today, from the point of view of a software architect. Concentrating on application development, I left out on purpose some of the other important components of Microsoft’s cloud strategy: Exchange Online, SharePoint Online, Lync, BPOS, Office 365. The main reason was to keep this post at a manageable size Smile

Anyway, as I mentioned at the beginning, this is and will be an ongoing effort. Most probably I will update (and extend) this report several times in the months to come hoping to transform it into useful tool for any software architect that needs a general view on how’s life evolving on Windows Azure.

I’ll keep you posted…

Tags: , ,

Architecture | Azure | Microsoft Application Platform

Is There Life After The Cloud?–An IT Pro Perspective

by Ciprian Jichici 22. February 2011 18:06

Today I am talking at TechDays Romania about cloud computing challenges faced by IT Pros. After being heavily involved in cloud computing issues for more than 4 years now, I came to an interesting conclusion: when it comes to IT Pros (ranging from the IT Manager down to the rookie sysadmin), the top concerns are not really technical. The aggressive (in a good way) messaging coming out from the large cloud providers geared towards the fundamental advantages of the cloud is creating the perception that the era of cloud computing will bring an end to the era of the IT Pro. Consequently, one of the top questions asked by IT Pros is: will the move to cloud computing jeopardize my job? Am I going to be still needed once the cloud takes over?

Well… One of the key messages of my talk is that ADAPT is the name of the game. I base my logic on the following two assumptions:

  • Despite the current perception, once the cloud becomes mainstream, there will be as much IT Pro work to be done as ever
  • The thing is, this work will be a bit different than the one IT Pros are used to do

The main challenge for an IT Pro from the cloud perspective will be, as I mentioned above, adapting to the new reality. As always, there are going to be casualties, I have no doubt about it. Still, I think the vast majority of IT Pros will be quite successful in the cloud computing era. The success of reinventing yourself as a cloud-aware IT Pro depends on the ability to perform the following fundamental tasks:

  • Analyze the new world
  • Understand cloud computing fundamentals
  • Compare different offerings from different providers
  • Optimize your existing and future infrastructure using the latest developments
  • Evolve your infrastructure and apps to match the current state of the art
  • Start all over again Smile

When it comes to understanding cloud fundamentals, I think the core equation is:

(IaaS, PaaS, SaaS) x (Public, Community, Hybrid, Private)

I’ve talked in quite a bit of a detail about this equation in one of my previous posts. In this context, it’s also a very good exercise to understand the process behind the birth of the major cloud computing platforms available today (Windows Azure, Google Apps, AWS Elastic Beanstalk – to name just the PaaS ones).

Some of the most important challenges faced by today’s IT Pros when it comes to cloud computing are in my opinion the following:

  • Understanding specifics and vendor discriminants (cloud computing gains ever more momentum and evolves at a rapid pace, so this is not an easy task)
  • Build and keep the exit strategies of your infrastructure (assure provider independence)
  • Security (of course Smile)
  • Fight lack of understanding and misconceptions
  • Balance bottom-up vs. top-down adoption
  • Prepare for ad-hoc standards and interop headaches
  • Avoid over and under utilization
  • Address network limitations

From a higher perspective, some of the most sensitive issues to be addressed are in areas like:

  • Data governance (cloud computing implies loosing some of your capabilities to govern your data)
  • Manageability (still an issue with all cloud vendors)
  • Monitoring (a whole new ball game)
  • Migration (what, when, and how to move into the cloud)
  • Changes in infrastructure, architecture, procedures, operations
  • Data changes (REST vs. SOAP, SQL vs. No-SQL)
  • Service Level Agreements

My conclusion?

It’s going to be a wild ride in the years to come, but I think it’s old news for most of us. After all, it’s always fantastic to live and breathe the next big thing. Right?

Tags: , , ,

Architecture | Azure | Microsoft Application Platform

IaaS Revolutions: The Cloud Comes Home

by Ciprian Jichici 9. November 2010 11:43

In today’s keynote at Tech’Ed Europe 2010 Microsoft went (finally) public with its strategy regarding private clouds. And it did it in style, showing an impressive demo about the future of private IaaS (or private cloud as we all know it). Seen from 10,000 feet, Microsoft’s move is pretty simple: take the experience you have running Windows Azure as a public service for almost two years now (CTP and beta period included), package it into an appliance, and make it available to anyone who needs (and affords it).

Only when you enter into the details you really how impressive this stuff is. I’m more like a hardcore architect and developer rather than being an IT (read infrastructure) specialist. Being an RD, I’m also pretty hard to impress with a demo. Despite all of this, today’s demo concerning the management of a private cloud took me to the WOW state. Believe me, I’m not exaggerating at all. The capability of defining hardware allocation policies, application deployment policies, and management policies is a very powerful one. And the fact that the demo showed hot to do all of this in a graphical designer says it all. As one of my RD colleagues noted during the keynote, looks like the business user will be able to manage infrastructure Smile For all IT specialists out there, stay cool, he’s joking Smile Your job is as safe as ever albeit it will change in many interesting ways in the years to follow (that’s a story for another post though).

It’s true, the technology will probably need at least one year to start getting mainstream. Still, it’s a game changer and I believe it will have a major impact on the industry. PDC 2010 convinced me that Microsoft is in the driving seat when it comes to PaaS. Tech’Ed Europe 2010 proved to me that it is in the same driving seat when it comes to IaaS too.

If you’re not in Berlin right now, I’m strongly encouraging you to keep an eye on all the announcements. I’ll follow up on this story with details, so stay tuned…

Tags: ,

Architecture | Azure | Microsoft Application Platform

The Silverlight Saga

by Ciprian Jichici 4. November 2010 05:33

During the past few days the Microsoft ecosystem went through one of its hottest periods in years. Center stage has been claimed by the false debate Silverlight vs. HTML5. It all started with this year’s PDC where Microsoft did not talk about Silverlight at all (except for a few transient remarks). The real flame was actually generated by an article where Bob Muglia was quoted, article which now is known by the “our Silverlight strategy has shifted” name (you can read it here). All of the sudden, the word spread like fire that Microsoft has sacrificed Silverlight for HTML5.

I admit, Microsoft’s messaging was not the best possible, leaving the door open for such rumors and fueling the false debate. Lately, both Steve Ballmer  (here) and Bob Muglia (here) issued strong statements which make it very clear that Silverlight will continue to play a fundamental role in the company’s strategy at least for the foreseeable future. Still, the replicas of this artificial debate have propagated rapidly and quite far through the industry. That’s why I thing it’s important to try to stop for one moment and think about this.

Why do I think SL OR HTML 5 is a false debate? Well, for a few reasons.

First of all, I see these technologies serving rather different needs than similar ones. I have very serious doubts that HTML 5 will be too quick to raise to the level of Silverlight and Flash in terms of user experience quality. Yes, yes, I know about all the new, “killer” features of HTML. But I also remember when HTML 4 was supposed to be the one that will bring down the mirage of unified UX from the heavens to the mortals. Did it? I’d say not really. Anyone remember XHTML? Let me rephrase, anyone know what XHTML is? It doesn’t matter anymore, it’s dead. It was supposed to be that huge and radical step that will get all of us rid of the historical peculiarities of HTML. The reason it was shot in the head was exactly because it was too radical. Seems to me HTML’s nemesis is backwards and cross-browser compatibility. To be clear, I do think HTML 5 is the best bet we have for application compatibility. But I also think it will remain for quite some time a common denominator rather than a unifying force. On the other hand, Silverlight offers you fantastic quality for the user experience and has excellent tooling supporting it. It will continue to grow and improve and will continue to be one of the best choices for RIA. I have yet to find the proper arguments to fight this vision. True, it’s not completely cross platform but it moves towards that goal. The speed of this move remains to be seen but it’s hard to argue with the fact that Silverlight’s rate of adoptions is nothing short of spectacular.

So, on one hand you will have a common denominator (HTML 5) supported eventually on most browsers and most platforms. It will deliver an improved experience over the current one (HTML 4) but it will not be a match for Silverlight of Flash. The kind of stupid underground war that undermines true compatibility has already started (see how features that are merely ideas or proposals surface in WebKit and are taken for granted as HTML 5 standardized features, but that’s another story). On the other hand you have Silverlight and Flash to deliver the ultimate user experience while incurring the extra payload of the browser plug-in. I think neither HTML nor RIA (Silverlight, Flash) is going to emerge as the miraculous solution for all web apps. Both are here to stay, so instead of HTML OR RIA the more realistic question is WHEN should I use each of these approaches.

The next reason why I see SL OR HTML 5 as a false debate is programming languages. JavaScript and its support have improved in past years tremendously, yet somehow I simply cannot put an equal sign between it and C#. The power of .NET that stands behind Silverlight is very hard to be matched by JavaScript engines. Traditionally, writing JavaScript code has been at best challenging, if not difficult. There is a price to be paid for universality, and I guess JavaScript is part of that. I have no doubt that it will improve even more, but still, I see the two approaches fundamentally different. So, again, I have a hard time believing that either one will emerge as a clear winner covering the other with dust. We will continue to live with both worlds and we will have the same hard time making decisions. And the majority of our web sites will present a combination of RIA and JavaScript for many years from now.

Finally, leaving aside glitches in communication, it is pretty clear to me that there is no Silverlight OR HTML 5 debate inside Microsoft. In a recent keynote, Scott Guthrie acknowledged that there are more people working on Silverlight now than any time in its history. And that’s good and reassuring news for me showing without doubt that betting on Silverlight is as safe as ever. In the mean time, I’m also quite happy with the fact that Microsoft decided to place a large bet on HTML 5, simply because I believe the new version of HTML will gain a significant place in the years to follow.

I hope Microsoft will continue with its efforts to clarify the message that got a bit foggy and will be able to be more articulate in sending the message that its bet on HTML 5 is not meant to be a replacement for Silverlight. If I’d have to speak for Silverlight (which clearly is alive and doing quite well) I’d use Mark Twain’s words after learning about the publication of his obituary in the New York Journal:

“The reports of my death are greatly exaggerated”.

Tags: ,

Silverlight | Microsoft Application Platform

The Age Of Coolness

by Ciprian Jichici 29. October 2010 06:52

It’s been quite some time since I’ve blogged, mostly due to a large number of projects I’ve been involved in. It sure feels good to be back Smile. And if I factor in the context, it feels even better. Let me explain…

I’m watching the PDC keynote as I write this from the comfort of my office. It’s a pretty bold approach from Microsoft, I must admit. Having many thousands (perhaps even more since the figures are not published yet) of viewers watching a multi-track conference live via the web is something that has never been tried before at this scale. From what I can tell so far, it’s been working out just great. But this is not the main reason why I'm feeling good.

The real reason is what I see in front of my eyes. The code, right? you might ask yourself. Well …, it’s not the code. What I see is a company that has gone a long, long way from what it used to be 10 or 15 years ago. It’s a company that survived a fundamental change at the very top level. A company that “lost” its founder who was also its leader and one of the major figures in the industry (and still is). A company that many said will go down and will be lost in the shadow of the new “enfants terribles” of the industry. A company that was supposed to loose the race between its main cash-cows Windows / Office and Linux / Open Office. Or the one between its development platform and Java. Or the one between its SQL Server database engine and Oracle/MySQL/others. Or many, many other races. Yet, despite these predictions it survived and it did this quite well. The interesting part for me is that not only it survived but it turned into something that I never thought of … a COOL company.

I’m watching the new leader of Microsoft, Steve Ballmer as it talks to thousands of developers via a virtual PDC. What strikes me is that Steve has a main slide behind him which has three lines:

  • IE9, HTML5
  • Windows Phone 7
  • Windows Azure

I’m not the kind of person that gets easily carried away and those of you who watched me speaking or delivering workshops and trainings know that it’s not really uncommon for me to criticize openly on Microsoft when I think there’s good reason for it. But right now, I just can’t help it … it’s for the first time I perceive Microsoft as being a cool company. I’ve had this feeling in the past about some of its products, but never about the company as a whole. Listening Microsoft talking about its present and future plans for the browser, the mobile platform and the cloud platform is fantastic. I’m realistic, and I admit that in two of the three (browser and mobile) Microsoft is currently a follower rather than a leader. Yet is shows good signs for strong comebacks in both areas. As for the third one, the cloud, Microsoft is shaping the game.

All in all, looks like this is going to be a great PDC. Not necessarily because it’s an online one (you can watch it here), but because of the content. We’re living very interesting times and it looks like Microsoft is on the track to be one of the major players in all three dimensions of these interesting times (browser, mobile, cloud). Even more than that, seems to me its on the track to achieve the one thing most of us thought it’s unachievable.

That one thing is being a cool company.

Tags: , ,

Architecture | Azure | Windows Phone | Microsoft Application Platform

OData: The Commoditization of Data?

by Ciprian Jichici 26. March 2010 22:53

For so many years we had marketplaces for virtually anything that comes in contact with us or takes part in our daily life. From iron ore to software applications, from utilities to chocolate, everything can be traded in one or more well-known and well-established marketplaces. As a particular case, software is starting to get closer and closer to the “classics” in terms of how it gets to consumers. Popular devices (iPhone, Windows Phone, and many others) have nowadays their own marketplaces where you can buy and integrate software as easily and quickly as you can buy anything else in the virtual world.

The natural evolution of the current situation places data itself in the spotlight. While code that handles data is today ubiquitous in terms of availability via marketplaces, the situation with data is rather different. It’s true, there are some particular forms of data that have been extremely successful from this point of view. Just think about MP3s, movies, maps & navigation, or encyclopedias. Yet data, as a generalized type of merchandise, is not widely available. According to what we’ve learned at MIX10 though, this situation is about to change.

When a company as strong in data programmability as Microsoft decides to play a data card, it usually pays off to watch and analyze seriously. It’s not like they haven’t proved in the past the ability to be ice-breakers in this particular field. Well … which is the card you may ask. The final name seems to be OData (Open Data Protocol), a protocol that has been factored out from WCF Data Services (previously known under the names of ADO.NET Data Services and “Astoria”) and morphed into a standard that aims to be both platform-neutral and open.

What is OData after all? The best answer is hidden in two of its fundamental objectives:

  • help unlock and free the data itself from the silos of today’s applications;
  • enable new levels of data integration and interoperability;

It’s also worth noting that OData doesn’t play alone. Being a true data platform company, Microsoft supports the protocol proposal with a few more than tangible things:

  • Windows Azure and SQL Azure are capable of exposing OData. Even more, “Dallas” (Windows Azure marketplace for commercial data feeds) and “Houston” (Silverlight tool that helps us create SQL Azure databases and expose them as OData feeds) provide the foundation for what is envisioned to be an general-purpose, cloud-based data market;
  • WCF is native with OData. I dare to say writing and OData service with WCF is close to trivial;
  • PowerPivot consumes OData feeds;
  • Reporting Services in SQL Server 2008 R2 exposes reports as OData feeds;
  • SharePoint 2010 exposes lists as OData feeds;
  • The marriage between OData and Silverlight is just natural. Expect this to enable amazing functionalities in all devices that are Silverlight-aware (from desktops to Windows Phones);

Will OData be a catalyst for data commoditization? Not just yet. Its commonly accepted that a product becomes a commodity when customers perceive little or no value difference between brands and/or versions. So far, we’re in the stage when data is just barely shaping up as a product. Interestingly enough, so far data has been much more a byproduct than being a product. Once data becomes a first-class product on the global market, I’m more than convinced a new stage of the digital era will begin to unfold. Right now, that’s the big promise and bet Microsoft does with OData.

Will OData ultimately be successful? It’s probably too early to tell, but the ice has been definitely been broken here and others will follow. On the long run, there’s probably a consensus around the idea that data (in any form or format) will become a global merchandise and eventually, the commoditization of data will be a fact of life. As it did several times in the past, Microsoft is setting the stage and leading the pack. The big difference is that this time, it does it in style via open, standardized, and clear specs combined with deep integration into both on-premises and cloud-based software services.

Tags: ,

Azure | Interop | Microsoft Application Platform

To Master Data, You Must

by Ciprian Jichici 19. February 2010 22:48

Although it might sound like one of Master Yoda’s wise sayings, it is in fact one of the realities of modern IT. In fact, it’s more than a reality, it’s a significant challenge for most CIOs today. Years and years of disconnected technology investments are driving many organizations to a state where data duplication becomes a harsh fact of life. Simple questions like “where is you customer data located?” have in many cases multiple answers. This is not necessarily a bad thing, as long as there is a clear methodology to manage data. Unfortunately, most of the time there is no such thing in the organization. The fact that “where is your customer data located?” has multiple answers is worsened by the fact that “which application manages your customer data?” has multiple answers. To make matters even more complicated, most of the applications referred in the response will claim they own the “customer”.

MDM (Master Data Management) is emerging as a potential way to address the challenges mentioned above. Unfortunately, many organizations believe that by simply implementing a MDM solution all of these challenges will be addressed. That’s a big (and potentially costly) mistake. In most cases, along with the MDM solution itself, you also need a serious shift in the organization’s data management mindset. Failure to drive the mindset change will inevitably lead to the failure of the MDM solution implementation. Such a mindset change should result in at least the following:

  • A data governance program that spans (preferably) the entire organization
  • A master data model
  • Changes in applications that interact with master data
  • Coherent maintenance processes

Obviously, these are major changes for any organization, and they should be supported by the appropriate toolset. SQL Server 2008 R2 brings for the first time to the Microsoft Application Platform such a toolset, in the form of SQL Server 2008 R2 Master Data Services (MDS). Basically, MDS provides you the infrastructure to implement a master data hub for the central management of master data entities and hierarchies. This infrastructure provides services like management portal, versioning, data-centric workflows, extensible business rules, and role-based security.

For the first time on the Microsoft Application Platform we have the necessary tools to morph the vision of unified, enterprise-wide master data management into tangible reality. All we need is the ability to drive the change in mindset.

To find out more about this promising technology I encourage you to go to the SQL Server 2008 R2 Master Data Servicessite.

Tags: ,

SQL Server | Architecture | Microsoft Application Platform

Visual Studio 2010 Release Candidate: First Impression

by Ciprian Jichici 12. February 2010 01:42

I have to admit I was a little bit worried about the overall performance of the new Visual Studio 2010 shell based on the Windows Presentation Foundation technology. I had some mixed feelings while using the preliminary releases like Beta 1 and Beta 2. Don’t get me wrong, I am a big fan of the new VS simply because WPF opens a whole new range of possibilities for it. My concerns were focused around its performance on mid-sized machines. I am perfectly aware of the fact that not all developers are going to code using VS 2010 on quad/octo-core hardware with 16/32 gigs of RAM. This is why I am using my Acer Aspire 1420P notebook as a benchmark to measure the quality of the development experience with VS 2010 (to make things clear, the machine has 4 gigs of RAM and a dual-core Intel Celeron CPU running at 1.2 GHz).

After one and a half day of use in heavy coding I have to say I am impressed and many of my original performance concerns are now things of the past. True, I haven’t had yet the chance to try all the different designers and project templates, but I can say there is a significant improvement in performance when compared to Beta 2. Jason Zander does an excellent reviewon Channel 9 related to the significant changes made in VS 2010 RC.

It certainly looks like VS 2010 together with .NET Framework 4 are on the right track to rock the world of developers once they hit RTM.

Tags: ,

.NET | Microsoft Application Platform | Visual Studio

Windows Server AppFabric: The Architectural Point of View

by Ciprian Jichici 2. February 2010 20:53

Most complex applications will rely on certain types of functionalities that are not tied to a certain layer or tier. Since they affect entire applications it is highly desirable to place these functionalities in a centralized location in code in order to avoid unnecessary duplication. The certain advantage you gain with this approach has its own Achilles' heel: you’ve just created the perfect location for high-impact design mistakes. Because of these interesting characteristics these functionalities are commonly referred among software architects as crosscutting concerns. Some of the most common crosscutting concerns are:

  • Authentication and authorization
  • Caching
  • Communication
  • Configuration management
  • Exception Management
  • Logging and instrumentation
  • State management
  • Validation

The 2nd edition of the Microsoft Application Architecture Guide has an excellent discussion about crosscutting concerns.

Since they are so common among software applications, it’s no surprise that every single application deals with (hopefully all of) them in its own way. Fortunately, most application platforms offer support to architects and developers in order to address the crosscutting concerns. The .NET Framework 4 in particular and the Microsoft Application Platform in general are no exception. But there’s a catch here: at the core level there is no integrated approach. Take .NET configuration files for services for instance. There are tons of things that you can do with configuration files in the development environment but there’s not much out-of-the-box functionality to handle them once they are deployed.

From the point of view of software architecture, one of the very interesting developments in Windows Server is the Application Server role. Indeed, Windows Server has come a very long way from being a platform providing fundamental APIs to being a true application server. At the heart of this journey there are two fundamental parts: the Microsoft .NET Framework and the Internet Information Services. Today, .NET Framework 4 provides all the necessary building blocks for the development of robust and scalable distributed solutions. IIS on the other hand evolved from a HTTP-based web server to a multi-purpose, multi-protocol, secure and robust hosting environment for application services. Add WAS (Windows Process Activation Service) to the mix and what you get is a pretty strong and scalable application server.

Building on  top of the existing functions in .NET Framework 4 and the WAS/IIS environment, Windows Server AppFabric brings the Application Server to the next level. And by next level I mean that in addition to existing fundamental APIs and hosting environment the AppFabric brings out-of-the-box, robust, and scalable solutions for the following crosscutting concerns:

  • Caching
  • Communication
  • Configuration management
  • Logging and instrumentation
  • State management

These concerns are addressed via the following categories of functionalities:

  • Better deployment, management, and configuration for WCF and WF services hosted in WAS
  • Persistence management for workflows
  • Tracking profiles (together with dedicated, queryable storage)
  • Monitoring of hosted services
  • PowerShell integration (custom management scripts)
  • Caching of any serializable CLR object and caching APIs at enterprise scale
  • Caching available as a service
  • High availability and automatic load balancing

It is very important to understand that Windows Server AppFabric will not provide comprehensive solutions to the concerns mentioned above. Nevertheless, it is an excellent and powerful piece of the puzzle that software architects can take into consideration when designing software solutions.

For more details about Windows Server AppFabric you can check the dedicated section from the Windows Server Developer Center.

Tags: , ,

.NET | Architecture | Microsoft Application Platform | Windows