MAD for it: meeting mobile app demand with microservices, agile and DevOps

The latest Communications Market Report from Ofcom found that the UK has reached a tipping point. Two thirds of people now own a smartphone and more people prefer to access the internet from their mobile phone than their laptop.

A week before Ofcom’s report, Domino’s Pizza revealed that, for the first time in the company’s history, more of its online customers ordered their pizzas through mobile phone apps than from a computer.

Customer intelligence platform provider Vision Critical reports that 85% of CEOs at high performing, customer-centric companies are focused on enhancing the mobile customer experience.

>See also: The new era of app development – mobile vs. legacy

This shift to mobile devices creates enormous opportunities for organisations to improve engagement with their customers, employees, and partners. However, it also creates a problem when it comes to securely linking mobile applications to core systems of record.

Back-end challenges to the fore

Many enterprises rely upon proprietary applications that were developed decades ago, long before mobile devices became ubiquitous. These immensely valuable applications often include ERP, CRM, BPM, database applications, medical records, energy management systems and flight management systems – none of which were originally designed to interface with today’s mobile devices.

Any changes to these "monolithic" applications require costly and time-consuming redevelopment, testing and redeployment of server-side code. Integrating mobile apps securely with these rich back-end data sources and applications is at the heart of successful enterprise mobility.

Not surprisingly, in a recent survey of Red Hat's enterprise customers, conducted by TechValidate on behalf of Red Hat, back-end integration was ranked near the top of the list of enterprise mobility challenges, second only to security.

When asked about hiring priorities, 27% of respondents who are on the lookout for mobile development resource reported that they were planning to hire people with back-end integration skills.

The survey also found that 55% of enterprises are currently using a combination of external sources (libraries, marketplace, and vendor services) and coding from scratch to integrate mobile apps with their back-end systems.

In spite of the challenges, the demand for mobile applications is growing. However, businesses will struggle to scale and sustain the development of multiple apps if each app requires custom integration to back-end systems.

Notably, the past few years have seen enterprises adopting mobile back-end as a service (MBaaS), which acts as a cloud-based and on-premise hub between mobile apps and the back-end systems that they need to access. TechValidate found that a third of the enterprises it surveyed had adopted it to assist them in overcoming the challenges of back-end integration.

The requirement to securely and efficiently integrate core systems of record with an increasing number of mobile apps and to do so at speed is driving changes to both enterprise application architecture and modes of development.

Mobile-first organisations, such as London-based taxi app firm Hailo, have adopted three key approaches to meeting mobile application development challenges head on: microservices, agile development and DevOps (MAD).

MAD for mobile

Many attempts have been made to address the issues associated with monolithic applications using new approaches. Most recently the idea of “microservices” has come to the fore, particularly in the context of enterprise mobile development.

In a microservices architecture, complex applications are decomposed into small, modular, decoupled, independent processes. These fine-grained services each perform a single function and all communicate using language-agnostic APIs.

In the context of using an MBaaS to mobilise existing enterprise systems, a microservices approach has demonstrated its value, from both an agility and a performance perspective. Node.js+Express has become a de-facto technology stack for implementing these services and thrives in a polyglot environment.

Whilst microservices communicate between themselves using RESTful APIs and lightweight messaging, they also provide modern wrappers for legacy enterprise systems.

A microservices approach has the advantage of allowing app components to be rapidly developed, deployed, updated and retired to suit the needs of customers and employees.

A variety of development teams can easily collaborate on building these autonomous services to serve specific business requirements, while enterprise IT teams focus on managing sensitive data, applications and systems in the back-end.

In contrast to waterfall methods, which have traditionally characterised enterprise software application development, agile approaches involve shorter, more iterative development cycles that elicit early and continuous feedback across the app development lifecycle.

This happens to go hand-in-hand with the mobile ethos of “build fast, build repeatedly”. As organisations try to build an app, deploy it, test it, and iterate on it, they are transitioning from waterfall towards agile approaches. However, it’s a journey and not all companies have reached the point of true agile development – but they are getting there.

In moving towards this more agile approach, organisations recognise the need for greater collaboration between people with different skills, including input from the users, or the business.

Combined with continuous development, deployment, monitoring and measurement of mobile apps, this collaborative approach has exciting potential for app success.

Apps are constantly evolving, with elements added and retired in response to new requests from business managers and customers. Some app components may only be used for a matter of days before being retired.

Apps also require continuous monitoring of their performance by the business, so that adjustments can be made in a responsive and timely manner.

Traditional monolithic enterprise apps such as CRM, transaction processing, network management, and BPM systems are still critically important to businesses.

These core systems must be kept operational, patched, secure, and compliant, while also making data available to mobile apps. So while agile practices have evolved to meet the need for speed to market of mobile projects, enterprises still need to maintain core and stable IT processes, and both need to work collaboratively.

This dual requirement for “fast IT” to accommodate business changes and “core IT” to run IT operations has given rise to the term ‘DevOps’: a collaborative software development approach involving app developers and operational IT specialists.

This involves new working practices, where continuous app development and deployment co-exists with quality assurance and the maintenance of monolithic back-end systems.

Change can cause pain. TechValidate found that 34% of organisations it polled cited team collaboration as a key challenge in their mobile application development efforts. More than one in seven organisations that have plans to recruit for mobile app development roles say they are looking for DevOps proficiency.

>See also: Top mobile apps for enhancing business processes

The mobile ethos

As organisations evolve towards mobile maturity, they are recognising that they need to adopt new working practices and IT architectures to enable them to meet the demand for rich mobile apps at speed, while also maintaining secure, operational systems in the back-end, on which these apps depend.

Companies that are really succeeding in mobile have actually reinvented a process, to improve the mobile customer experience. They understand that the mobile experience has to be different, not just an existing web app made smaller.

The mobile ethos is to build fast and build repeatedly. Don't try to build the mother of all solutions. Build something, get it out there, figure out what's working, or what's not, and iterate on it.

Common best practices see these organisations begin with a handful of successful apps that perform specific tasks well, gaining support from customers, business unit managers and IT teams. These early successes drive demand for apps that connect into a whole range of enterprise applications. This can quickly accelerate.

To meet demand and maintain control over complex back-end systems, development teams are being forced to move away from custom coding. Just as the cottage industries gave way to mass production during the industrial revolution, the mobile revolution could now drive enterprises towards adoption of MAD.

 

Sourced from Cathal McGloin, VP, mobile platforms, Red Hat

Avatar photo

Ben Rossi

Ben was Vitesse Media's editorial director, leading content creation and editorial strategy across all Vitesse products, including its market-leading B2B and consumer magazines, websites, research and...