Microsoft Improves Azure App Service Support for Linux and MySQL

Image result for lamp mysql

Microsoft has supported running PHP, Java and Node.JS within the Azure App Service (which is what used to be called Azure Web Sites) for years.  However, it was always based on Windows and IIS.  This blog, for example, runs on the Azure App Service using WordPress.  The WordPress application code runs within an IIS web site that runs the PHP handler. 

Microsoft is now introducing native Linux support for Node.js and PHP stacks.  This means that instead of running within a Windows/IIS instance, your web site will now running natively in Linux.  This should improve compatibility and allow for folks used to managing Apache the ability to now do so instead of IIS.

Microsoft is also slowly improving its support for MySQL.  Today, the only PAAS solution for MySQL is ClearDB and from my experience its quite expensive and restrictive in its pricing structure.  This blog started running MySQL using ClearDB and it was cheaper and easier to scale it running a native Linux VM. 

Microsoft will now support running MySQL as part of its native Linux Azure App Service.  However, it is only in preview and is pretty limited – it doesn’t support scaling across multiple instances and it runs in the same app instance as your web site (as opposed to setting up a separate dedicated MySQL instance).  Microsoft is only recommending it for dev/test scenarios and not for production just yet.

Read More

As Cloud Architectures Grow Up, Migration and Portability Will Be Key Issues

We have been working on a major upgrade project for an application that was written more than ten years ago.  Written in the era of the “latest” technologies from Microsoft such as InfoPath 2003, JScript, SharePoint 2003, ASP.NET, Windows Workflow Foundation, etc. we have been working to upgrade this entire application because all of these components are now end of life from a support perspective.

Image result for azure application architecture

We are now in the 2003 era for cloud – Microsoft, Amazon, Google, etc. are introducing new services and technologies at a blistering pace with the promise of making line of business applications easier to develop, manage and maintain.  As an industry, we have been sold on the same messages for years:

  • Why build something custom when you can use “out of the box” and configure?
  • Why have developers when you can have power-users who can self-service their own maintenance?
  • Why design your own architectures for scalability, security, etc. when you can rent our already industrial strength solution?
  • Why own your own code, platforms, etc. when we’ll allow you to rent ours at a fractional cost?
  • Why have a simple, monolithic application when you can try dozens of new services optimized to be best of breed?

As we fast forward five to ten years from now, there is a lesson from our experiences maintaining, upgrading and re-platforming applications from years ago. 

Migration matters.  Upgradeability matters.  Vendor lock-in matters. 

When upgrading this particular application, the custom code we developed upgraded without any problem.  Take the 10 year old code, put it into Visual Studio 2015 and build it and it builds.  Hosting the code in a basic web container like IIS also works without a problem.  However, when we start upgrading higher level platform components like InfoPath, SharePoint or Windows Workflow Foundation, Microsoft has “evolved” (e.g. broken backward compatibility) their platforms over the past 10 years and the “configuration” based application components break.  We’re now in the process of fixing these components and re-writing them in some cases to adopt the latest Microsoft standards.

Microsoft is no better or worse than any other vendor – we see similar lessons with Oracle, SAP, IBM, etc.  We will see the same issue with cloud vendors like Amazon, Google,  It is in the vendor’s interest to ensure that your application is tied to their architecture components.

Migrating to the cloud is easy.  Upgrading to a new cloud, migrating off the cloud or picking a new cloud vendor could be very hard indeed.

Lets imagine our organization has a line of business application that processes orders coming from the web site to our CRM system and then into our financial system.  We also want analytics so we also invest in some big data services and business intelligence tools.  In the Microsoft world, we might use ASP.NET, Azure Search, Flow, Power Apps, Dynamics CRM, HD Insight, Power BI, etc.  In the Amazon world, we might use Amazon Web Services, RedShift, Hadoop, etc. and maybe we use SalesForce as our CRM system and DOMO as our business intelligence solution.

Regardless of the platforms you pick, each introduction of a new component creates a dependency on the application that increases your migration risk, the complexity to make changes and locks you into the vendor providing you the service.  As the cloud architects advocate for micro-services architectures that split your applications into potentially dozens of services the supply chain of code for your application will become increasing complex.  While there are benefits to such architectures, tracking the dependencies and ensuring all these services work together now and into the future will become a significant challenge in the cloud era.

