Sony Picture Entertainment was rapidly expanding its streaming ventures and required a state-of-the-art, next-generation platform to accommodate this swift growth.
Sony Pictures Entertainment embarked on a strategic initiative to streamline its operations by consolidating technical teams and reducing costs and complexity. The aim was to unify all streaming services onto a singular, multi-tenant system, operating on a consolidated technological base. This approach marked a departure from Sony's traditional operating model. To achieve this transformation, Sony introduced new leadership with proven experience in such endeavors, including my role as the Chief Architect overseeing the entirety of their digital transformation.
Sony Pictures Entertainment planned to utilize the existing Crackle platform as a foundation to develop a versatile and robust technological core. This core was designed to cater to all of Sony Pictures Entertainment's streaming requirements, encompassing not only Crackle but also international television services, theatrical microsites, gaming, and upcoming acquisitions like Funimation.
Initially, the Crackle platform was a rigid monolith, tailored specifically for Crackle's limited scope and not adaptable for a broader, more dynamic ecosystem. Recognizing this, Sony Pictures committed to a major overhaul of this core system. This update necessitated a strategic reevaluation and restructuring of the organization to successfully achieve these ambitious goals.
In my capacity as Chief Architect, my primary responsibility was to design and promote a set of principles and solutions for a cutting-edge platform. An integral part of my role involved restructuring the staff organization into a matrix format, emphasizing smaller, Agile teams dedicated to specific domain areas instead of traditional departmental silos.
My approach began with architecting a solution based around functional domains, such as content, users, advertising, configuration, and security. Each domain was to be managed by a specialized team with its own codebase, data, and operational services. This necessitated refactoring the existing code and transitioning to a containerized environment using Kubernetes and Azure API Gateway.
A key task was leading the exploration of potential Infrastructure-as-a-Service (IaaS) partners, including Microsoft, Pivotal, and IBM. Microsoft emerged as the preferred choice due to its established relationship with Sony Pictures and advanced support for C# and .Net applications, aligning with Crackle's existing codebase.
The transition to a microservices architecture was progressive, beginning with placing all existing APIs from the monolith behind the Azure API Gateway. This was followed by segmenting the monolith into smaller units and integrating distributed resources like Redis, eventually migrating to Cosmos DB. Concurrently, we worked on evolving the platform to a multi-tenant system, necessitating a comprehensive overhaul of the database schema to include tenant identifiers across most tables and implementing sharding based on tenant discriminators.
In architecting the microservices, I applied Domain-driven Design to establish a clear separation model and interaction framework. This involved assessing the connascence of various components in the existing system to determine the necessary alignments. I focused on decomposing sub-functionality and exploring different solutions for complex problems, like personalizing search results — a task that entailed integrating content-specific search with user usage data and aggregate user information.
This process of logical subdivision was intricate and subjective, requiring in-depth discussions and negotiations with the implementation teams to reach the most effective solutions. Despite these challenges, the fundamental domain structures remained as originally designed.
To build a proficient microservices team, I not only trained the existing staff but also hired new Lead Architects to oversee each Scrum team's architecture. I maintained daily interactions with every architect and bi-weekly sessions with each team lead, ensuring steady progress and providing guidance on design decisions. This approach fostered a dynamic environment of ongoing debate and fresh ideas, aligning with our ambitious timeline for digital transformation.
The result of these efforts was a successful migration of Sony Pictures' platform to a new, multi-tenant system based on microservices. This transition led to faster addition of new features and significantly streamlined individual API testing. The new system offered enhanced resilience and scalability. While the increased complexity of the system necessitated expanded integration testing, this challenge was well-managed and did not hinder our progress.
Transitioning an entire team to a new mindset is a formidable challenge, particularly for someone joining as a newcomer. At Sony Pictures, this required ongoing diplomatic and interpersonal efforts with various members of the technology team. Fortunately, the majority of the engineering team displayed a keen interest in learning about microservices and advancing their skill sets. Their openness and welcoming attitude played a pivotal role in quickly establishing strong, collaborative bonds. Working closely together, we efficiently fine-tuned our solution, developed a clear roadmap, and supported each other in achieving our professional objectives.
We create amazing Webflow templates for creative people all around the world and help brands stand out.