Making a PaaS at Microsoft

opinion
Sep 30, 20154 mins

Now that you're excited about the opportunities that Platforms-as-a-Service can create, it's a question of where to start.

business cloud services flowchart
Credit: Thinkstock

There are many public cloud services out there, new systems enter the industry every day, and vendors that update their systems routinely. It would be easy to be daunted by the choices available to us as developers.

One great place to begin is with the elder statesman of the computer world. Microsoft has had a big presence in the world of PaaS for years with its Azure Web Apps (previously Websites) and Azure Cloud Services.

Azure Web Apps and Cloud Services are a PaaS built on top of tools and utilities that you likely already know. Their focus, as with most Azure products, is to make the on-ramp process for developers and IT professionals easier by integrating with the awesome tools that they’re known for. More recently, they’ve also begun to work closely with popular open source products to make the transition process even easier for those of us who come from outside of the Microsoft ecosystem.

Described as simply as possible, Azure Web Apps are scalable Windows Server virtual machines running in Microsoft’s data centers and hosting your custom code. In true PaaS fashion, those servers are turnkey and fully managed. All you do is deploy an app, and Microsoft handles the rest. Web apps servers are fully patched with the latest security patches and hosted on a platform compliant with major security standards, such as SOC2, ISO, HIPAA, and PCI. Apps are backed up, migrated as necessary to new hosts or even new data centers, and scaled across regions globally all via automated process.

There are a lot of ways to start working with Azure Web Apps. If you need a leg up, then its pre-built gallery of templates offers hundreds of configurations. These templates jump start your development for frameworks like SQL Server, Salesforce.com, and WordPress, among others.

Of course customization is the name of the game for Web development. Azure lets us use the popular Microsoft Visual Studio for all of our development. The Azure SDK creates project templates for us to use in Visual Studio so that we can start working on a web app-capable application right away. The Azure Server explorer lets you remotely connect to running cloud services and debug them both locally in your development environment, as well as remotely over the Internet.

Azure supports a wide variety of code bases as well. With Windows, IIS, and Visual Studio, you can write your code in .Net and access a wide library of Azure features through the Azure API. Azure Web Apps also supports Java, Node.js, PHP, or Python, so almost all of us can find a language we’re comfortable working with.

Once you’re ready to launch your code in the cloud, you can use a variety of popular mechanisms. Microsoft Web Deploy (msdeploy) is built into the Azure SDK and integrates with Visual Studio for wizard-based deployment. You can also use the popular source control tools Git or Mercurial for continuous deployment. Other options include PowerShell, Secure FTP, or even Dropbox.

Azure Cloud services are very similar to Web apps, offering all of the features we just discussed, but with a few interesting steps taken toward IaaS that the power developer may find very useful. When deploying cloud services, we can choose from a few different operating systems, including Windows Server 2008 or 2012. Cloud services also offer the ability to define different clusters of servers, known as roles, which can be configured either for Web API hosting or for backend processing. Combined with the ability to access the servers via remote desktop, cloud services are ideal for migrating legacy applications from on-premise servers to the cloud without resorting to full-blown IaaS services.

At the end of the day, you’ll find yourself presented with many great options when it comes to implementing a PaaS solution in the Cloud. Microsoft’s Azure service is a great place to start not only due to the way it leverages familiar tools and utilities, but also because of its feature-rich environment and enterprise-class service. Developing and deploying your app as a Web app or cloud service is fast and easy and will get you up and running (floating?) on the cloud in no time!

Ben Finkel has worked in software development for 18 years within a variety of industries, including banking/finance, insurance, and healthcare. Before joining CBT Nuggets, he was a software engineer at M&T Bank in Buffalo, New York. He is a Google Certified Trainer. When he’s not creating CBT Nuggets training videos, Ben enjoys skiing, snowboarding, reading, and homebrewing beer and cider. He also considers himself a hobbyist programmer and likes learning new development technologies.

Areas of Expertise: Google Certified Trainer, Microsoft ASP.NET (WebForms and MVC), Data Analysis and Design, Relational Database Architecture, MS SQL Server, Microsoft C#.NET, Javascript, jQuery, Microsoft Visual Basic .NET & 6.0, .NET Reporting Services, MS Access, Python

The opinions expressed in this blog are those of Ben Finkel and do not necessarily represent those of IDG Communications, Inc., its parent, subsidiary or affiliated companies.

More from this author

Garth Schulte began training on Office products about 20 years ago. His love of training led him to branch out to technical VB6 and SQL Server training. One of CBT Nuggets's longest-tenured trainers, he recently worked as a product manager, lead .NET windows programmer and SQL Server architect for one of the top back-end real estate software companies in the country. He is a Google Authorized Trainer.

He has the following certifications: Google Authorized Trainer, MCSD, MCSD.NET, MCDBA, MCSA. His areas of expertise are in Visual Studio 6, Visual Studio.NET Windows/Web Programming, SQL Server 6.5-2012, Google Cloud Platform.

The opinions expressed in this blog are those of Garth Schulte and do not necessarily represent those of IDG Communications, Inc., its parent, subsidiary or affiliated companies.