Avoiding future nightmares by learning from the past.

In reviewing upgrades to legacy applications, we can learn lessons that apply equally well to cloud.  Our team does many of these projects where we review, analyze and re-platform applications that were built decades ago.   Here are is what we have found:

  • Vendor lock-in is a huge challenge and creates a massive migration risk.  If you decide you don’t want to do business with Microsoft anymore because ABC is a cheaper alternative, do you have a plan to move all your data, your customizations, all the configurations, etc. to a new platform?  Microsoft, SalesForce, Amazon, etc. are all betting that in five years from now it will be more difficult to migrate than to pay the increased fees that they will inevitably charge.
  • Pure code solutions tend to upgrade easier than “configuration” based solutions.  My C++, Java or C# application can be ten years old but I can still compile it, run it and in most cases upgrade it to the latest frameworks.  These programming languages are super mature and backward compatibility is very high.  Be careful with high level “power-user” solutions that promise an easier but technically less robust solution.
  • Transparency and portability of code and data is an important principle.  For example, if I adopt Azure SQL as my database, I can still access my data reasonably easily.  I can also export it, move it around, take it back on premise, and see it as a set of well understood tables.  Can I say the same thing if my data is in SalesForce?   
  • As the number of platform components increase, the challenges with dependency management increase as well.  While your architecture could leverage dozens of cloud services to optimize the operation and hosting costs of your application, what is the cost of the increased complexity when you try to upgrade?
  • Understanding the maturity and commitment to maintain backward compatibility and support your customization model is a key requirement.  With the cloud accelerating the product development life cycle dramatically from 3 years to every 15-30 days, cloud vendors are going to threaten your architecture every 15- 30 days if they don’t maintain backward compatibility or provide an upgrade path.  What happens in 3 years if Microsoft decides that they don’t want to support Flow or Power Apps anymore? 
  • While there are some performances and scalability advantages to introducing micro-services, leveraging distributed architectures, harnessing specialized cloud services, etc. their introduction also increases complexity and dependencies.  Most organizations are not Facebook and could build a reasonably focused and robust application using a simple web server and a database only.  While this may sound old-fashioned and harder to maintain than a more sophisticated architecture and operational model, it means upgrading and maintaining the application will be easier.

Past technology revolutions show the way forward – those who invested in new fangled technology solutions a decade ago made some bad bets and bought into technologies that over-promised and under-delivered.  Applications that are simple, leverage non-proprietary and mature technologies and that are easy to migrate over time provide longevity.  Cloud services will follow the same path, except perhaps faster and with more complexity. 

Do you have an architecture that be easily maintained, upgraded and re-platformed five to ten years from now?  As you migrate to the cloud, is their a plan to avoid the same lock-in, migration and portability challenges we experienced on premise?

Read More

Microsoft Revamps Office 365 Video Portal with new Microsoft Stream

Microsoft has revamped its Office 365 Video Portal, transitioning it to a new Azure based video services called Microsoft Stream.  In a similar way to how Microsoft has moved Power BI into its own service, Microsoft Stream represents an independent video service that can be used in conjunction with Office 365 or independently as an pure streaming service.

Getting started

The Office 365 Video Portal was baked into the Office 365 subscription plan – it’s not clear how the new Microsoft Stream will be priced either in conjunction with an existing Office 365 subscription plan or independent of such a plan. 

Read More

Azure SQL Always Encrypted Now Generally Available

Microsoft has just announced that their “Always Encrypted” feature for Azure SQL has now been released to General Availability.

Always Encrypted allows you to consistently store columns of data within SQL tables as encrypted data.  The encryption/decryption happens at the .NET calling layer so that the underlying data at rest is always encrypted.  In order to encrypt/decrypt the calling application has to be registered, have sufficient permissions and access to the encryption keys.

By leveraging Always Encrypted, any DBA level access has no ability to decrypt the data without going through the application tier.  Any direct SQL call will result in encrypted data being returned.

Another advantage to this approach is selective column encryption – only columns specified by the schema are encrypted such as personal information, credit card numbers, etc.

