Netflix has long been considered a leader in providing content that can be delivered in both physical formats or streamed online as a service. One of their key differentiators in providing the online streaming service is their dynamic infrastructure. This infrastructure allows them to maintain streaming services regardless of software updates, maintenance activities or unexpected system challenges.
The challenges they had to address in order to create a dynamic infrastructure required them to develop a pluggable architecture. This architecture had to support innovations from the developer community and scale to reach new markets. Multi-region environments had to be supported with sophisticated deployment strategies. These strategies had to allow for blue/green deployments, release canaries and CI/CD workflows. The DevOps tools and model that emerged also extended and impacted their core business of content creation, validation, and deployment.
I've described this extended impact as a "Netflix like" approach that can be utilized in enterprise application deployments. This blog will illustrate how DevOps teams can model the enterprise application environment workflows using a similar approach used by Netflix for content deployment and consumption, i.e. point, select, and view.
Step 1: Workflow Overview
The initial step is to understand the workflow process and dependencies. In the example below, we have a Netflix workflow whereby a producer develops the scene with a cast of characters. The scene is incorporated into a completed movie asset within a studio. Finally, the movie is consumed by the customer on a selected interface.
Similarly, the enterprise workflow consists of a developer creating software with a set of tools. The developed software is packaged with other dependent code and made available for publication. Customers consume the software package on their desired interface of choice.
Step 2: Workflow Components
The next step is to align the workflow components. For the Netflix workflow components, new content is created and tested in environments to validate playback. Upon successful playback, the content is ready to deploy into the production environment for release.
The enterprise components follow a similar workflow. The new code is developed and additional tools are utilized to validate functionality within controlled test environments. Once functionality is validated, the code can be deployed as a new or part of an existing application.
The Netflix workflow toolset referenced in this example is their Spinnaker platform. The comparison for the enterprise is Quali’s CloudShell Management platform.
Step 3: Workflow Roles
Each management tool requires setting up privileges, privacy and separation of duties for the respective personas and access profiles. Netflix makes it straightforward with managing profiles and personalizing the permissions based upon the type of experience the customer wishes to engage in. Similarly, within Quali CloudShell, roles and associated permissions can be established to support DevOps, SecOps and other operational teams.
Step 4: Workflow Assets
The details for the media asset, whether categorization, description or other specific details assist in defining when, where and who can view the content. The ease of use for the point/click interface makes it easy for a customer to determine what type of experience they want to enjoy.
On the enterprise front, categorization of packaged software as applications can assist in determining the desired functionality. Resource descriptions, metadata, and resource properties further identify how and which environments can support the selected application.
Step 5: Workflow Environments
Organizations may employ multiple deployment models whereby pre-release tests are required in separated test environments. Each environment can be streamlined for accessibility, setup, teardown and extending to the eco-system integration partners. The DevOps CI/CD pipeline approach for software release can become an automated part of the delivery value chain. The "Netflix like" approach to self-service selection, service start/stop and additional automated features help to make cloud application adoption seamless. All that's required is an orchestration, modeling and deployment capability to handle the multiple tools, cloud providers and complex workflows.
Step 6: Workflow Management
Bringing it all together requires workflow management to ensure that the edge functionality is seamlessly incorporated into the centralized architecture. Critical to Netflix success is their ability to manage clusters and deployment scenarios. Similarly, Quali enables Environments as a Service to support blueprint models and eco-system integrations. These integrations often take the form of pluggable community shells.
Enterprises that are creating, validating and deploying new cloud applications are looking to simplify and automate their deployment workflows. The "Netflix like” approach to discover, sort, select, view and consume content can be modeled and utilized by DevOps teams to deliver software in a CI/CD model. The Quali CloudShell example for Environments as a Service follows that model by making it easy to set up workflows to accomplish application deployments. For more information, please visit Quali.