There is still much to be done, but this page contains a partial list of cloud computing acronyms and definitions.
Cloud Computing Glossary
January 14th, 2010Why Azure?
December 29th, 2009Microsoft gets a lot of flak for its Windows operating system deficiencies, and until .NET came along, for its punishingly tough programming interface. Some of these criticizms are deserved, but I have a different take on Windows. If you were one of the fortunate ones programming in the late early 80’s, you would have been confronted with a dazzling array of computer platforms. Similarities ended at the the microprocessor. Z80-based machines ran CP/M, 6502 ran dozens of firmware-based ‘OS’s”, etc.
What Microsoft Windows provided was a common programming interface for developers, who could from their basement’s write applications that could reach a broad audience of users- each with an individually customized computer system. Each computer system, potentially sold by a different vendor. The screens could be monochrome, EGA, VGA, and printers could range from dot-matrix to laser printers and plotters. Microsoft’s NT futher extended the reach of independent software developers onto corporate desktops and later into datacenters.
Azure promises to extend the reach of developers once again- this time to a worldwide Internet audience. While it is a common marketing device by industry professionals to write about Azure providing developers with the tools to write the next FaceBook or MySpace, this is mostly true. It is not that Azure provides storage or application components that you would have access to in typical .NET, Ruby, Python or Java environments. While these new Azure services are open to developers of any language preference, its’promise lies availability in the ability to scale on demand- to meet demand.
Break it Down
December 27th, 2009Similar to the initial identity crisis that .NET suffered, defining Azure and its associated component/services has evolved over time. If you remember back to the early days of .NET, I believe even a version of NT was labeled as .NET Server during Beta releases. Microsoft branded everything with a .NET prefix or suffix. Azure has largely flown under the radar, so any name changes have probably been less noticed- but they’ve been happening nonetheless. The platform naming current stands as follows…
Live Services
Microsoft offers a number of hosted applications utilizing the Live Framework. The Live Services provide developer’s access to this application data. Additionally, this framework provides data synchronization services between desktops and mobile devices.
- Windows Live Messenger – Microsoft’s messenger code can be integrated into your application quickly with ‘pre-built’ components. Of course new accounts can be created at any time, but Microsoft’s claim is that you immediately extend your application to any of the 300+ million existing users.
- Contacts – Allows people to use their Windows Live contact information (including Hotmail, Messenger, and Mobile contacts) with your site—while allowing them to keep complete control of their data. Initially there was a Beta program for something called the Contacts Control. However as of September 2009, this control is no longer supported by Microsoft and developers have been asked to remove it from their application. Instead there is a RESTful API which is now available which is identified as the Contacts API. This API offers a more granular control over the user experience and allows users to grant and revoke permission to their data on a site-by-site basis. Windows Live ID Delegated Auth provides the protocols to manage the permissioning process. Microsoft apparently intends to keep an army of software developers employed for a long time because Live ID is supported by three different SDKs. These SDK’s are described in the following section.
- Windows Live ID – If 300+ million messenger users aren’t enough for you then 460+ million Windows Live credentials may be just the thing you need to motivate you to create an identity-aware application.
- Web Authentication
- Client Authentication
- Delegate Authentication
Without a full investigation, Web and Client authentication seem to be similar in the sense that they extend Windows Live ID authentication to your web or desktop application respectively. Delegate Authentication allows the applications you design, to access user information stored by Live Services. Additional information regarding these API’s can be found at http://dev.live.com/liveid/
AppFabric (previously known as .NET Services)
The AppFabric contains those systems, frameworks, API’s that developers rely upon to create and maintain applications which run in the cloud or on their premises. The AppFabric was previously known as BizTalk Services. The AppFabric consists of the following:
- Service Bus – The Service Bus is all about endpoints. Cloud based applications, by definition are designed to run in the cloud- off premises. Constructing applications that run ‘somewhere else’ need to be communicated with- either by additional web services that comprise the solution and/or web applications that present a front-end to the user representing the application. Additionally, there are challenges with communicating through firewalls and dealing with NAT’s (Network Address Translation). The Service Bus exposes endpoints as URI’s and helps deal with these network topology issues.
- Access Control – Simply put, Access Control provides a means to control access and define/manage permissions to a cloud-based application. This service manages user identity with tokens and associated claims. A detailed paper will be posted shortly describing the capabilities of this service. As with the other Azure services Access Control offers a REST interface and supports standards such as X.509 certificates.
- Workflow – Cloud applications generally consist of many services hosted in various locations. Some of the activities preformed by these processes complete quickly, other’s take a significant amount of time or require prerequisite steps to complete before initiating. Workflow services allow you to organize, sequence and prioritize these operations.
For more information on AppFabric: http://www.microsoft.com/windowsazure/appfabric/
Windows Server AppFabric
Windows Server AppFabric is a set of integrated technologies that make it easier to build, scale and manage web and composite applications that run on IIS. Windows Server AppFabric is in Beta and begins to address the issues that businesses have with wanting to host a piece of the cloud on their premises.
http://www.microsoft.com/windowsserver2008/en/us/app-main.aspx
SQL Azure
While the AppFabric provides table, queue and blob storage services most applications require a relational data store. Microsoft’s answer to this is SQL Azure. This database is hosted in the cloud and is based on Microsoft SQL Server and supports T-SQL. This database implementation is designed to scale to support the demands of your cloud-based application.
SharePoint Services and Dynamic CRM Services
SharePoint and Dynamic CRM Services round out the Azure Services Platform. Eventually this series of discussions and site posting may cover these services, but for the meantime, Stratton addresses SharePoint on its sister-site www.ultimatesharepoint.com.
Why the Cloud?
December 26th, 2009Services have been migrating to the Internet with the Web 2.0 explosion. Companies have come (albeit cautiously) to depend on hosted services for certain applications- most notably CRM data. Salesforce has been particularly successful at offering an application which has replaced custom Access database systems or equivalent islands of office customer and sales data with a browser accessible replacement. Originally adopted by small and/or venture-based companies, the maturation of Salesforce (and its developer tools) has led to adoption by much larger companies.
So while the term cloud is a relatively hot term over the past year or so- personal and corporate data has been trusted to hosted environments for years. This trust will only grow in the future and the promotion of in-house hosted applications to the cloud is inevitable. Hosting services and data in the cloud makes sense for the following reasons:
- Opportunity to reduced infrastructure/management costs. While a business’s infrastructure cannot be eliminated entirely, the cash outlay of purchasing servers and the time to manage them by staff can be reduced.
- Pay what you use. Cloud computing vendors offer pricing strategies based on processor demand, storage, etc. A careful analysis is necessary to determine your particular savings, but generally for new or small businesses, the cost may be easily calculated and the savings compelling.
- Scale for demand. Perhaps the reason that stands without much argument is the potential for properly designed cloud hosted applications to scale with demand. Your outlay of capital is preserved because you only pay extra for those times where there is overwhelming demand for computing resources. (perhaps during the end-of-year holiday rush, or tax season)
For each one of these reasons to consider the cloud there is a counterpoint or equally convincing reason not to… that will be covered in a separate post.
Why Azure?
The term ‘cloud computing’ has been around for a while and Amazon has been offering its Elastic Cloud for the past two years. Microsoft was bound to jump into the fray sooner or later and it wouldn’t be a recent Microsoft offering if it wasn’t somehow wrapped up in .NET. Leveraging .NET is in Microsoft’s best interest, and in the interest of developers who’ve spent the time mastering the supported languages and framework. Simply put…
“Windows Azure is a platform for running Windows applications and storing data in the cloud.”
Azure’s API is REST based and thus is available to developers who choose not to embrace the .NET lifestyle.
What kind of solutions is Windows Azure appropriate to host?
- Business-oriented solutions (services and/or applications) which target businesses. (SaaS Software as a Service)
- Consumer targeted software solutions. Azure’s scalability is especially well suited for burst conditions, such as holiday seasons or single day events.
- Line-Of-Business or other enterprise-level applications.
Furthermore, Microsoft intends to build its own SaaS (Software as a Service) applications on the Windows Azure platform.
Azure’s Engine
Powering Azure are Microsoft’s Global Foundation Services. Microsoft’s GFS is not spoken about often, but it is supplies the substrate on which Microsoft’s service strategy is based. This platform is responsible for hosting hundreds of Microsoft’s own applications and underpins the Azure services as well. The new GFS data centers are based around ‘containerized’ servers. Each container (think cargo shipping container) holds a standard configuration of approximately 2,300 servers. This provides up to a ten-fold increase in computing density over traditionally outfitted data centers. Furthermore, additional computing capability can be brought online, by adding additional containers as demand permits. While this strategy isn’t unique to Microsoft, it is the sheer scope of the build-out that places the capabilities of this platform in a position to dominate the space. Each data center is designed to house approximately 225 containers. Microsoft will bring over a half million servers to the cloud with each data center it operates.
Cloud Origins
December 20th, 2009Cloud Origins…
2010 will be the start of the cloud computing decade and the value proposition that cloud computing promises is too compelling for companies to ignore. Computing ‘in the cloud’ has a long and sordid history: remember Sun’s Network Computer (NC); where Sun stated, “The network is the computer”? Well, Sun wasn’t actually wrong- just a decade or so ahead of what was actually possible. I actually had the privilege of working with an NC. It was early ’96 and I was working with Reuters in a group that was working with Java to develop the next generation of business solutions. Java One had just concluded in the fall and if I remember correctly, JDK 1.0 was released at that gathering. Microsoft and Netscape were releasing browsers, seemingly weekly. Application user interfaces were programmed in AWT and it was a major challenge getting anything to run in both browsers.
Enter the NC.
Our team was making progress developing a research publication application and there were various other groups exploring the integration of C++ and COM technologies with sandboxed Java applications. Mark Andreessen and Jim Barksdale visited with our development group the night after doing a Charlie Rose interview. Because Java provided a managed runtime, our application development efforts seemed to be more effective at developing applications than those in groups developing in C++. At least that is what the Java evangelists purported and given a motivated team (late nights and weekends) some terrific demo’s were produced. It was early in the ’98 that we received our first NC’s from Sun. By this time we had gotten pretty good at developing for IE and Netscape, but were we ready to be developing on NT and UNIX as well? Our directive changed to include being OS agnostic as well as browser agnostic. I seem to remember Microsoft releasing versions of IE that ran on the NC as well as on its own OS. The NC seemed to be a non-started from the minute the power was switched on. It booted from the host and applications (even the simple ones we were creating) took forever to load and neither browser seemed to be stable. I remember a few frustrating weeks working with the team to stay on top of the onslaught of patches and updates, but ultimately the machines sat in the lab unused.
Web Services
Sun was as ahead of its time with the NC as most vendors (include Microsoft) were with concepts such as Web-TV. Sure the concepts are sound, but the technology and infrastructure hadn’t matured to make it practical (or in some cases) even possible. Processor and network speeds, as well as VM maturity doomed the NC from the start. These same constraints- especially the ‘last mile’ problem has confounded web-based media delivery- until only recently.
Web services and/or service-based architectures have proven to be one of the most successful aspects of the Internet revolution. Properly designed, deployed and consumed, web-services are RPC for a new generation. They are platform agnostic, easily routed and can be secured (although not always successfully) using standards-based protocols.
Next Stop: The Cloud.
What is Azure in Depth?
November 26th, 2009Azure in Depth is an ongoing exploration of Microsoft’s Azure Operating System. This blog represents the collective investgation that Stratton has performed for during Azure’s Beta period during 2009 and experience Stratton gathers as Azure nears release in early 2010. So, although this discussion is being published online toward the end of 2009, the material is gathered from notes accumulated over the past year. Stratton intends to extend hands-on training on the Azure platform and some of that training material (or the work leading to the creation of this material) will be part of this site.