Always in Encrypted in Azure SQL Database

Read More

Need an Archiving Solution? Check Out Azure Cool Blob Storage…

Microsoft has introduced a new concept in storage – “Cool” blob storage.  This storage is designed for archive scenarios where availability isn’t quite as demanding and where access requirements are lower.  Cool storage is significantly cheaper to store data but more expensive to access it, ideal for long term archives, backups, etc. where the need is primarily storage and not frequent access.

Storage prices are significantly cheaper in cool storage, as low as $0.01 per GB compared to $0.024 per GB. 

Third party backup software providers such as Commvault and Veritas will support selection of either Hot or Cool storage within their backup solutions. 

Read More

New Microsoft Integration Stencils Pack for Visio Available for Download

Microsoft has released a new set of Visio Stencils for creating diagrams in Visio 2013/2016.  The symbols include services such as:

  • BizTalk
  • Azure App Service
  • Flow
  • Azure
  • Infrastructure
  • Power BI
  • Power Shell
  • Service Fabric
  • IOT

To install, just download the file and go to your My Documents –> My Shapes folder and extract the shape files.

Read More

Azure Search Introduces New Service Tiers

Microsoft has just announced a series of new service tiers for Azure Search.  The previously announced Basic tier has gone from preview to generally available.  Azure Search Basic pricing has been increased from the preview price of US$38 per month to $75 / month.    Basic supports up to 1 million documents per partition and 5 indexes per service, which is a good option for many small to medium sized web sites.


The new S3 tier is available in preview.  It supports storage of up to 2.4 TB of documents, 1.4 billion documents served across 36 scale out units.  It is targeted to customers with massive search needs.

Microsoft has also created a tier called S3 HD which is targeted at ISVs and SAAS vendors with lots of customers who have small indexes (e.g. less than 1 million documents).  S3 HD allows you to pack in up to 1000 indexes per search service, making it ideal for vendors who need to spin up search instances for many customers.

Read More

Microsoft Canadian Data Centers Now Officially Open for Azure and Office 365

Microsoft has officially launched Canadian data centers in Toronto and and Quebec City.  Azure and Office 365 are now available wit Dynamics CRM expected in September 2016.

Express Route will also be available in Canada with Bell being the first partner provider. 

When you’re in the Azure Portal, you can now see Canada Central and Canada East as new regions.


Read More

Azure Logic Apps will be the Pro Version of Microsoft Flow

Microsoft yesterday unveiled a brand new service called Microsoft Flow.  Flow is an “If This Then That” (IFTTT) service that allows you to create cloud based workflows for connecting events generated by cloud services such as Twitter, Facebook, etc. that business processes that can send actions to other services.


Microsoft also has another Azure service called “Logic Apps” that was introduced in February in preview.  Logic Apps is a configuration based workflow engine that connects cloud services together using Webhooks.  Sound familiar?

Sample workflow

When I tweeted the announcement yesterday about Flow, I received this tweet:


The answer from Microsoft is that they are in fact the same platform and that Logic Apps will become the “Pro” version of Flow as the two services mature.


Stay tuned for details as they come out from Microsoft….

Read More

Microsoft Unveils Yet another RAD Tool with Flow

Microsoft today introduced a new type of tool known in the industry as If This Then That (IFTTT) which allows for the creation of pseudo applications based on combining cloud services into business driven workflows.  Microsoft Flow is designed to connect to cloud services such as Twitter, Slack, Google Drive, Office 365, etc. and use these services to both generate events (e.g. Twitter retweets your post or someone sends you an email) and drive actions to these cloud services (e.g. send out a tweet, copy a file, etc.) as part of a coordinated cloud based workflow.


Microsoft has a long history of Rapid Application Development tools which are targeted to development of pseudo applications without the need for custom coding or developers.  In November, Microsoft launched PowerApps for building sophisticated web applications that harness cloud services such as Office 365, CRM, SalesForce, etc.


If you imagine the two services working together, you could create quite a sophisticated line of business application that leverages these cloud services to drive business processes complete with a dynamic web application for viewing content, providing a customer experience view and then integrating with cloud services for communication and transacting.

Read More