I want to come back to multi-tenancy. Over the past few months, I shared my thoughts about the importance of multi-tenant platforms in PLM and the role multi-tenancy will play in the future of PLM development.. You can catch up on my writing. Here are a few links
The last article raises a number of questions, comments, and debates. All together gave me an indication that there are tons of misconceptions about what is multi-tenant environment and architecture, how it works, what advantages and disadvantages it might have compared to single-tenant hosted and on premise architectures.
For a very long time, engineering software development, CAD, PDM, PLM was totally oriented to the desktop and later for a single company as an enterprise software offering. PLM vendors did very little in cloud development. However, the last 5-7 years were transformative in PLM and vendors learned a lot about what is important for cloud development.
In my article Why PTC is on the right track of building a multi-tenant PLM platform, I quoted Jim Heppleman, CEO of PTC speaking why they decided to acquire Onshape.
Jim Hepplemann provided a bold and clear statement about the results of PTC research before acquiring Onshape – no company in history was able to port the existing system with traditional server-based and web architecture to the cloud. All leaders in the SaaS industry built these systems from scratch and not ported existing systems. The architecture principles are different. The systems were developed for a “company”. And to run 100 systems for 100 companies in the cloud is a big problem. You need to run one system, which has a multi-tenant architecture to share multiple companies. Old architecture cannot scale and also will lead to low margins.
Last week, I shared my thoughts about why is important to learn more about multi-tenancy and different architecture and data modeling options. Today, I want to address the most common misconceptions about multi-tenancy.
1- All customers will be using the same databases to store the data and all data will be public
The most common thing is to think that vendors will take an existing PLM platform (database) and will use it as a shared database for the multi-tenant platform. Indeed, it was one of the options vendors attempted to use in the past (still do). PLM vendors tried to use current PLM platform abstraction (eg. Site or Project or something else) to isolate data for tenants. It didn’t work well because it provided a very limited functional scope. Also, administration tools don’t fit…
Multi-tenant database and cloud system are designed from scratch to have tenant foundation mechanism. It is one of the most fundamental pieces of the architecture because it defines how multiple companies will use it and scale as the number of customers will grow. It also takes into account the global nature of multi-tenant platforms such as country-specific data and location performance tuning. None of these features and capabilities are in existing platforms.
2- There is no way to organize data in a flexible way and everyone will be forced to the same schema,
Another assumption that the existing PLM system instance will be used by multiple companies. But in this case, the problem is related to the data model and data semantics. The flexibility of PLM platforms is one of the key characteristics. But if you apply it in the system designed for one company, you most probably end up with the same model for everybody. Which is sub-optimal.
Multi-tenant platforms, take an approach to have flexible data modeling but do it granular, so it can be applied for multiple tenants and provide different models. It is one of the most foundational levels – how each company will work in isolation, but at the same time will be able to share assets. Such mechanisms don’t exist in existing PLM platforms.
3- There is no way to configure and customize the system (or environment) for each user and/or customer.
Last, but not least. A misconception that an entire system will be customized and configured in the same way and there is no way to customize and configure it for each company. Again, this is the outcome of a “single system/database” thinking. In fact, customization levels should rely on the tenant model and be flexible enough to change and to apply individually and globally to tenants.
The idea of multiple programming languages was around for at least 2-3 decades. Here is a new one coming – multiple databases. Cloud (SaaS) opens an opportunity to use the best combination of multiple databases to create an online system. Check my article – what will be PLM stack in 2020where I describe the move from a single database and single programming language to polyglot programming and now to polyglot persistence.
What is my conclusion? Decades of single-level company-oriented PLM systems created a strong association between database and PLM systems. It creates real difficulties to come open-minded to new data modeling approaches. Multi-tenancy is a fundamental architecture shift that is going to happen in PLM development in the 2020s. It will require a rethinking of systems, administration, and implementation. But it is extremely powerful. Combined with polyglot persistence and shared infrastructure it will become a foundation for new PLM business models. Just my thoughts…
Disclaimer: I’m co-founder and CEO of OpenBOM developing cloud-based bill of materials and inventory management tool for manufacturing companies, hardware startups, and supply chain. My opinion can be unintentionally biased.