Software Product Hybrid Deployments and Enterprise Architect Challenges

In one of my recent experiences in product development, I as an Enterprise Architect, encountered a significant challenge: modernizing our product to incorporate Software as a Service (SaaS) capabilities without disrupting our customer’s existing on-premise environment ( before I joined the team, the product was deployed as an on-premise solution and at least 10k customers using the product globally)

The above includes navigating the complexities of hybrid product deployment IT environments and it  became an increasingly crucial consideration while identifying the technology stack and  creating an architectural governance.

As an architect, I faced several challenges:

Rationale:
Incorporating a solution that supports flexibility and cost-efficiency in managing hybrid IT environments seamlessly is essential.

For instance, opting not to use Kafka or RabbitMQ for event-driven architecture, while these solutions power event-driven capabilities, they can create support challenges when deployed on-premise. To address this, we designed a solution using a Postgres database table to store events, categorizing them by event type. This approach allowed our Product Support team to manage the product with minimal new technology learning, even in on-premise deployments.

Governance and Management:
The role of the Enterprise Architect in governing and managing hybrid product IT environments is critical. I had to advocate multiple times and one of them is the design of centralized data models/structures that facilitate adding new features to product development swiftly in the SaaS environment while enabling easy deployment of the same new features in on-premise environments at a later stage.

For instance, efficient management of business data schema evolution in hybrid environments is crucial. This is where the concept of “Dynamic Canonical Data Modeling” comes into play. By identifying variations and extensions of the product foundation model, we were able to effectively manage schema evolution across various product versions, ensuring compatibility with on-premise deployments.

Overall, I think as an Enterprise Architect navigating the challenges of hybrid product IT environments requires careful consideration and strategic architectural decisions. By addressing issues like event-driven architecture and data schema evolution through Dynamic Canonical Data Modeling, the EA can successfully modernize products while minimizing disruption to existing environments.