Posts

Evolution or Revolution? The Power of Microservices in Azure PaaS

Constant business pressures are demanding more and more from software developers, and they are responding with some remarkable new technologies.

As always, necessity is the mother of invention. Developers are pioneering new architecture that can break down apps into small, independent components, allowing those individual parts to be updated when necessary with speed and reliability, all without impacting the integrity of the overall application while it’s running.

This new app architecture is known as “microservices”.

Traditional app architecture typically has three layers:

  • The front end, which is linked to a website
  • The middle layer, where the business functions occur
  • The back end, typically where the database resides

Restrictive App Design Can Impact Business

This was the style of design used for applications that were static in size and made to suit specific hardware. However, the style did not lend itself well to updating, let alone scaling up; if one component of an app needed improving or modifying in some way, the monolithic design necessitated that the entire app would have to be modified and then tested before going back online.

As recently as a few years ago, many people would see “site under maintenance” messages when they tried to access their banking website or their insurance company’s website, for example. That is no longer acceptable for any business.

So, the time was ripe (and the pressure was ratcheting higher) for a better way forward.

iStock-871030872 Evolution or Revolution? The Power of Microservices in Azure PaaS

Seamless Updates Are the Norm

Microservices provide developers with the means to refresh a single area of an app without taking down the entire site to do so. Likewise, a problem arising with one area doesn’t result in the entire app going down.

“Microservices is very fluid,” says Gurinder Singh-Mann, an Azure architect at Optimus Information. “You have multiple teams working on different areas of an app, with each team ‘owning’ their component and knowing it inside-out. If I’m a business owner with a promotions page on my website that goes down, I don’t want the entire site going down; that would really impact my business. And when I refresh, I want to be able to refresh just that component.”

An app designed with this approach has each of its elements – or microservices – independent from the others to allow for updates, repairs and security improvements specific to that microservice.

The net result is an app that is ready to be scaled, altered or updated in any manner necessary without incurring downtime.

Faster Database Access

Another important characteristic of microservice apps lies with the database. Recall the earlier description of a three-tiered architecture, with the database being the third tier at the back end of the app. Using the microservice approach, each individual microservice can have its own database, pertinent to just its function. Once again, an update or change can be made without impacting the app’s overall function, something not possible using a traditional approach with a single database at the back end.

There is also a dramatic improvement in the time it takes an app to perform a function– from several minutes down to as little as a second, in many cases.

Azure: A Tailor-made Platform

Like so much in technology today, microservices have come into being largely because the cloud is offering developers endless opportunities to innovate. In the case of Azure Cloud, it’s also reducing workloads and saving time.

Every website hosting an app needs to be monitored in real time. It’s important to know how the site is running in different geographic regions, explains Gurinder Singh-Mann, as well as how many instances of the site are running and whether there is an emergency and a need for disaster recovery.

These tasks would ordinarily fall to developers to deal with. They would have to write appropriate code, test it and then deploy it – added steps that extend the time to get an app to market.

Azure takes that major headache away from the developers so that they can focus simply on building out their code for the app. “Azure is pretty remarkable. It can take care of tuning your database and even takes care of disaster recovery automatically,” says Gurinder.

Power Your Business with Microservices on Azure PaaS

Azure and microservices create a powerful combination that allows businesses to maintain a problem-free web presence at all times, along with the ability to alter or update an app seamlessly in real time.

Optimus Information is actively using microservices architecture for our clients. We are experts in Azure cloud migration, optimization, management and support.

Today, over 60% of new apps are using cloud-enabled continuous delivery for faster innovation and business agility. It’s worth contacting the people who know how to make this happen.

Contact us today and we’ll be happy to share our expertise with you and show you how the combination of Azure and microservices can power your business.


More Resources:

Three Trends Influencing the Rise of Application Development on Microsoft Azure

In today’s always-on, data driven world, organizations will either disrupt, or be disrupted. For those that choose the former, a fast application development cycle is critical for success.

This is why companies are turning to Azure for application development. Azure can help cut costs and reduce development wait and integration time. Additionally, the flexibility of the Azure Cloud architecture enables quick access to resources and a streamlined development process that gets projects off the ground quicker.

Below are three trends that are influencing the rise of application development in Azure.

1. Managed Infrastructure Means More Developer Cycles

The rise of Infrastructure-as-a-Service (IaaS) and Platform-as-a-Service (PaaS) have been one of the dominant trends helping to facilitate  application development in the Azure Cloud.

IaaS is where Azure manages virtualization, servers, storage, networking and data centers. It leaves users with the most flexibility, coupled with the most responsibility.

PaaS takes things a step further than IaaS. In a PaaS model, Azure manages everything in the IaaS level in addition to security, databases and operating systems. While less flexible than IaaS, it provides developers with the ability to customize applications without the headache of infrastructure management. Without having to worry about infrastructure maintenance, IT teams are free to focus on innovation and development. As a general rule, we’re seeing that PaaS is the preferred model for application development

2. Faster Development with Azure Services and Open-Source Capabilities

Cloud infrastructure is enabling developers to spend more time on innovation, making their apps unique, and less time on infrastructure and plumbing.

One of the Azure services we like is Azure App Service. It’s a PaaS solution that enables developers to create applications at a significantly faster rate than would have been possible with traditional legacy solutions. Aside from the benefits of a managed PaaS model, the team at Optimus finds there are a number of advantages with Azure App Service:

  • Optimized for DevOps: Apps can be managed using Azure PowerShell, or the cross-platform command-line interface (CLI). This enables continuous integration and deployment with GitHub, Visual Studio Team Services or BitBucket.
  • Highly scalable: You can spin up or shut down VMs instantly. Apps can be hosted anywhere in the Microsoft global datacenter infrastructure. For one of our clients – they were able to expand from North America to APAC in only a few days. This instant scalability helped them grow revenues rapidly without having to worry about cost or risk.
  • Visual Studio integration: At Optimus, we’re seeing more and more developers taking advantage of Visual Studio. The ease with which it lets users create applications for any operating system, coupled with the ability to manage and deploy those applications on your preferred platform and device, significantly simplifies application development in Azure.
  • Support for multiple languages and frameworks: ASP.NET, Node.js, Java, Python and PHP are all supported by Azure App Service. This lets developers work with the tools they’re most comfortable with. It also means they don’t have to spend time rewriting legacy applications that they want to integrate into their cloud environment.

What we’ve found is that application development teams who have moved to Azure have actually decreased their development times because of Azure’s support  of third-party services. For example, Azure supports stacks such as MongoDB, Cassandra and Hadoop, alongside Microsoft MySQL. Azure App Services also offers an extensive array of templates that let devs use a wizard to install open-source software such as Drupal, Joomla and WordPress.

However, most of our clients are working in hybrid environements. This means a need to integrate with legacy, on-premises infrastructure. This is a strength of Azure and means that developers aren’t wasting time trying to get things to work together.

3. Pay for Usage, not Hardware

As most know, traditional on-premises application development involves a significant hardware capital expenditure (CapEx). In contrast, the Azure Cloud does not require any up-front investment, instead offering a pay-as-you-go model. This converts CapEx into an operational expense (OpEx). The result is twofold:

  1. Devs can spin up a VM and begin testing new applications within minutes, as opposed to the days, weeks or months it would take to acquire new hardware.
  2. Applications that previously would have been too risky to justify the purchase of expensive hardware can now be developed.

The ability to transform application development from a CapEx to an OpEx not only allows developers to work faster; it enables them to innovate in ways that were previously unfeasible.

For more information on application development in the cloud, check out our e-Book, The Do’s & Don’ts of Application Development on Azure.