Sunday, February 21, 2010

Windows Azure and Cloud Computing Posts for 2/19/2010+

Windows Azure, SQL Azure Database and related cloud computing topics now appear in this weekly series.

 
Note: This post is updated daily or more frequently, depending on the availability of new articles in the following sections:

To use the above links, first click the post’s title to display the single article you want to navigate.

Cloud Computing with the Windows Azure Platform published 9/21/2009. Order today from Amazon or Barnes & Noble (in stock.)

Read the detailed TOC here (PDF) and download the sample code here.

Discuss the book on its WROX P2P Forum.

See a short-form TOC, get links to live Azure sample projects, and read a detailed TOC of electronic-only chapters 12 and 13 here.

Wrox’s Web site manager posted on 9/29/2009 a lengthy excerpt from Chapter 4, “Scaling Azure Table and Blob Storage” here.

You can now download and save the following two online-only chapters in Microsoft Office Word 2003 *.doc format by FTP:

  • Chapter 12: “Managing SQL Azure Accounts and Databases”
  • Chapter 13: “Exploiting SQL Azure Database's Relational Features”

HTTP downloads of the two chapters are available from the book's Code Download page; these chapters will be updated in February 2010 for the January 4, 2010 commercial release. 

Azure Blob, Table and Queue Services

No significant articles today.

<Return to section navigation list> 

SQL Azure Database (SADB, formerly SDS and SSDS)

Cihangir Biyikoglu’s Analyzing Query Performance just got easier with SQL Azure post of 1/19/2010 describes how to take advantage of the newly exposed sys.dm_exec_query_stats view:

With the recent update we posted to the SQL Azure service (full details of the update here), the sys.dm_exec_query_stats view is enabled. There is a ton of information about how to use the view out there but in a paragraph…

