The cloud is messing with your app dev strategy: How to cope

As cloud computing continues to revolutionize businesses, it will eventually push most of them to transform how they approach application development.

Organizations will have to rethink strategies, revamp processes, and adopt new roles. And, of course, they'll have to tackle the challenges that arise whenever systemic change is implemented.

How can the development cycle be better managed in a world increasingly dominated by cloud computing? CloudOps is the goal. Here's what the experts have to say.

Multicloud Monitoring: How to Ensure Success the First Time

To rebuild or not: What's the best strategy?

"Lift-and-shift" continues to be the strategy of choice for many companies, particularly those just beginning their digital transformation. It's easy to see why; migration is quick and costs are minimal.That doesn't mean that code never needs to change, "but it's not a prerequisite in order to start adopting cloud-native best practices, "said Laura Frank, director of engineering at CloudBees.

"The most effective and successful digital transformations I've personally seen happen were achieved with almost no application code changes."
Laura Frank 

On a small scale, this could mean moving a web service to a cloud provider. A slightly more ambitious—and effective—process would be to package the application code inside a Docker image, which can then be run as a container across major cloud providers, on-premises, on dev machines—"pretty much anywhere," Frank explained.

Organizations that are further along in their digital transformation journey and that want to create additional business value through new capabilities are often rebuilding applications to be fully cloud-native. Instead of lifting-and-shifting to IaaS, they run on PaaS layers in containers.

Mendix CTO Johan den Haan said that in most cases this also means that applications are not rebuilt as one app, but as multiple microservices that can scale independently, be developed in any technology, and be updated by autonomous DevOps teams.

David Linthicum, chief cloud strategy officer at Deloitte Consulting, cautioned that the challenge with this approach is understanding which applications need to be changed for the cloud and to what degree. Refactoring applications is costly, but often necessary.

"Not all applications are going to be good fits for the cloud. Understanding how to pick the right application profiles is half the battle."
David Linthicum

Many organizations are taking a greenfield approach, to identify applications that are the best fit for redevelopment into a PaaS environment. Infront Consulting Group CEO Rory McCaw said this typically leads to a proof of concept (POC) and, upon success, the redevelopment of the app. The POC can then be used to inform future projects.

Prepare for pitfalls

Though most experts agreed there are few drawbacks to moving applications to the cloud, there are plenty of potential problems along the way.

For one thing, if you decide to customize your apps for the cloud, you are necessarily lengthening migration time. This can be compounded by relying too much on old habits.

"When rewriting applications to become cloud-native, the challenge is to not create a very long rewrite process. You can’t freeze the business for a year because you are moving to the cloud."
Johan den Haan

The fastest approach, he explained, is not only to rewrite applications to become cloud-native, but also to use a different development approach for it. If companies use a low-code platform to do the rewrite, they can be 10 times faster than with traditional programming languages and "speed up this process significantly."

Another common trap teams fall into is biting off too much in the zeal for digital transformation.

"I've seen many projects stall or even fail because of simultaneous innovation. I use this term to describe digital transformation projects that try to change too much at once."
Laura Frank

Moving to the cloud is one piece. It doesn't mean that you also have to start using Kubernetes and do blue-green deployments and re-architect all of your applications at the same time. "The more change at once, the higher the risk," she added.

Frank's comments highlight yet another obstacle many organizations run headlong into when it comes time to move apps to the cloud. "Although some legacy technologies make cloud native architectures difficult, most problematic is that all of these technologies are new," said Peter Roosakos, founder and CTO of Foghorn Consulting.

"There is a huge skills gap that companies need to manage in transforming legacy technologies and processes."
Peter Roosakos

Brace for impact

When cloud computing becomes a key part of the software development lifecycle, the ripples are felt throughout IT. Most processes, from testing to security to governance, will need to adapt.

The impact will be felt most acutely by DevOps. As more of the underlying infrastructure layers are abstracted, DevOps teams will need to own the entire process of building and running applications. "DevOps teams should employ a 'you build it, you run it' approach," Mendix's den Haan explained. "This means that the people that build the applications are also on pager duty for the production operations of the applications."

That’s is a big change for many organizations, he said, "but it will create more ownership, accountability, and efficiency, and it leads to much higher-quality software."

Change management also needs to, well, change, said Foghorn's Roosakos. Traditionally it's a gate, where changes aren't made in production without approval. But in a properly architected cloud-native workload, changes will be happening all of the time, based on the actual volume of requests.

"Companies can't depend on a manually updated configuration management database to tell them what is in production," he explained. "Managing everything as code can actually make this easier. By pushing all changes through a deployment pipeline, the code that created the environment becomes your CMDB, which is kind of revolutionary."

Going forward

App development in the cloud may seem like a daunting process of learning new skills and approaches while unlearning old ones, but the benefits far outweigh the pains of disruption. Besides, as Deloitte's Linthicum pointed out, getting apps to the cloud only sets the stage for a longer-term trial.

"CloudOps is the challenge. While we're going to figure out how to get workloads and data into the cloud eventually, success will be determined by our ability to support the business."
—David Linthicum