by December 5th, 2013
What is Platform as a Service (PaaS)? How does it differ from Infrastructure as a Service (Iaas)?
Let’s start with IaaS. When “The Cloud” first became popular IaaS was the target. The point of IaaS is to migrate a company data center into Windows Azure. This involves converting whatever physical servers you have to Hyper-V virtual machines and upload the contents to Azure(or sending them via FedEx for Microsoft to upload). While this process is cumbersome and time consuming it does work and has some great benefits. The next step in this process is to create a secured link between your former data center and the Azure data center. Doing this will allow your users connectivity to all of their pre-existing applications. In fact, your users should not even notice that the data center has been moved. Everything should operate exactly how it did prior to the migration. Depending on the size of your infrastructure IaaS has the ability to save you time, space, money and will allow IT admins to breathe easy knowing they don’t have to be overly concerned with server hardware failure. From that perspective, IaaS saves you money because you have zero server maintenance / replacement cost. Another benefit of IaaS is that all of your existing third party software is guaranteed to work on IaaS. If a business has an old Citrix application that is critical for the accounting team, then migrating to IaaS will guarantee that application still works as expected. The problem with IaaS is that you are still running an entire infrastructure. IT will still have to manage the servers, Active Directory, patches, and updates. In short, you aren’t benefiting from a lot of the major benefits of the cloud.
PaaS aims to solve that.
PaaS in Azure is synonymous with “Cloud Service”. The target of PaaS is custom business applications that will replace your existing third party software infrastructure. These applications can be written in either .NET or Java. In PaaS you essentially rent the hardware the application runs on. Renting the hardware means you do not have administrative access to the virtual machines powering the application. The permissions are set so that Remote Desktop to the virtual machine is enabled and users can administer IIS.
What is the advantage of renting hardware the application runs on? Why wouldn’t I simply use IaaS to retain tighter control over the environment?
Azure manages the infrastructure powering the application so IT administrators no longer have to worry about it. The infrastructure used to power a global application with millions of users generating massive amounts of traffic (like SnapChat) is massive. The work and time it takes to manage that infrastructure is several times larger. With PaaS you are able to eliminate the management of the environment the app runs on. It is also cheaper to run an application with PaaS than creating dozens upon dozens of virtual machines. Scaling is much easier with PaaS. It is possible to scale to a massive size very quickly(and automatically) with PaaS. To do the same with IaaS, virtual machines must be created in geographically relevant locations.
PaaS provides most of the flexibility that IaaS provides. By sacrificing a little control administrators and developers are able to automate most of the infrastructure maintenance that comes with growing web applications. This not only saves money but allows developers to create new features without having to worry if the infrastructure can handle it. Whether the application is of massive global scale like SnapChat or simply a small application which applies business logic to users; PaaS on Azure maximizes productivity by removing laborious infrastructure maintenance.
by December 3rd, 2013
Xamarin and Microsoft have teamed up to make all other development platforms irrelevant. Xamarin is the creator of popular cross platform development tools that allow developers to create iOS, Android and Windows applications all in C#. With the launch of Visual Studio 2013, Xamarin and Microsoft announced a partnership that will significantly improve the experience of developing, maintaining and updating apps written for any of the major popular platforms (iOS, Android, Windows).
Some of highlights of this partnership include Portable Class Libraries, Visual Studio integration, Azure Mobile Services integration and licensing discounts with free training for all MSDN Subscribers.
Portable Class Libraries (PCL) are libraries of code that can be used in any of your projects. PCL’s have made cross platform development easier than ever before. By using PCL’s you can keep the specific platform code within their respective projects and keep the bulk of your logic within the PCL. Using this method will speed up development, code maintenance and bug fixing considerably.
Previous to the Visual Studio 2013 partnership Xamarin came with its own cross platform development environment, Xamarin Studio. While still very functional it was no Visual Studio. Developers not familiar with Xamarin Studio would still have to take the time to re-learn the tools that were available to them. Now with full Visual Studio integration developers can continue to use the tools they are already comfortable with as well as using the powerful Azure utilities when developing apps that require mobile services.
Windows Azure has become one of Microsoft’s fastest growing platform. It has been experiencing 100% year over year growth and just announced it has been gaining 1,000 new customers per day! Microsoft has built templates specific for Xamarin iOS and Xamarin Android apps so developers can simply download project templates with sample code prepopulated and making API calls to Azure! Creating mobile services has never been easier. For more information on this process, please visit this link.
The final point is one I’m considerably excited about. Along with the Microsoft partnership Xamarin also introduced Xamarin University. For .NET developers that would like to learn more about mobile development Xamarin University is a great place to look. It provides live online classes, tutorials, labs and a certification exam. If you are an MSDN subscriber you have access to Xamarin University for free! A value of over $1400!!! So sign up while there is still space. Class starts January 20th!
by November 26th, 2013
With the newly released Xbox One, Microsoft has been very up front with their quest to take over your living room. One of the main marketing pushes for the Xbox One is that it does more than play games. It integrates with your cable box, it can multi-task by snapping apps to the side (similar to how it is done in Windows 8) and it can run other “apps” while playing games. The pre-installed apps include staples such as Internet Explorer, Sky Drive, Skype, ESPN and Netflix. The full list of can be found here.
There has been a little confusion regarding building apps for the Xbox One. The operating oystem of the Xbox One is a flavor of Windows 8.1, so some within Microsoft claim that any Windows 8.1 app will run on the Xbox One. Other reports claim that support for ANY app might not be true. The reason this has become such a topic of interest is because there is demand!
Is the Xbox One an app platform?
Typically if you develop for a console you are developing a game and require a console dev kit. These are generally expensive but will allow you to test your game on the console before it is sent off to Microsoft to be certified. If any Windows 8.1 app can run on the Xbox One, then there is no need for the dev kits. Or is there? The short answer is yes, there will always be a need for the dev kit. The Xbox One is still an embedded platform. Developers still need to see how their game performs on the actual Xbox One hardware. There is no getting around that.
But what if you aren’t developing a game? What if you are developing an app?
If the Xbox One runs a modified version of Windows 8.1 then you can imagine there is a way to emulate some Xbox One features on an existing Windows 8.1 developer workstation. Better yet, allow developers the ability to create a virtual machine with the Xbox One operating system to test their apps. Kinect for Windows already exists, so integrating Kinect features could be tested as well.
Ever since Apple TV became a “popular hobby” for Apple, developers have been waiting for the chance to create apps on a platform they can access your TV. Prior to the release of the Xbox One, the Apple TV was the closest device for that but the lack of app store has prevented any real innovation. The Xbox One already has an app store and has multi-tasking functionality to make it a viable platform. Microsoft will most likely have to institute a certification process for Xbox Apps so they do not hinder the performance of games but that is a small price to pay for developers to gain access to a users television.
Once the Windows Phone, Windows RT and Windows 8 platforms are consolidated, the Xbox One app store will hopefully be open for developers and help facilitate the next Windows App ecosystem boom.
by November 20th, 2013
“Start-up” and “Microsoft” are usually not said in the same sentence. Microsoft has historically been synonymous with expensive licensing costs which is precisely why most start-ups have gravitated towards Linux. It is free, it is stable and it is powerful. While Windows and Windows Server may never be free, Microsoft has narrowed the gap considerably with Azure.
One of the most important things for start-ups is to get your identity an idea “out there”. Usually this entails a website or web application which will have minor costs associated with it such as purchasing a domain name and finding a company to host your content. Paying for hosted web space can be fairly inexpensive if just starting out, but it still can’t compare with free. To start using Windows Azure will cost nothing. Simply create a Microsoft account and you are given 10 free websites. There is no trial period where it will start to cost money. They are free, forever. The websites can also be any technology, connect to a database, run a blog, forums etc.. The websites are also managed through the Windows Azure management tools which are second to none.
The beauty of Azure is the flexibility it gives you. If a start-up grows and more technology is needed, then build it up in Azure. There are no restrictions, no limits (unless you set them) on what you can build up and tear down at any point in time. If more compute time or storage space is needed then build more virtual machines or create a storage account. If the virtual machines are Windows Server there is no license required, you are simply billed a monthly fee for how long that virtual machine is running. If you choose to also use the Microsoft stack then development tools are provided to you for free with the ability to deploy cloud and mobile services with the touch of a button.
With the low overhead cost Azure provides, Microsoft has never been more friendly to the start-up company and the tools that are provided have never been better (or cheaper)!
by November 5th, 2013
- They are entirely new languages. Developers have to take the time to learn the language and become familiar with the way it works before they can really start to mold themselves with the language
What does this mean for developers? For me it means a few things:
- Finally the dynamically typed parts of the language can be used when preferred and I won’t have to learn an entirely new language
- Typed languages will come with far superior IntelliSense.
On a larger scale this changes my development mindset. In the past I would choose to invest heavily on the .NET aspect of applications. Whether it be an ASP.NET forms application, SharePoint web part, Windows Phone or Windows 8 application; .NET is where I would want to do my development. For web based applications that meant a lot of code behind and on occasion, being tied down by the ASP.NET page life cycle. Suddenly I find myself more interested in writing Windows Phone 8 and Windows 8 applications in HTML/JS/CSS than using C#/XAML.
TypeScript is still very new (still in Preview) and it will not replace the code behind model entirely, but I feel it has the ability to alter the way ASP.NET applications are made, especially if given access to the .NET Framework.
by October 14th, 2013
A Brief Background
In my previous posts I have walked through setting up Hadoop on Windows Azure using HDInsight. Hadoop is an extremely powerful distributed computing platform with the ability to process terabytes of data. Many of the situations when you hear the term “Big Data”, Hadoop is the enabler. One of the complications with “Big Data” is how to purpose it. After all, what is the point of having terabytes worth of data and not being able to use it. One of the most practical uses is to generate recommendations. The amount of data needed to generate good recommendations can not be understated. To process all of that data you need a distributed computing platform (Hadoop) and algorithms to generate the recommendations (Mahout). Mahout is much more than simply a recommendation engine. Apart from recommendations one of my favorite features is frequent itemset mining. Itemset mining is evaluation of sets of item groups that may have high correlation. Have you ever shopped on Amazon? Towards the middle of a product page Amazon will tell you what items are frequently purchased together. That is what Mahout’s itemset mining is capable of.
Installing Mahout on your HDInsight Cluster
There are a couple things we will need to do to install Mahout.
- Enable Remote Desktop on the head node of your cluster
- To enable RDP on your cluster select “Configuration” and at the bottom of your screen select “Enable Remote Desktop”
- Enter in a new username and password for the account. You must also specify a length of time that the RDP user is valid for. The maximum time is 7 days.
- Note: While enabling RDP is a nice feature it does not come without its frustrations. The RDP user you create is not an administrator on the server, it is a standard user. There is also no way to authenticate as an administrator. So you will have to deal with things like IE being in Security Enhanced mode and not being able to use Server Manager. Read the rest of this post »
by October 10th, 2013
Edit: Part 3 using Mahout here
In my previous post I described the basics of HDInsight on Windows Azure and an example of what a Hadoop cluster can do for you.
Without further delay, lets build a cluster! If you don’t already have a Windows Azure account go here and sign up (it’s free!!)
Login to your Azure portal and you will have a dashboard similar to this:
If HDInsight is not initially on the dashboard simply add it by going here and selecting “Try it now” under “Windows Azure HDInsight Preview”. After installing HDInsight should now appear on your dashboard.
To create a cluster select HDInsight; upon clicking “Create an HDInsight Cluster” you will be presented with the following screen. Read the rest of this post »
by October 4th, 2013
Edit: Part 2 (setup) : Part 3 (Mahout)
The internet is becoming increasingly personalized. It has transitioned from indexing massive wells of information to delivering personalized information, or recommendations based on complex searches. Evidence of this is seen in Google’s Knowledge graph, Amazon, the Bing engine, Facebook friends and twitter recommending people you may be interesting in following. Recommendations are everywhere on the web and with the introduction of HDInsight on Windows Azure the personalized web will grow even larger. HDInsight is an implementation of Apache Hadoop running natively within Windows Server. Hadoop is a very powerful distributed computing solution that can process massive quantities of data.
Incorporating “non-Microsoft” technologies baked into Microsoft based services and products is a newer development. The benefits to the IT professional are infinite. Let us take HDInsight as an example. For those not familiar with Linux and installing Hadoop on a distribution of clustered nodes the process can be frustrating and time consuming (to say the least). There are many guides on line and each guide pertains to its own flavor of Linux (Gentoo vs. Red Hat vs. Ubuntu vs. CentOS etc.). The process has gotten better over the years but is still quite cumbersome. To create a Hadoop cluster within Windows Azure, simply create an HDInsight cluster from the dashboard. In a few minutes you have a fully functional Hadoop cluster ready for processing.
You may be asking yourself; “Hadoop is a distributed computing system, what does it have to do with recommendations?”. Mahout is the answer. Mahout is an open source machine learning engine that is also managed by Apache. It contains many different types of algorithms and features, but one of its most prominent is its recommendation engine. The installation process is trivial so you will have Mahout up and running in an HDInsight cluster in no time. To install Mahout on your cluster download the latest release in zip file format from the Mahout website. Copy the zip file to your one of your cluster nodes and extract the contents to C:\apps\dist. That’s it! Not only have you just installed Mahout, but you have also deployed it to your Hadoop cluster.
Next I will walk through the installation process and use Mahout to process data. – Update: Part 2 is here.
by September 17th, 2013
Microsoft earlier this week made multiple improvements to their site based on their Microsoft Cloud OS vision. The main focus is based on UX to improve user experience and increase engagement. The site is very responsive and adaptive based on the devices you are using as well as when re-sizing or panning. There is even a section to help you navigate based on your role. The new site will help you get up to date information to help you make decision. There is even so compelling stories on why you should choose Microsoft Cloud.
From today’s behind the scenes article found here
Microsoft Senior Marketing Manager, Amber Kinney, is one of the folks here at Microsoft that has worked tirelessly to bring the area at http://www.microsoft.com/server-cloud to life. This site just hit another design and content milestone so we wanted to bring it to your attention. We also sat down with Amber to ask a couple of questions about the project. Here are the questions and the answers from that session:
Question: What’s the project you’ve been working on?
Answer: On 9.15 we launched a Microsoft.com/server-cloud website which includes 18 solution pages, a “Why Cloud OS” page, a user-friendly customer evidence experience and audience pages. A primary focus for this launch has been on redesigning the UX to improve the user experience, deliver great, innovative content and increase engagement. We are also excited to announce that the site is now adaptive/responsive. This means that the site has been designed for an optimal viewing experience—easy reading and navigation with limited resizing, panning, and scrolling—across a wide range of devices such as mobile phones, tablets and PCs.
Another highlight is a set of cross-product solution pages that align to the most commonly searched for industry terms, optimized for SEO. Our goal is to ensure that our customers understand how these solutions tie to Microsoft Products such as Windows Server, SQL Server and Windows Azure.
Question: What audience is the information targeted at?
Answer: The target audience for the site is IT Professionals, Business and Technical Decision Makers. There is also an audience pivot in the top navigation designed to easily route Small and Medium Businesses, Developers, Partners and Service Providers/Hosters to their respective pages.
Question: What’s next after this milestone?
Answer: Because this release is part of a multi-phased project to revamp the Server-Cloud website, we are working to scale the site globally and launch in 27 markets over the next couple months.
by September 13th, 2013
Windows Azure is a great environment for your applications. It can also house applications that aren’t ready to be consumed by your clients whether internal or external to your organization. What makes this more compelling is that as of June you now pay by the minute vs. by the hour for compute as well as no cost for stopped VMs. This makes it more cost-effective for you to do your development and testing in the cloud. MSDN subscribers get extra discounts as well.
Here is a few ways you can use Windows Azure:
- Load/Performance testing
- Scalability testing (up and/or out)
- Server configuration testing(SharePoint, SQL, BizTalk, Windows, Linux, …)
With Windows Azure Virtual Machines (VMs) you can deploy and configure applications even if they’re going to be used on-premises. You can use Windows Azure to determine the infrastructure needs for the on-premise deployment as well as for cloud deployments. You can even setup Virtual Networks to connect to your development and testing environment in the cloud.
Are you wondering how you can easily deploy, scale and configure these environments? PowerShell will be your new best friend if not already. Windows Azure has a lot of pre-built cmdlets for use today. You can also use Team Foundation Service to do load and performance testing.
By the way, if you need a Windows Azure subscription, here is the link for a free trial.