You can;

  • Find most frequently executed queries – (execution_count)
  • Find queries with most IO cycles – (total_physical_reads + total_logical_reads + total_logical_writes)
  • Find queries suffering most from blocking – (total_elapsed_time – total_worker_time)
  • Find queries with most CPU cycles – (total_worker_time)
    -- here is an example with exec count
    SELECT TOP 100 
            execution_count,
          SUBSTRING(text,(statement_start_offset/2)+1, 
            ((CASE statement_end_offset
              WHEN -1 THEN DATALENGTH(text)
             ELSE statement_end_offset
             END - statement_start_offset)/2) + 1) AS statement_text,
          query_plan
    FROM sys.dm_exec_query_stats 
    cross apply sys.dm_exec_sql_text (sql_handle)
    cross apply sys.dm_exec_query_plan (plan_handle)
    ORDER BY execution_count DESC
  • <Return to section navigation list> 

    AppFabric: Access Control, Service Bus and Workflow

    See Bill Wilder’s Curt Devlin to Speak about Identity in the Cloud at Boston Azure Meeting post of 2/21/2010 in the Cloud Computing Events section.

    <Return to section navigation list>

    Live Windows Azure Apps, APIs, Tools and Test Harnesses

    Shenyizhe’s CNAME and SSL on Windows Azure Cloud Application tutorial of 2/22/2010 begins:

    Recently I tried to assist a team in setting up CNAME and SSL on their Windows Azure account and I will like to share with you the steps that's involved so you can do the same for your website.

    Setting up is relatively easy and can be completed within 15 minutes.

    To start, all Windows Azure project is assigned a URL such as <yourprojectname>.cloudapp.net. However, if you run your own website and wish to mask out this name with your public facing domain, you will have to create a CNAME entry in your DNS to map this.

    In today’s example, we have a public facing URL called gallery.cloudfex.com that we wish to point to our sample SSL URL nimbusssl.cloudapp.net.

    To set that up, you simple has to use the DNS Manager (for Windows 2008 Server) or your domain registrar like GoDaddy if they are hosting the DNS for you to add a CNAME record.

    For DNS Manager: ...

    image

    Shenyizhe continues with the details of providing a commercial (RapidSSL) server certificate for SSL transport encryption.

    The MapDoNet team claims “MapDotNet UX makes mapping in the cloud easy” MapDotNet UX + Windows Azure in this 2/2010 announcement:

    MapDotNet UX version 8 includes WCF web services that can be deployed directly to the Azure Fabric, giving you a complete GIS server in the cloud.  GIS web-based applications are by nature very processor intensive, the ability to deploy to an instantly scalable architecture opens a new paradigm for enterprise geographic information systems.  Combined with Silverlight, developers will now be able to build applications faster and with less concern about system scalability.

    MapDotNet UX version 8.0 is 100% managed .net code. The entire server product and its functionality is deployable to Azure, which runs in a 64-bit virtualized environment.   This enables map tile rendering (using a high-speed WPF-based map renderer), spatial querying and spatial data editing all in Azure. This is much more than push pins in the cloud!

    Brian Hitney’s Azure Deployment Follow-up post of 2/20/2010 begins:

    In my recent screencast on Azure deployment, I focused mainly on deploying manually through the Azure web interface.   You can also use the management API to deploy/configure/reconfigure your applications programmatically from your custom code or via powershell scripts.

    The one thing you cannot do via the web interface that you can do programmatically is change the WAD (Windows Azure Diagnostics) performance counter and logging information.  This is really useful because many times, you profile an application for a given period of time and not all the time.

    To do this, you need to first configure a certificate that will be used to control access to the management API and send it with every request to the REST-based API (for example, when uploading a package).  The easiest way to create a self signed certificate is with the makecert utility included in the Windows SDK:

    makecert -r -pe -a sha1 -n "CN=Azure Service Management" -ss My -len 2048 -sp "Microsoft Enhanced RSA and AES Cryptographic Provider" -sy 24 AzureServiceManagement.cer

    The public key is then uploaded to your Azure account via the web interface:

    image

    If you’re looking for powershell examples, check out the Azure Powershell CmdLets in the resources I list below. …

    Brian continues with sample PowerShell scripts.

    Bill Zack announced the availability of updated Power Tools for Windows Azure on 2/19/2010:

    Ryan Dunn of the Microsoft Corporate Developer and Platform Evangelism group has just released updated versions of the Windows Azure Service Management (WASM) Cmdlets for PowerShell.

    cmdlets2.png

    These cmdlets can be combined in order to script out many useful Windows Azure management functions

    With these cmdlets you can effectively automate and manage all your services in Windows Azure. Using them you can:

    • Deploy new Hosted Services
      • Automatically upload your packages from the file system to blob storage.
    • Upgrade your services
      • Choose between automatic or manual rolling upgrades
      • Swap between staging and production environments
    • Remove your Hosted Services
      • Automatically pull down your services at the end of the day to stop billing. This is a critical need for test and development environments.
    • Manage your Storage accounts
      • Retrieve or regenerate your storage keys
    • Manage your Certificates
      • Deploy certificates from your Windows store or the local file system
    • Configure your Diagnostics
      • Remotely configure the event sources you wish to monitor (Event Logs, Tracing, IIS Logs, Performance Counters and more)
    • Transfer your Diagnostics Information
      • Schedule your transfers or Transfer on Demand.

    Read this blog post for additional details.

    Brian Swan’s Getting Started with PHP and SQL Azure post of 2/12/2010 just showed on Google Alerts:

    In this post, I’ll show you how to get started with PHP and SQL Azure. I’ll walk you through building a very simple Web page in the same way I did in a recent post: Getting Started with the SQL Server Driver for PHP. That blog entry is very relevant because I used a SQL Server Express database as my data store, and in the development stage of an application, there is almost no difference between a PHP/SQL Server Express application and a PHP/SQL Azure application. There are some differences and limitations, which I’ll highlight, but not many that I encountered. (Note: I won’t go into the benefits of cloud computing in this post, but if you are interested, I would suggest starting here: Cloud Computing.) For more thorough information about SQL Azure, see the SQL Azure documentation and the Windows Azure SDK for PHP. …

    Return to section navigation list> 

    Windows Azure Infrastructure

    Brenda Michelson continues her cloud computing survey with BT Global Services Enterprise Intelligence Research Report: Location does matter in Cloud Computing of 2/19/2010:

    Next on my cloud computing survey list is BT Global Services Enterprise Intelligence survey.  The survey is broader than cloud computing, covering “CIOs and their relationship with senior corporate executives and IT systems users.”  The survey report includes:

    • the relationship between corporate information business performance
    • demand for information
    • successful collaboration
    • what the CIO needs to do in the recession
    • the challenges facing cloud services
    • security in the cloud
    • global attitudes to business success
    • the role of the CIO

    As someone interested in active information and the business-IT relationship, I found interesting points throughout the report.  However, the one cloud computing finding I want to call out is cloud location. 

    Many of the clouderati will tell you that the physical location of the cloud computing environment shouldn’t matter to adopters.  While technically and architecturally this might be true, given appropriate and reliable network connections, there are business implications of physical location.  Most notably, regulatory and compliance concerns for cloud-resident data. …

    <Return to section navigation list> 

    Cloud Security and Governance

    Salvatore Genovese asserts “The two organizations will also co-present their findings at SecureCloud 2010 in Barcelona on March 16” in his Cloud Security Alliance and IEEE on Cloud Computing Security post of 2/20/2010:

    The Cloud Security Alliance (CSA), a not-for-profit organization formed to promote the use of best practices for providing security assurance within cloud computing, and IEEE, the world's leading professional association for the advancement of technology, on Friday announced they are joining forces to ensure that best practices and standards are developed and available to provide security assurance for cloud computing.

    As a result of this collaboration, CSA and IEEE have been conducting a survey to identify and define the most critical security concerns surrounding enterprise cloud computing.

    The survey was completed by hundreds of IT professionals who are actively involved in implementing cloud-related projects. CSA and IEEE will announce their findings at the Cloud Security Alliance Summit, a half-day event being held at the RSA conference in San Francisco on March 1, 2010.

    The two organizations will also co-present their findings at SecureCloud 2010 in Barcelona on March 16. …

    Chris Hoff’s Don’t Hassle the Hoff: Recent Press & Podcast Coverage & Upcoming Speaking Engagements is a 2/21/2010 linkpost to @Beaker’s blog, presentations and speaking engagements:

    Here is some of the recent coverage from the last couple of months or so on topics relevant to content on my blog, presentations and speaking engagements.  No particular order or priority and I haven’t kept a good record, unfortunately.

    Important Stuff I’m Working On:

    Press/Technology & Security eZines/Website/Blog Coverage/Meaningful Links:

    Hoff continues with lists of:

      • Recent Speaking Engagements/Confirmed to  speak at the following upcoming events …
      • Conferences I am tentatively attending, trying to attend and/or working on logistics for speaking …
      • Oh, let us not forget these top honors (buahahaha!) …

    Roger Strukhoff asserts “Cloud Security Alliance (CSA) adds another big name to membership list” in his CA Decides to Join Cloud Computing Trade Group post of 2/21/2010:

    The San Francisco-based Cloud Security Alliance (CSA) has added CA into the mix, increasing its roster of major players.

    The CSA stemmed from discussions at a Cisco event in late 2008, and is dedicated to promoting security best practices within cloud computing. It seems that only Oracle is among the missing major technology vendors to date.

    The CSA has also yet to add Amazon, eBay, Google, or Yahoo! -- potential major cloud providers all -- to its roster.

    In any case, CA plans to add its identity and access management knowledge to the alliance’s initiatives and working groups, and provide input into the next release of the alliance’s Security Guidance for Critical Areas of Focus in Cloud Computing. Matthew Gardiner, CA's director of security and compliance, said the company will work with other alliance members including technology vendors, customers and cloud providers to sort through the security issues, educate would-be cloud adopters and address the real issues.

    “It’s no secret that one of the big areas of concern, both rational and perhaps irrational, about cloud is related to security and management because organizations are putting things where they hadn’t before, applications and data,” said Gardiner. The area of identity and access management is “underserved” in the cloud, according to a report on Gardiner's views.

    <Return to section navigation list> 

    Cloud Computing Events

    Ben Kepes reports CloudCamp Auckland Feb 26, 2010 is almost at capacity in this 2/21/2010 Tweet:

    This is our 2nd CloudCamp in Auckland. We hope you will join us.

    About CloudCamp:
    CloudCamp is an unconference where early adopters of Cloud Computing technologies exchange ideas. With the rapid change occurring in the industry, we need a place we can meet to share our experiences, challenges and solutions. At CloudCamp, you are encouraged you to share your thoughts in several open discussions, as we strive for the advancement of Cloud Computing. End users, IT professionals and vendors are all encouraged to participate.

    If you are interested in sponsoring or submitting a proposal for a Lightning Talk, send an email to ben @ diversity.net.nz

    The Acadiana .NET Users Group announces an Introduction to Windows Azure by Carlos Femmer presentation on 2/25/2010 at 6:00 to 7:30 PM:

    Windows Azure is Microsoft’s new platform for running your applications on a scalable, reliable hosting framework. The content included for this topic walks you through a high-level overview of what Windows Azure is, how you can develop applications that target Windows Azure.

    Location: LEDA, 212 E. Devalcourt St., Lafayette, Lousiana (Cajun country)

    Bill Wilder reported Curt Devlin to Speak about Identity in the Cloud at Boston Azure Meeting in this 2/21/2010 post:

    logo for BostonAzure.orgThe following is an update to the agenda for the upcoming Boston Azure User Group meeting this coming Thursday.

    To RSVP for the meeting (helps you breeze through security and helps us have enough pizza on hand), for directions, and more details about the group, please check out http://BostonAzure.org.

    To get on the Boston Azure email list, please visit http://bostonazure.org/Announcements/Subscribe.

    [6:00-6:30 PM] Boston Azure Theater

    The meeting activities begin at 6:00 PM with Boston Azure Theater, which is an informal viewing of some Azure-related video. This month will feature the first half of Matthew Kerner’s talk on Windows Azure Monitoring, Logging, and Management APIs from the November 2009 Microsoft PDC conference.

    [6:30-7:00 PM] Upcoming Boston Azure Events and Firestarter

    Around 6:30, Bill Wilder (that’s me) will first show off an interesting CodeProject contest, then will lead a discussion about the future of the Boston Azure user group and the upcoming All-Day-Saturday-May-8th event.

    Curt Devlin will take the stage at 7:00 PM.

    Before the meeting, if you want a little more context, you may wish to read Kim Cameron’s essay The Laws of Identity, which is an insightful analysis of challenges around Identity.

    [7:00-8:15] Featured speaker: Curt Devlin of Microsoft
    Abstract

    Photo of Curt Devlin, Architect at MicrosoftThe Azure platform presents new challenges for identity management. As developers and architects, we will still have to answer the same two perennial questions: 1) Who are you? 2) And what are you allowed to do? But the traditional on-premise approaches to authentication, authorization and identity lifecycle control are not adequate to meet these new challenges. The Geneva suite of technologies for claims-based identity management can be help because cloud computing can be thought of as a “special case” of federation, with many similar requirements.

    Together these two paradigms appear to be converging to create the perfect storm of paradigm shifts. However, even WIF, ADFS 2.0 and CardSpace 2.0, will only take us part way to a complete solution in the near term. This session will provide a simple recipe for claims-based identity management in Azure using Geneva, discuss some of the most important reasons why this is necessary, and finally some of the shortcomings we will still have to contend with on the road ahead. The aim is to educate, motivate, and caution.

    Steve Nagy’s Gold Coast .Net SIG Azure Development Talk – Slides and Demo post of 2/21/2010 provides links to downloadable content:

    Last Thursday evening (18th Feb 2010) I did a presentation to the Gold Coast .Net SIG about developing applications for the Windows Azure Platform. The talk went for almost 2 hours (for that I apologise!) and seemed well received.

    I started with an overview of the platform, and then dived into Windows Azure, SQL Azure and .Net Services. I used a demo application that performed searches for images based on colour content, using Azure to do the grunt work of analysing images.

    You can find the files from that presentation here:

    The night seemed to go well, except for the fact that my SQL Azure account expired on that very day, mere hours before my presentation. I received no warning email and was pleasantly surprised by the little ‘disabled’ flag against my SQL Azure account.

    I will now spend the next few days trying to work out what I have done to anger the demo gods. In the meantime, stay tuned, as future blog posts will break down that demo application to talk about some of the techniques used to share code, use configuration settings, and utilise database access, all in a fashion that is agnostic to whether we are using the developer fabric, or the production Azure fabric. …

    Reuven Cohen describes the CloudCamp India tour and other Indian cloud-based activites in his The Incredible India Cloud post of 2/21/2010:

    To most who watch the cloud computing space telling you the there is an incredible amount of interest in Cloud Computing is rather obvious. Often times you'll hear me talking about the opportunities from the pacific rim nations or the other various emerging economies around the globe. So the fact that interest in cloud computing is exploding in India shouldn't come as a surprise, or should it?

    India is an interesting place for technology, it's a country that has a population just slightly smaller than that of China making it the second-most populous country with approximately 1.17 billion people (estimate for July, 2009 according to wikipedia). Statically the country consists of more than one-sixth of the world's population and has more than two thousand ethnic groups. Or to put it another way, India occupies 2.4% of the world's land area and supports over 17.5% of the world's population. So like other high growth markets, India's rapid economic rise is based mostly on their massive population base and diversity.
    Which brings us to Cloud Computing in India. One of the side effects of the CloudCamp series of events is within it's ability to provide the pulse of the emergent cloud computing opportunties from around the globe with India currently leading the charge with a series of event happening this week in India.

    Currently underway, the CloudCamp India Tour features five CloudCamp events over the next eight days from a variety of the largest cities in India, illustrating the the growth of the movement in one of the largest technology communities in the world. …

    George Reese announced on 2/21/2008 that CloudCamp Minneapolis, Apr 18, 2009 has only 22 tickets left:

    CloudCamp is an unconference where early adopters of Cloud Computing technologies exchange ideas. With the rapid change occurring in the industry, we need a place where we can meet to share our experiences, challenges and solutions. At CloudCamp, you are encouraged to share your thoughts in several open discussions, as we strive for the advancement of Cloud Computing. End users, IT professionals and vendors are all encouraged to participate.

    Proposed agenda:
    9:00 - 10:00 networking, unconference organization
    10:00-10:15 Lightning Talks from VISI, Microsoft, enStratus, and Rackspace
    10:15-11:15 Lightning Panel on Cloud Computing
    11:30-12:15 Sessions round 1 (4 sessions) (including “What is Cloud Computing?”)
    12:15-13:00 Lunch
    13:15-14:00 Sessions round 2 (4 sessions)
    14:15-15:00 Sessions round 3 (4 sessions)
    15:30 After Conference Happy Hour (sponsored by VISI)

    We will be starting at 9am on with networking and a light bagel breakfast. This time before the start of the full conference is great for meeting the people in the Twin Cities who have been driving the evolution of cloud technologies.

    At 10am, we’ll start up the main program with lightening talks from a balance of local cloud innovators like VISI and enStratus as well as a the national cloud players Microsoft and Rackspace.

    At around 10:25/10:30, there will be a lightning panel to address many of the issues on your mind in the realm of cloud computing. Come prepared with questions. Better yet, come prepared to participate because we will be asking attendees to take part on the panel!

    The unconference begins after the lightning session. Possible topics may include what’s up with Azure and case studies using cloud technologies like Google AppEngine, EC2, and Force.com. The actual agenda is driven by the attendees. Do you have some interesting knowledge in the realm of cloud computing to share? Come prepared to talk. You won’t need to create a fancy formal presentation. Just be able to lead a talk and drive the discussion.

    Finally, join us after the conference starting around 3:30/4pm at The Bulldog in Northeast Minneapolis for a happy hour with complimentary drinks sponsored by CloudCamp Platinum Sponsor, VISI. Free drinks and great conversation!

    See George’s post for the venue details.

    Salvatore Genovese reports on 2/21/2010 that The Cloud Security Alliance and IEEE will co-present their findings at SecureCloud 2010 in Barcelona on 3/16/2010. See Sal’s item in the Cloud Security and Governance section for more details.

    Piyush Prakesh suggests catching this GIS Mapping Applications Framework presented by iLink Systems, Inc. Microsoft Webcast event on 2/25/2010 at 10:00 AM PST:

    Event Overview - Summary:
    Now more than ever, government agencies at the state and local levels are looking for efficient ways to deliver current and contextual information online on critical topics and services to their residents. They face intense budget pressures to do this at a low initial cost and without high, ongoing operational and maintenance charges. To help with this situation, iLink Systems, a Microsoft Gold Certified Partner, has recently introduced its “GIS Mapping Applications Framework.” It is a reusable framework which allows easy creation and deployment of intuitive, visual, map-based solutions that can cover social services, health services, public safety, schools, arts, recreation, and more. Utilizing Bing Maps for visualization, the framework uses Microsoft technologies such as Silverlight 3, Windows Azure and SQL Azure. The webinar will describe the framework and also show sample applications. [Emphasis added.]

    Presenter:
    Sree Balaji, CEO, iLink Systems

    <Return to section navigation list> 

    Other Cloud Computing Platforms and Services

    Eric Kimberling claimed “[SAP] has formed a strategic research partnership with The 2.0 Adoption Council” in his SAP Releases Cloud Computing Beta post of 2/21/2010:

    SAP has made its 12sprints collaborative decision-making project available via public beta and has formed a strategic research partnership with The 2.0 Adoption Council – a peer forum of IT and business leaders and thinkers who are discovering new ways of working in modern organizations.

    Both of these moves demonstrate SAP’s commitment to helping companies bring the power of Web 2.0 technologies and trusted information into their business processes. 12sprints, the codename for a new collaborative decision-making application, is the first and only software-as-a-service (SaaS) solution that brings together people, information and methods to drive swift, informed decision-making.

    The public beta phase of 12sprints invites everyone to take the solution for a free spin, evaluate it and contribute feedback to enrich its further development. …

    The public beta version of 12sprints is a hosted technology that requires no download, and it is available online for free here: www.12sprints.com. Both free and paid versions will be offered upon general availability. You can follow 12sprints on Twitter at @12sprints and take part in the conversation by using the hashtag #12sprints. You can also become a fan of the 12sprints Facebook page. …

    Bruce Kyle announced on 2/20/2010 Popular Web Applications Available Free on Windows Web App Gallery:

    Today, Microsoft announced as February’s monthly spotlight: the Windows Web App Gallery, available via the Web Platform Installer.

    The Windows Web Application Gallery provides instant access to the most popular free web applications available today. With just a few clicks you can install applications and be up and running within minutes.

    The Windows Web App Gallery offers:

    • The Most Popular Web Applications
    • Seamless Installation
    • Ability to Choose with Confidence

    For more information or to download, please see Windows Web App Gallery.

    William Vanbenepe’s HP has submitted a specification to the DMTF Cloud incubator post of 2/19/2010 describes a proposed cloud API that “lets you define a service that specifies requirements for server (physical or virtual), storage (whether for example it’s a vmdk or a dual path SAN LUN to a RAID5 volume), network or software, publish that definition in a catalog, and then perform lifecycle operations on those catalog definitions:”

    When I lamented, in a previous post, that I couldn’t tell you about recent submissions to the DMTF Cloud incubator, one of those I had in mind was a submission from HP. I can now write this, because the author of the specification, Nigel Cook, has recently blogged about it. Unfortunately he is isn’t publishing the specification itself, just an announcement that it was submitted. Hopefully he is currently going through the long approval process to make the submitted document public (been there, done that, I know it takes time).

    In the blog, Nigel makes a good argument for the need to go beyond a hypervisor-centric view of Cloud computing. Even at the IaaS layer there are cases of automated-but-not-virtualized deployment that have all the characteristics of Cloud computing and need to be supported by Cloud management APIs. Not to mention OS-level isolation like Solaris Containers.

    Nigel also offers a spirited defense of SOAP-based protocols. I don’t necessarily agree with all his points (“one could easily map the web service definition I described to REST if that was important” suggests a “it’s just SOAP without the wrapper” view of REST), but I am glad he is launching this debate. We need to discuss this rather than assume that REST is the obvious answer. Remember, a few years ago SOAP was just as obvious an answer to any protocol question. It may well be that indeed REST comes out ahead of this discussion, but the process will force us to be explicit about what benefits of REST we are trying to achieve and will allow us to be practical in the way we approach it.

    Reuven Cohen claims Cloud Business Models Evolving Quickly in this 2/19/2010 post:

    There's been a lot of talk about what 2010 represents from a cloud adoption point of view. Some say it's the year of the prototype, others the year cloud computing becomes the standard way people consume web based products and service. For me it represents the year companies innovate on the various cloud business models or to put it another way, it's the year we make money.

    As we, [Enomaly] deploy more and more cloud service providers around the globe it's interesting to see the differences among the various regions and classes of services providers and how they adapt our product for their particular market. When we built the latest iteration of the Enomaly ECP Service Provider edition, we decided to make the product as flexible as possible for a variety of different business / revenue and deployment models. This was a risky move, because it now means that we have the extra added responsibility of assisting our customers with not only deploying their cloud services, but also defining any number of various pricing schemes. But as it turns out this decision has given us an interesting opportunity to gain valuable insight in to the various cloud business models.

    <Return to section navigation list> 

    blog comments powered by Disqus