Tomasz Zajda - Fotolia
Under increasing pressure to build better-quality mobile apps faster, more efficiently and at less cost, businesses in the midst of their digital transformation journey are starting to migrate from large monolithic systems to newer modular, microservices architectures, in which they build independent components and shape them into complete systems. And DevOps, likewise, brings consistency to the development process so companies can continually build and deploy applications and refresh them as often as necessary.
The microservices phenomenon
"Mobile app development has been a driver for both microservices and DevOps because the way that mobile apps are built requires more fine-grained services," Gartner analyst Jason Wong said. "These services are reusable and orchestrated to offer specific APIs that developers need. So, if you are building a mobile app and you have a workflow that might be calling data from a [customer relationship management] system and another piece of data from an ERP system, you need different services on the back end to create an API that a mobile developer can easily utilize."
Microservices is indeed a phenomenon that's supporting modern development, Wong noted, adding that DevOps, and Agile development, has become a necessity in mobile app development. "With the rate of change happening on the device side, with hardware and operating systems being released every few months, means that mobile developers need to be agile," Wong explained. "They need to be able to do quick releases, and they also need to be able to monitor things in live production so they can make changes."
Jason Wonganalyst, Gartner
Yet, DevOps -- particularly DevOps tooling -- is a bit different on the mobile side because of the nature of mobile apps, which are deployed in app stores. "So, it's not like the web where you just push out changes," Wong said. "With mobile, you have to rely on the users to do some app updates. But there are tools that are emerging that allow the developer to do more dynamic over-the-air updates. There are different techniques and architectures in mobile app development that allow more dynamic updates without having to recompile code or without having to ship out a new app to the app stores."
As enterprises continue on the digital transformation journey, one of the biggest demands on mobile development is to do things faster and more efficiently, Forrester Research principal analyst Michael Facemire said. Developers are then required to compose from reusable components, rather than build the same big thing with many repeated parts. "This holds true for both the front end and the back end, which leads mature development shops to build smaller, more granular microservices, often from traditional monolithic web services," Facemire said.
More than tire-kickers
"While there is a ton of talk," he added, "the action is quite strong as well; most companies are doing at least some level of [DevOps and microservices], but there's no defined 'standard' per se, so many also feel like they're not doing enough."
Charles King, principal analyst at Pund-IT, agreed that microservices are well-suited for mobile app development. Not only can they be finely tailored for specific app functions, but generally they also offer other substantial benefits, including the ability to support multiple devices, different operating systems and -- with the same back-end microservice -- multiple versions of software.
As mobile apps move further into essential business infrastructures and processes as part of the digital transformation journey, King explained, "it's critical that operations staff be ready for the impact of these technologies on a company's IT infrastructure and computing assets. Simply assuming that scores or hundreds or even thousands of employees using smartphone endpoints and apps won't have a significant impact on an organization is a fool's errand. DevOps efforts can help mitigate those effects."
Bridging the semantic divide
The new development methodologies might allow greater reuse, but they require a different approach to building mobile apps, according to Burley Kawasaki, executive vice president of products at mobile development platform provider Kony. "You can't just build them as bespoke [custom] siloed projects, you have to start designing for reusability of microservices and components," he said. "A lot of focus is put on technology advances around microservices, but we believe this requires a holistic approach to people, process and technology. You need to embrace DevOps practices and introduce new skill sets across your teams."
Putting the Biz in DevOps
Fifty percent of DevOps professionals said their organizations have implemented and are expanding their DevOps practices as businesses move toward digital-first, according to Forrester Research's "Q1 2017 Global DevOps Benchmark Online Survey."
Modular development and microservices can create a "semantic divide" between front-end and back-end developers, he added. "The back-end developers building microservices don't usually talk the same language as front-end developers building apps that consume the services," he explained. "So, you need to provide tools [and] models for the front-end developers that match the way they see the world." He recommended techniques such as back end for front ends, or BFF, to help close the semantic divide.
Kotlin on the rise
Meanwhile, more mobile developers are building microservices with programming languages like Swift and Kotlin, which was developed by JetBrains, runs on the Java Virtual Machine and is aimed at Android development. "We have seen the rise of Kotlin," said Paul Kopacki, chief marketing officer at mobile platform provider Realm. "We see Kotlin becoming the dominant language on Android by the end of next year. It will overtake Java as the primary language people are using to build apps for Android."
While the DevOps landscape is loaded with vendors providing products to help organizations on the digital transformation journey, Gartner's Wong noted that, among big vendors, Microsoft stands out as a leader. Microsoft's Xamarin unit offers a cross-platform development environment along with DevOps tools like Xamarin Test Cloud for test automation. Microsoft also supports DevOps with Visual Studio Mobile Center, Visual Studio Team Services (VSTS) and the HockeyApp beta distribution and crash reporting platform.
Charles Kingprincipal analyst, Pund-IT
"With mobile development, you have the different form factors and the app stores in the middle," said Sam Guckenheimer, product owner for VSTS at Microsoft. "You get your software onto the device via the app store, and that means you need an intermediate mechanism to get beta distribution to users."
"While microservices and mobile development can be highly complementary, how they are utilized together appears to vary widely from company to company," Pund-IT's King reasoned. "The same can be said about DevOps, which, like healthy eating and adequate exercise, is often discussed more than it is adopted. That should change over time, especially as more companies invest in development and recognize the value that DevOps processes add to those efforts."
Developing for mobile platforms
DevOps, microservices and Docker
DevOps and microservices management
- Applying Secure Design Patterns to Microservices Development –WhiteHat Security
- Next step app development: Microservices –ComputerWeekly.com
- Accelerating Cloud-Native Application Development with Java Microservices –Red Hat
- Develop Mobile Apps Without Writing Code –K2