Developing in the Age of AI and Multicloud

Software engineer Jason Williams shares five lessons for software development in an era of rapid digital transformation.

By Gary Hilson

By Gary Hilson November 9, 2023

How Jason Wiliams approaches software development in ever-transforming hybrid and hybrid multicloud environments is guided by the lessons he learned tinkering at home. Experimenting with Linux on his own networked infrastructure as a teen was a fantastic way to learn what applications need if they are to be usable across different hardware and cloud platforms.

Now vice president of cloud services at hardware startup Iodyne, developer of the Pro Data line of portable storage devices, Williams has followed the evolution of cloud computing for software developers from the early days of software-as-a-service (SaaS) to container-based deployments for Amazon Web Services (AWS), Microsoft Azure and Google Cloud.

Jason Wiliams headshot

With two decades of experience engineering cloud-based software and operations, Williams has experienced firsthand the challenges of developing applications in a crowded landscape of competing cloud platforms — all of which are being transformed and increasingly enabled by artificial intelligence (AI). To create successful applications in a world of constant transformation, he said, today’s software developers must learn five key lessons.

1. Going off-premises reduces cost of ownership

Williams began his career by co-founding an email and web security-as-a-service company. Back then, there was no such thing as cloud computing. Instead, the service ran in a closet full of on-premises server gear before eventually moving to a proper co-location facility. Over the course of 15 years, Williams had to manage multiple migrations to run the service from multiple data centers. 

“At some point, it just became clear that there was no reason for us to own our own gear,” he said.

Related

5 Hybrid Multicloud Cost Optimization Strategies

The benefit of cloud computing for software developers is that you don’t have the cost of ownership of buying depreciating gear, Williams said. In exchange, however, you must build cloud-based applications with the expectation that your chosen platform will evolve. You may even want to run them in different cloud instances with different hardware simultaneously.

Williams’ company, Iodyne, makes a high-capacity NVMe storage drive for media and entertainment companies — essentially, a portable cloud of up to 48 terabytes. Where application development for the cloud comes into play is Iodyne’s telemetry software that supports customers.

“We want to know the performance,” Williams said. “If they have a problem, we don't want them to have to go through a whole bunch of hoops to tell us what’s wrong.”

2. Embrace AWS — but without lock-in

To date, everything Iodyne has built has been on AWS, according to Wiliams.

“But we’ve built it in a way that we can actually now deploy it to Azure and Google Cloud,” he said.

Being beholden to one data center provider was a real problem, Williams has learned, and should be a principal concern for software developers building applications for the cloud. He believes AWS has become the de facto standard, so all other clouds have fallen in line.

Related

Building Hybrid Multicloud IT Without Getting Locked In

That makes it easier to move from one cloud to another and to subscribe to the services you need. And yet, developers should begin the application development process not by thinking about how many cloud platforms they should support, but rather by prioritizing tools and interfaces — the foundational blocks. This ensures the broadest access to multiple cloud platforms and reduces the likelihood of lock-in.

“A lot of planning at the front end can save you a lot of pain later,” Williams said. “You make the hard decisions up front.”

3. Constraints keep cloud provider options open

Developing with a multicloud mindset also creates constraints, according to Williams, who noted that not all features may be supported in all cloud platforms. 

“You know which features not to use because you’d have to engineer them out later to get off your current provider,” he said.

When building its aforementioned telemetry capabilities, Iodyne needed a resilient place to store data as well as analyze it. 

“Even though we’ve started with AWS, if we want to put this infrastructure on top of Azure or Google Cloud, how do we make sure that we’re not locked in?” Williams asked.

Related

The Race to Hybrid Multicloud Interoperability

The answer guided his application development. Iodyne opted to connect to Cassandra on AWS, an open source NoSQL database management system, and its MySQL service, Aurora, which had all the necessary features.

“By using Aurora, we can move to any other MySQL-based provider,” explained Williams, who said there were some features with Cassandra that AWS did not provide. To avoid lock-in, Iodyne chose to deploy its own Cassandra cluster. 

“We can deploy that anywhere.”

Developers should choose features and decide what clouds the application can support at the beginning of the development process, Williams said. Because the ability to move from AWS to Google or Azure provides redundancy, it’s important to think of the servers that are hosting your application as a commodity. When you do, migrating from one cloud platform to another becomes a lot less painful; although there is still work to be done when making the move, any necessary modifications have been anticipated.

4. AI will augment human developers, not displace them

AI is transforming the cloud and data centers. So much so that everyone is wondering: Will AI replace software developers?

For Iodyne, AI is about seizing an opportunity to add capabilities to its telemetry application, not replacing the humans who created it.

In that spirit, Williams said the first question developers should ask about AI is where it can augment what humans are doing either because people are error-prone or because the task is impossible for a person to do. 

“That’s where AI is the best fit,” he suggested.

In Iodyne’s case, AI can help make its storage device and supporting applications more secure while opening avenues to improve storage efficiency, Williams said.

5. Tinkering makes you a better cloud application developer.

Young developers need to know how to write programs. But what Williams has found to be just as helpful is simply playing around with information technology for fun. As a teen, the movie Jurassic Park inspired him to install Linux, which has prepared him well for the challenges he’s encountered building applications.

“Break things at home and not at work because you get to be playful at home in a way that then will help you be more effective at work,” Williams said, adding that it’s never been easier to run your own network infrastructure in your own house or to play with different tools and concepts. 

“Playing teaches you far more.”

Related

How a Hybrid Multicloud Infrastructure Aids App Development

Because it provides an understanding of what’s involved when adding features, people who are focused on hardware also can benefit from learning to program, according to Williams, who said it’s critical that IT infrastructure people can communicate with application developers and vice versa in order to understand the cloud-based platform they’re using to run applications.

Williams, who has a philosophy degree, said critical thinking goes a long way toward solving problems when building applications for hybrid and multi-cloud environments. Experimenting with technology at an early age, however, gives developers hands-on skills for which there’s no substitute in a constantly evolving IT landscape.

“All of this stuff that I learned to help me start a startup and run infrastructure I learned by running my own network in my house,” he said.

Editor’s note: Learn how Nutanix hybrid multicloud software helps manage apps and data across on-premise and public clouds then explore Nutanix GPT-in-a-Box, a full-stack software-defined AI-ready platform designed to simplify and jump-start AI initiatives from edge to core.

Gary Hilson has more than 20 years of experience writing about B2B enterprise technology and the issues affecting IT decisions makers. His work has appeared in many industry publications, including EE Times, Embedded.com, Network Computing, EBN Online, Computing Canada, Channel Daily News, and Course Compare. Find him on X.

© 2023 Nutanix, Inc. All rights reserved. For additional legal information, please go here.