Our infrastructure, apps, and data must be designed in a way that makes them portable and flexible enough to be separated cleanly if needed Credit: Pretzelpaws The flurry of interest in acquiring TikTok shows the value of a popular social network with vast troves of consumer data. The deal also holds an important lesson about technology use that other businesses can learn from: the need to design applications in a flexible, portable way. One challenge for any company that buys TikTok will be how to carve up its technical infrastructure outside of China without destroying its value in the process. The impetus for the deal is that the US doesn’t want China “spying” on its citizens through the app. That will require untangling the data and application code on the back end. [ Also on InfoWorld: How cloud-native technologies defeat cloud lock-in ] TikTok owner ByteDance also runs a similar app called Douyin, available only in China, and the apps reportedly share technical resources including user data, server code, and the algorithms that determine which content and ads a user sees. ByteDance needs to separate those elements in the narrow timeframe it’s been given, and its ability to do that effectively will be a factor in how much a suitor is willing to pay — and perhaps whether a deal happens at all. There are lessons here for other businesses. It’s not uncommon to sell or spin off a product or company division for strategic reasons, and how those assets are architected can impact their value and the ease with which they can be sold. The days of building giant monolithic applications are long gone. Most new apps are built in the cloud using smaller microservices that can be scaled up and down as needed and updated independently. That’s good for introducing new features quickly but it can be hard to disentangle apps if they’re not designed carefully using open standards and technologies. There are three main areas to consider: the cloud infrastructure, the application code, and the data. Here’s how to design each in a way that makes them portable and flexible enough that they can be separated cleanly if needed. Keep it cloud-neutral Most businesses have a preferred cloud provider, and any app being acquired may need to be moved onto a different service. In TikTok’s case, ByteDance recently signed an $800 million deal to run the app in Google’s cloud. Certainly, Microsoft or Oracle would want to move the app to their own cloud as soon as possible to collect the revenue. One way to get locked into a cloud is using high-level managed services, like Amazon Redshift or Google Cloud Big Table. These services are alluringly simple to deploy but notorious for locking customers into proprietary formats. Even the managed versions of popular open source products like MongoDB and Elasticsearch can have subtle differences depending on the cloud provider, making it hard to port apps when you need to. Think of the public cloud as an infrastructure service, not the basis for architectural decisions. If you’re building the next TikTok, select services that aren’t specific to one public cloud and don’t limit your options by going all in on one provider. Make apps modular and portable Applications should be developed as microservices and deployed in containers based on a widely used standard like Docker. Containers package everything an app needs to run into a self-contained bundle, including the application code and any dependencies or configuration files it requires. That makes it easier to move or copy an app onto a different cloud or hardware platform. Because containerized apps are modular by nature, each application service can be dealt with individually as needed. For example, maybe the user interface code is copied over while the security services are rewritten. Or a business could sell off specific functionality and retain other parts of an app. The algorithms themselves can be updated for each country or region, depending on local market needs. Keep the data independent ByteDance has a trove of data about its users around the world. Given the US’s privacy and security concerns, it will need to unbundle the data associated with its international users and ensure ByteDance has no way of accessing that information after the deal is complete. Managing data in the event of a sale starts with knowing where all your data lives, including any backups. Data should be architected intentionally and segmented by country or zone of operation. This is a good practice in any event, for compliance with regulations like GDPR or nation-specific data sovereignty laws, but may also be essential in the event of a sale. In addition, data shouldn’t be hard-wired to the underlying storage system. Cloud native technologies like Kubernetes and containers allow data to reside anywhere and connect to an app as needed. In the event of a sale, data can be moved to a different cloud, data center, or region without having to rewrite the application or rip out the storage hardware. In short, data should be kept highly portable and there are standards-based cloud technologies that make that possible. It’s unclear who will acquire TikTok but the deal could be a lucrative one. Facebook paid $1 billion for Instagram and the service generated $20 billion in ad revenue last year. TikTok has about 80 million users in the US and it is still growing fast. But these deals can be complex when data and applications have to be disentangled on the back end. How you architect your infrastructure can have a big impact when it comes to a sale. So let this deal serve as a lesson. Design for maximum flexibility, because you never know what the future holds. Murli Thirumale is co-founder and CEO of Portworx, provider of cloud-native storage and data management solutions for Kubernetes. — New Tech Forum provides a venue to explore and discuss emerging enterprise technology in unprecedented depth and breadth. The selection is subjective, based on our pick of the technologies we believe to be important and of greatest interest to InfoWorld readers. InfoWorld does not accept marketing collateral for publication and reserves the right to edit all contributed content. Send all inquiries to newtechforum@infoworld.com. Related content feature What is Rust? Safe, fast, and easy software development Unlike most programming languages, Rust doesn't make you choose between speed, safety, and ease of use. Find out how Rust delivers better code with fewer compromises, and a few downsides to consider before learning Rust. By Serdar Yegulalp Nov 20, 2024 11 mins Rust Programming Languages Software Development how-to Kotlin for Java developers: Classes and coroutines Kotlin was designed to bring more flexibility and flow to programming in the JVM. Here's an in-depth look at how Kotlin makes working with classes and objects easier and introduces coroutines to modernize concurrency. By Matthew Tyson Nov 20, 2024 9 mins Java Kotlin Programming Languages analysis Azure AI Foundry tools for changes in AI applications Microsoft’s launch of Azure AI Foundry at Ignite 2024 signals a welcome shift from chatbots to agents and to using AI for business process automation. By Simon Bisson Nov 20, 2024 7 mins Microsoft Azure Generative AI Development Tools news Microsoft unveils imaging APIs for Windows Copilot Runtime Generative AI-backed APIs will allow developers to build image super resolution, image segmentation, object erase, and OCR capabilities into Windows applications. By Paul Krill Nov 19, 2024 2 mins Generative AI APIs Development Libraries and Frameworks Resources Videos