Architecture + Strategy

Musings from David Chou - Architect, Microsoft

June, 2010

  • Architecture + Strategy

    Active Directory and BizTalk in the Cloud?


    A colleague pointed me to an interesting blog post – Two products Microsoft should set free into Cloud, which ended with this question:

    So Microsoft – here is a market that is begging to be served and yours to lose. While you still have work to do to make your to Azure Platform, Business Applications, Office Suite widely adopted in Cloud, BizTalk and Active Directory are the need of the hour and are ready to go. So waste no more time – let them free and watch them soar in Cloud.

    Now, if cloud computing is simply outsourced hosting, then Microsoft could just start selling Active Directory and BizTalk as a SaaS offering today. But I tend to think that cloud computing represents a new paradigm (basically, more distributed computing than utility computing), and more value can be gained by leveraging cloud as a new paradigm.

    Below is the rather lengthy comment I left on that blog.

    Active Directory and BizTalk not being part of the Microsoft cloud platform today (either in SaaS or PaaS model) doesn’t mean Microsoft doesn’t want to “set them free into cloud”. In fact, our long-term roadmap has been to make all of our software products and platforms available in the cloud in some form.

    So then why haven’t we? Shouldn’t it be pretty simple to deploy instances of Active Directory and BizTalk in Microsoft data centers and let customers use them, a-la-SaaS-style? The answer lies in the fundamental question – is cloud computing simply server hosting in other people’s data centers, or is it a new paradigm we can leverage to do things differently?

    Microsoft’s approach to cloud computing is exactly that – provide the right solutions for cloud computing to effectively support the new paradigm. For example, as today you can see that in Microsoft’s SaaS offerings, there are both single-tenant and multi-tenant versions of Exchange, SharePoint, Office Communications Online suites; and in the PaaS offerings, SQL Azure is a fully multi-tenant relational database service and not simply hosted SQL Server, and Windows Azure’s native roles are provided via a higher abstraction, container-like model, and not simply hosted Windows Server.

    So then the question is, what’s the right cloud model for Active Directory? That is still under consideration, but my personal opinion is that we still need to carefully evaluate a couple of factors:

    • Do customers really want to outsource their identity management solution? Is there really a lot of demand for hosted enterprise identity management services?
    • What are the true benefits of hosting the identity management solution elsewhere? Just some cost savings from managing your own servers? That might be the case for smaller companies but larger organizations prefer the private cloud approach
    • For example, the identity management solution is essential in managing access control across an IT architecture. Wouldn’t it work better if it’s maintained closer, in terms of proximity, to the assets it’s intended to manage? Keep in mind that most “pure cloud” vendors who advocate otherwise, use their own identity management infrastructure hosted in their own data centers
    • And from an external, hybrid cloud, and B2B integration perspective, identity federation works pretty well to enable single sign-on across resources deployed in separate data centers and security domains
    • Lastly, what’s the right model for cloud-based identity management solution? Is it making the online identity metasystem more “enterprise-like”, such as adding some of the fine-grained management capabilities to the Live ID infrastructure, or developing a multi-tenant version of Active Directory that can better address some of the consumer identity scenarios?

    Similarly for BizTalk, many of the above points apply as well for its cloud aspirations, plus a few specific ones (again just my personal opinion):

    • Process and data integration between organizations (such as traditional B2B scenarios) and different cloud-based services operated by separate organizations, is a lot different from traditional enterprise integration scenarios where enterprise service bus type of solutions fit in today. It has a lot more to do with service management, tracking, and orchestration in an increasingly more service-oriented manner; as opposed to having system and application-specific adapters to enable communication
    • Also, EAI and ESB type of integration places the center of gravity in terms of context and entity definition within one enterprise. Cloud-based integration, such as outsourced process management, multi-enterprise integration, etc.; shifts the center of gravity into the cloud and in a much more shared/federated manner
    • Question then is, what is the right type of integration-as-a-service solution that would work well for cloud-based integration scenarios? We have many integration hub service offerings today, many grew from their EDI/VAN, managed FTP, B2B, supply chain management, e-commerce, and RosettaNet, ebXML, HL7 roots. The landscape for external integration is vastly more diverse and generic (in each vertical) than any one organization’s way of managing processes
    • Some initial direction can be observed in Windows Azure AppFabric today, with the Service Bus offering. It works as an Internet service bus to help facilitate communication regardless of network topologies. It advocates a federated application model in a distributed environment, where processes and data are integrated in a service-oriented manner. It’s a much more dynamic environment (changes are more frequent and preferred) than a more static environment in an on-premise systems integration scenario
    • Thus is it correct to simply have BizTalk hosted and sell it as a cloud-based integration solution? Will an on-premise systems integration approach effectively handle integration scenarios in a more dynamic environment?

    Pure cloud pundits often ask “why not cloud?” But I think it’s also fair to counter that question with “why?” Not all IT functions and workloads are ideally suited for external deployment. A prudent architect should carefully consider what are the right things to move into the cloud, and what are the right things to still keep on-premise, instead of doing external cloud deployment just for the sake of doing so. There’s a big difference between “can” and “should”.

    One way of looking at finding the right balance between what should move into the cloud, is where the users are. Applications that are consumed by users on the Web, are excellent candidates to move into public clouds. Internal business applications that support a back-office operation, often are still better maintained on-premise; closer to an organization’s workforce. It’s also a nice general approach of balancing trade-offs between security and control, scalability and availability.

    Thus eventually Microsoft will have some form of enterprise-level identity management solution, and multi-enterprise integration solution, available as cloud-based services. But these don’t necessarily have to be hosted Active Directory and BizTalk Server as we know them today. :)

  • Architecture + Strategy

    Standardization in the Cloud – Necessity or Optional?


    This is a widely discussed topic as well, along with many others. A recent panel discussion at GigaOm’s Structure 2010 conference had some pretty interesting comments about the question. Sinclair Schuller who was on that panel, posted the question, and his thoughts, on his blog - Do We Need Cloud API Standards?

    Here is my take (though a bit more philosophical one):

    My personal opinion is that “formal API standardization” is not “absolutely required”. Philosophically I’m with the “innovate now, standardize later” camp as I think the trade-offs still favor innovation over standardization in this area today, plus the rest of the IT world still operates in that mode, thus would cloud computing have a better chance at standardization?

    Fundamentally though, I think we could ask the question a little differently. Instead of applying that question to cloud computing as a whole, it might make more sense, and more feasible, to look at certain areas/layers in cloud computing as places where standardization may add more value than constraints.

    At a high-level, the industry is differentiating between infrastructure, platform, and software as-a-service offerings (i.e., IaaS, PaaS, SaaS). At this moment, specialization levels increase significantly as we move up the stack. Public PaaS offerings such as Windows Azure, AWS, App Engine,, etc., are already more different than similar, and the differentiations grow as we get into SaaS, and then into information management, and so on. The opportunity for standardization is really only available at the lower levels in IaaS offerings, as there is more commonality and established standards and processes in terms of how customers operate and manage infrastructure. For example, a lot of focus today is to support cloud federation to provide elasticity for private clouds, but that’s just one abstraction layer on top of provisioning and managing VM’s (over-simplifying a bit here). Though over time we might see stability and commonalities grow upwards, and towards the tipping point where standardization in some form may be more feasible for some layers.

    However, at the same time, why standardize when, as others have pointed out, companies like Eucalyptus can help mitigate and manage the differences in underlying API’s and providing that abstraction at a certain level? After all, cloud-as-a-platform provides opportunities for people to build layers and layers of abstractions to add value in different ways. Also in a way, this is where cloud computing and traditional on-premise software operations differ, fundamentally. Cloud computing inherently allows us to work in a dynamic environment, where changes can be more frequent, and in fact preferred. On the other hand, on-premise software operations today tend to be more on the static side of things, and standardization helps to manage and mitigate changes and differences when we have a heterogeneous infrastructure to operate.

    Thus standardization can be considered an established approach to help us better manage the on-premise world. From this perspective, is it necessary or beneficial to try to enforce this particular traditional approach to a different paradigm? That is of course, if we think cloud computing represents a new paradigm even though it’s built upon existing technologies and best practices. Personally I think cloud computing represents something different than just trying to host VMs in different places, and more benefits can be gained by leveraging it as a new paradigm (and that’s a whole other topic to dive into). :)

  • Architecture + Strategy

    SOA with .NET and Windows Azure


    Yes that is a book and it is now available!

    SOA with .NET and Windows Azure

    I had the privilege to participate as a member of a very esteemed and talented authoring team for this book that includes Thomas Erl, John deVadoss, Nitin Gandhi, Hanu Kommalapati, Brian Loesgen, Christoph Schittko, Herbjörn Wilhelmsen, Mickey Williams, and many other contributors. It’s amazing how a book like this came together via such a team effort over the course it took, and now finally seeing it published!

    So how is this book relevant now that SOA has been proclaimed dead, and we have cloud computing to the rescue? Well, not exactly, and in fact, cloud computing heightened the need for carefully designed and planned SOA. However, SOA doesn’t just mean the “big SOA” type of endeavors the industry has been advocating in the past few years, and “small” or pragmatic SOA is the more effective form of SOA today. And that’s what this book is intended for; by marrying service-oriented principles with the Microsoft .NET platform, to guide practitioners to incrementally build the intended SOA.

    And of course, it’s a great time to discuss how cloud computing relates to SOA, and how Microsoft’s Windows Azure platform can be used to build service-oriented systems, and extend an organization’s SOA.

  • Architecture + Strategy

    In-Person Event: The Full Testing Experience - Professional Quality Assurance with Visual Studio 2010


    image Microsoft and Northwest Cadence are proud to offer this four hour live event – during which we will demonstrate the testing and quality assurance lifecycle using Visual Studio 2010 and Team Foundation Server. Join us as we dive into the testing tools and testing process you can use to dramatically improve the effectiveness of your QA and Test efforts. You’ll see the Microsoft Test Manager and Lab Management in all its glory as we explore how to manage your test environment, organize test suites, test cases, requirements and bugs, and how to manage both automated and manual test runs. In addition, you’ll see how to easily create an automated test from an existing manual test run. Finally, and most importantly, you’ll discover how insanely easy it is to create bugs that can be simply and reliably reproduced by developers – Visual Studio 2010 is that powerful.

    • Imagine knowing which manual regression tests you had to run, given the code changes in the recent build…
    • Imagine being able to quickly and completely capture bugs in such a way that developers can reproduce them…
    • Imagine being able to record your exploratory testing and turn that exploration into detailed test steps – with just a few commands…
    • Imagine taking a manual test run and, in seconds, turning it into an automated test…
    • Imagine using an intuitive interface to design, organize and execute your test plans…
    • Imagine seeing your testing progress on one simply dashboard, and drilling into critical details…
    • Imagine testing your application more effectively, in less time, and with less pain…

    Now come see it all. In action. Today.

    This training event is geared towards QA managers, technical and non-technical testers, business analysts, and quality-conscious developers working on cross-functional teams (or, gasp, organizations without testers).

    Register for a date & location near you!

    Welcome: 8:00 AM (Local Time)

    Seminar: 8:30 AM-12:00 PM (Local Time)

    Microsoft Partner Events:





    July 7, 2010

    Bellevue, WA


    July 8, 2010

    Portland, OR


    July 13, 2010

    Mountain View, CA


    July 14, 2010

    San Francisco, CA


    July 15, 2010

    Irvine, CA


    July 27, 2010

    Phoenix, AZ


    July 28, 2010

    Denver, CO



    Learn more about Visual Studio 2010

    Keep up with the latest developer news through MSDN Flash

    Keep up to speed on additional Northwest Cadence events


Page 1 of 1 (4 items)