throbber
EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`The chart below illustrates infringement of the Medeiros ’419 Patent by Defendant Netflix, Inc.’s (“Netflix”) distributed computing
`and microservices platforms, including those implemented using Netflix’s Titus container-management platform (the “Accused
`Instrumentalities”).
`
`This chart is preliminary and based on information presently available to Plaintiffs CA, Inc. and Avago Technologies International
`Sales Pte. Limited. Netflix has yet to produce any documents, materials, or other discovery responses in this matter. Notably, Plaintiffs
`do not currently have access in this case to the internal technical documentation and source code associated with the Accused
`Instrumentalities. This infringement chart was therefore made without the benefit of these materials. Plaintiffs expressly reserve the
`right to amend this infringement chart as additional documents, materials, and information becomes available to Plaintiffs, including
`but not limited to the internal technical documentation and source code described above.
`
`These contentions are not an admission of any kind, including with regard to claim construction, as claim construction proceedings
`have not yet occurred. Plaintiffs expressly reserve the right to amend these contentions based on the outcome of those proceedings.
`This claim chart is exemplary in nature, and merely designed to put Netflix on notice of Plaintiffs’ current infringement contentions.
`
`Claim Language
`1. An apparatus,
`comprising a first node
`of a network, the first
`node comprising:
`
`Contentions
`The preamble of this claim is not limiting. If the preamble is found to be limiting, the Accused
`Instrumentalities include an apparatus, comprising a first node of a network.
`
`Architecture
`
`Titus is a framework on top of Apache Mesos, a cluster-management system
`that brokers available resources across a fleet of machines. Titus consists of
`a replicated, leader-elected scheduler called Titus Master, which handles the
`placement of containers onto a large pool of EC2 virtual machines called
`Titus Agents, which manage each container's life cycle. Zookeeper manages
`leader election, and Cassandra persists the master's data. The Titus
`architecture is shown below.
`
`Page 1 of 93
`
`Netflix, Inc. - Ex. 1019, Page 000001
`IPR2022-00322 (Netflix, Inc. v. CA, Inc.)
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`
`Work in Titus is described by a job specification that details what to run
`(e.g., a container image and entry point), metadata (e.g., the job's purpose
`and who owns it), and what resources are required to run it, such as CPU,
`memory, or scheduling constraints (e.g., availability zone balancing or host
`affinity). Job specifications are submitted to the master and consist of a
`number of tasks that represent an individual instance of a running
`application. The master schedules tasks onto Titus agents that launch
`containers based on the task's job specification.
`
`Components
`
`Titus Gateway
`
`
`
`Page 2 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000002
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`The Titus Gateway is a scalable API tier that handles direct requests from
`clients and users. The Gateway exposes gRPC and REST APIs, handles
`connection management, and performs validation.
`
`Titus Master
`
`The Titus Master is responsible for persisting job and task information,
`scheduling tasks, and managing the pool of EC2 Agents. The Master
`receives requests from Gateway instances and creates and persists job and
`task info in response. The Master schedules tasks onto Agents with
`available resources and scales the pool of Titus Agents up or down in
`response to demand.
`
`Titus Agent
`
`Titus Agents are responsible for setting up and running task containers and
`managing their lifecycle. The Agent sets up on host resources, such as
`storage and networking resources, and launches the container using Docker.
`The Agent monitors the task, reporting status and cleaning up resources
`when it completes.
`
`Overview, Titus, https://netflix.github.io/titus/overview/
`
`
`
`Page 3 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000003
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`
`
`
`
`
`
`Page 4 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000004
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`[1a] an interface
`operable to:
`communicate with a
`second node of the
`network; and
`
`
`Introduction to Virtual Kubelet – Featuring Titus by Netflix - Ria Bhatia & Sargun Dhillon, YouTube
`(Nov. 21, 2019), https://www.youtube.com/watch?v=eFnDwwckrKU
`
`The Accused Instrumentalities comprise a first node, comprising an interface operable to
`communicate with a second node of the network.
`
`Architecture
`
`Titus is a framework on top of Apache Mesos, a cluster-management system
`that brokers available resources across a fleet of machines. Titus consists of
`a replicated, leader-elected scheduler called Titus Master, which handles the
`placement of containers onto a large pool of EC2 virtual machines called
`Titus Agents, which manage each container's life cycle. Zookeeper manages
`
`
`
`Page 5 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000005
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`leader election, and Cassandra persists the master's data. The Titus
`architecture is shown below.
`
`
`Work in Titus is described by a job specification that details what to run
`(e.g., a container image and entry point), metadata (e.g., the job's purpose
`and who owns it), and what resources are required to run it, such as CPU,
`memory, or scheduling constraints (e.g., availability zone balancing or host
`affinity). Job specifications are submitted to the master and consist of a
`number of tasks that represent an individual instance of a running
`application. The master schedules tasks onto Titus agents that launch
`containers based on the task's job specification.
`
`Components
`
`
`
`Page 6 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000006
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`Titus Gateway
`
`The Titus Gateway is a scalable API tier that handles direct requests from
`clients and users. The Gateway exposes gRPC and REST APIs, handles
`connection management, and performs validation.
`
`Titus Master
`
`The Titus Master is responsible for persisting job and task information,
`scheduling tasks, and managing the pool of EC2 Agents. The Master
`receives requests from Gateway instances and creates and persists job and
`task info in response. The Master schedules tasks onto Agents with
`available resources and scales the pool of Titus Agents up or down in
`response to demand.
`
`Titus Agent
`
`Titus Agents are responsible for setting up and running task containers and
`managing their lifecycle. The Agent sets up on host resources, such as
`storage and networking resources, and launches the container using Docker.
`The Agent monitors the task, reporting status and cleaning up resources
`when it completes.
`
`Overview, Titus, https://netflix.github.io/titus/overview/
`
`
`
`Page 7 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000007
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`A Series of Unfortunate Container Events, https://qconnewyork.com/system/files/presentation-
`slides/netflix-containers-qconnyc2017.pdf
`
`
`
`
`
`Page 8 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000008
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`
`Running Containers at Scale at Netflix, at 16, available at https://www.slideshare.net/aspyker/container-
`world-2018
`
`A Common Network is Key
`
`An important enabler for many of the integrations was a common
`networking infrastructure. Seamless network communication between
`containerized applications and existing infrastructure removed many
`integration and adoption hurdles.
`
`. . .
`
`Titus provides a unique IP address to each container by connecting
`containers to the same AWS Virtual Private Cloud (VPC) network to which
`VMs are connected. Using a common VPC allows containers to share the
`same IP address space as VMs and use the same networking policies and
`
`
`
`Page 9 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000009
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`features such as AWS SGs (Security Groups). This approach avoids the
`need to manage ports, as each container gets its own IP and full port range,
`and network gateways.
`
`When launching a container that requested a routable IP address, Titus
`attaches an AWS ENI (Elastic Network Interface)2 to the agent VM that is
`running the container. Attaching an ENI creates a new network interface on
`the VM from which multiple IP addresses can be assigned. These addresses
`are allocated from the same CIDR (classless inter-domain routing) range as
`VMs in the VPC, meaning containers and VMs can directly address each
`other's IPs. Allocating IPs via ENIs lets Titus avoid managing the available
`VPC IPs or directly modifying VPC routing tables.
`
`When Titus is preparing to launch a new container, it creates a network
`namespace for it, assigns it a specific IP address from an ENI, and connects
`the container's network namespace to the host's using a veth (virtual
`Ethernet) interface. Routing rules on the host route all traffic for that IP to
`the veth interface, and routing rules within the network namespace
`configure the allocated IP for the container.
`
`Andrew Leung et al., Titus: Introducing Containers to the Netflix Cloud, 15 ACMQUEUE 5,
`https://queue.acm.org/detail.cfm?id=3158370
`
`The Accused Instrumentalities also include Titus Virtual Kubelet.
`
`
`
`Page 10 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000010
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`
`
`
`
`Page 11 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000011
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`
`
`
`
`Page 12 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000012
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`
`Introduction to Virtual Kubelet – Featuring Titus by Netflix - Ria Bhatia & Sargun Dhillon, YouTube
`(Nov. 21, 2019), https://www.youtube.com/watch?v=eFnDwwckrKU
`
`Nodes
`
`Kubernetes runs your workload by placing containers into Pods to run
`on Nodes. A node may be a virtual or physical machine, depending on the
`cluster. Each node is managed by the control plane and contains the services
`necessary to run Pods
`
`Typically you have several nodes in a cluster; in a learning or resource-
`limited environment, you might have only one node.
`
`
`
`Page 13 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000013
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`The components on a node include the kubelet, a container runtime, and
`the kube-proxy.
`
`https://kubernetes.io/docs/concepts/architecture/nodes/
`
`Node Components
`
`Node components run on every node, maintaining running pods and
`providing the Kubernetes runtime environment.
`
`kubelet
`
`that runs on each node in
`An agent
`that containers are running in a Pod.
`
`the cluster. It makes sure
`
`The kubelet takes a set of PodSpecs that are provided through various
`mechanisms and ensures that the containers described in those PodSpecs
`are running and healthy. The kubelet doesn't manage containers which were
`not created by Kubernetes.
`
`kube-proxy
`
`kube-proxy is a network proxy that runs on each node in your cluster,
`implementing part of the Kubernetes Service concept.
`
`kube-proxy maintains network rules on nodes. These network rules allow
`network communication to your Pods from network sessions inside or
`outside of your cluster.
`
`kube-proxy uses the operating system packet filtering layer if there is one
`and it's available. Otherwise, kube-proxy forwards the traffic itself.
`
`Container runtime
`
`
`
`Page 14 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000014
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`The container runtime is the software that is responsible for running
`containers.
`
`Kubernetes supports several container runtimes: Docker, containerd, CRI-
`O, and any implementation of the Kubernetes CRI (Container Runtime
`Interface).
`
`https://kubernetes.io/docs/concepts/overview/components/#node-components
`
`How kubelets usually work
`
`Ordinarily, Kubernetes kubelets implement Pod and container operations
`for each Kubernetes Node. They run as an agent on each Node, whether that
`Node is a physical server or a virtual machine, and handles Pod/container
`operations on that Node. kubelets take a configuration called a PodSpec as
`input and work to ensure that containers specified in the PodSpec are
`running and healthy.
`
`How Virtual Kubelet works
`
`server, Virtual
`the Kubernetes API
`standpoint of
`the
`From
`Kubelets seem like normal kubelets, but with the crucial difference that they
`scheduler containers elsewhere, for example in a cloud serverless API, and
`not on the Node.
`
`Figure 1 below shows a Kubernetes cluster with a series of standard
`kubelets and one Virtual Kubelet:
`
`
`
`Page 15 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000015
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`[1b] one or more
`processors operable to:
`
`
`
`https://virtual-kubelet.io/docs/architecture/
`
`The Accused Instrumentalities comprise a first node, comprising one or more processors.
`
`Spinnaker
`
`We deploy Titus via Spinnaker to an EC2 cloud provider. Eventually we
`may release these pipelines, but for now we suggest direct deployments
`using the AWS EC2 console.
`
`
`
`Page 16 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000016
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`Required, Titus, https://netflix.github.io/titus/install/prereqs/
`
`AWS re:Invent 2018: Another Week, Another Million Containers on Amazon EC2 (CMP376),
`YouTube (Nov. 30, 2018), available at https://www.youtube.com/watch?v=5IsrZZSUQeU
`
`
`
`
`
`Page 17 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000017
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`
`New – Next Generation (R4) Memory-Optimized EC2 Instances, AWS News Blog (Nov. 30, 2016),
`https://aws.amazon.com/blogs/aws/new-next-generation-r4-memory-optimized-ec2-instances/
`
`
`
`
`
`Page 18 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000018
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`https://aws.amazon.com/ec2/?ec2-whats-new.sort-by=item.additionalFields.postDateTime&ec2-whats-
`new.sort-order=desc
`
`The Accused Instrumentalities comprise one or more processors operable to tell a plurality of nodes
`to perform an operation comprising a procedure of an application, the plurality of nodes comprising
`the second node and one or more additional nodes.
`
`[1c] tell a plurality of
`nodes to perform an
`operation comprising a
`procedure of an
`application, the plurality
`of nodes comprising
`[the] second node and
`one or more additional
`nodes;
`
`
`Introduction to Virtual Kubelet – Featuring Titus by Netflix - Ria Bhatia & Sargun Dhillon, YouTube
`(Nov. 21, 2019), https://www.youtube.com/watch?v=eFnDwwckrKU
`
`
`
`
`
`Page 19 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000019
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`Work in Titus is described by a job specification that details what to run
`(e.g., a container image and entry point), metadata (e.g., the job's purpose
`and who owns it), and what resources are required to run it, such as CPU,
`memory, or scheduling constraints (e.g., availability zone balancing or host
`affinity). Job specifications are submitted to the master and consist of a
`number of tasks that represent an individual instance of a running
`application. The master schedules tasks onto Titus agents that launch
`containers based on the task's job specification.
`
`. . .
`
`Titus Gateway
`
`The Titus Gateway is a scalable API tier that handles direct requests from
`clients and users. The Gateway exposes gRPC and REST APIs, handles
`connection management, and performs validation.
`
`Overview, Titus, https://netflix.github.io/titus/overview/
`
`curl localhost:7001/api/v3/jobs \
` -X POST -H "Content-type: application/json" -d \
`'{
` "owner": {
` "teamEmail": "me@example.com"
` },
` "applicationName": "myServiceApp",
` "capacityGroup": "myServiceApp",
` "jobGroupInfo": {
` "stack": "myStack",
` "detail": "detail",
` "sequence": "002"
` },
` "attributes": {
` "key1": "value1"
` },
` "container": {
` "resources": {
`
`
`
`Page 20 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000020
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
` "cpu": 1.0,
` "memoryMB": 128,
` "diskMB": 100,
` "networkMbps": 128,
` "allocateIP": true
` },
` "securityProfile": {
` "securityGroups": [
` "sg-<PRIVATE>"
` ],
` "iamRole": "arn:aws:iam::<PRIVATE>:role/titusappwiths3InstanceProfile"
` },
` "image": {
` "name": "tutum/nginx",
` "tag": "latest"
` },
` "env": {
` "MY_ENV": "myEnv"
` },
` "softConstraints": {
` "constraints": {
` "UniqueHost": "true",
` "ZoneBalance": "true"
` }
` },
` "hardConstraints": {}
` },
` "service": {
` "capacity": {
` "min": 1,
` "max": 1,
` "desired": 1
` },
` "enabled": true,
` "retryPolicy": {
` "delayed": {
` "delayMs": "1000"
` }
` },
` "migrationPolicy": {
` "selfManaged": {}
`
`
`
`Page 21 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000021
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
` }
` }
`}'
`https://github.com/angelbarrera92/titus-terraform
`
`Workloads
`
`A workload is an application running on Kubernetes. Whether your
`workload is a single component or several that work together, on
`Kubernetes you run it inside a set of pods. In Kubernetes, a Pod represents
`a set of running containers on your cluster.
`
`Kubernetes pods have a defined lifecycle. For example, once a pod is
`running in your cluster then a critical fault on the node where that pod is
`running means that all the pods on that node fail. Kubernetes treats that level
`of failure as final: you would need to create a new Pod to recover, even if
`the node later becomes healthy.
`
`However, to make life considerably easier, you don't need to manage
`each Pod directly. Instead, you can use workload resources that manage a
`set of pods on your behalf. These resources configure controllers that make
`sure the right number of the right kind of pod are running, to match the state
`you specified.
`
`Kubernetes provides several built-in workload resources:
`
`legacy
`the
`• Deployment and ReplicaSet (replacing
`resource ReplicationController). Deployment is a good fit for
`managing a stateless application workload on your cluster, where
`any Pod in the Deployment is interchangeable and can be replaced
`if needed.
`
`• StatefulSet lets you run one or more related Pods that do track state
`somehow. For example, if your workload records data persistently,
`
`
`
`Page 22 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000022
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`each Pod with
`a StatefulSet that matches
`run
`can
`you
`the Pods for
`in
`a PersistentVolume. Your
`code,
`running
`that StatefulSet,
`can
`replicate data
`to other Pods in
`the
`same StatefulSet to improve overall resilience.
`
`• DaemonSet defines Pods that provide node-local facilities. These
`might be fundamental to the operation of your cluster, such as a
`networking
`helper
`tool,
`or
`be
`part
`of
`an add-on.
`Every time you add a node to your cluster that matches the
`specification in a DaemonSet, the control plane schedules a Pod for
`that DaemonSet onto the new node.
`
`• Job and CronJob define tasks that run to completion and then stop.
`Jobs represent one-off tasks, whereas CronJobs recur according to a
`schedule.
`
`In the wider Kubernetes ecosystem, you can find third-party workload
`resources that provide additional behaviors. Using a custom resource
`definition, you can add in a third-party workload resource if you want a
`specific behavior that's not part of Kubernetes' core. For example, if you
`wanted to run a group of Pods for your application but stop work
`unless all the Pods are available (perhaps for some high-throughput
`distributed task), then you can implement or install an extension that does
`provide that feature.
`
`https://kubernetes.io/docs/concepts/workloads/
`
`Pods
`
`Pods are the smallest deployable units of computing that you can create and
`manage in Kubernetes.
`
`A Pod (as in a pod of whales or pea pod) is a group of one or
`more containers, with shared storage and network resources, and a
`
`
`
`Page 23 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000023
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`specification for how to run the containers. A Pod's contents are always co-
`located and co-scheduled, and run in a shared context. A Pod models an
`application-specific "logical host": it contains one or more application
`containers which are relatively tightly coupled. In non-cloud contexts,
`applications executed on the same physical or virtual machine are analogous
`to cloud applications executed on the same logical host.
`
`As well as application containers, a Pod can contain init containers that run
`during Pod startup. You can also inject ephemeral containers for debugging
`if your cluster offers this.
`
`https://kubernetes.io/docs/concepts/workloads/pods/
`
`Containers
`
`Each container that you run is repeatable; the standardization from having
`dependencies included means that you get the same behavior wherever you
`run it.
`
`Containers decouple applications from underlying host infrastructure. This
`makes deployment easier in different cloud or OS environments.
`
`Container images
`
`image is a ready-to-run software package, containing
`A container
`everything needed to run an application: the code and any runtime it
`requires, application and system libraries, and default values for any
`essential settings.
`
`By design, a container is immutable: you cannot change the code of a
`container that is already running. If you have a containerized application
`and want to make changes, you need to build a new image that includes the
`change, then recreate the container to start from the updated image.
`
`
`
`Page 24 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000024
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`Container runtimes
`
`The container runtime is the software that is responsible for running
`containers.
`
`Kubernetes supports several container runtimes: Docker, containerd, CRI-
`O, and any implementation of the Kubernetes CRI (Container Runtime
`Interface).
`
`https://kubernetes.io/docs/concepts/containers/
`
`Images
`
`A container image represents binary data that encapsulates an application
`and all its software dependencies. Container images are executable software
`bundles that can run standalone and that make very well defined
`assumptions about their runtime environment.
`
`You typically create a container image of your application and push it to a
`registry before referring to it in a Pod
`
`This page provides an outline of the container image concept.
`
`Image names
`
`such
`name
`a
`given
`usually
`are
`images
`Container
`as pause, example/mycontainer, or kube-apiserver. Images can also include
`a registry hostname; for example: fictional.registry.example/imagename,
`and
`possibly
`a
`port
`number
`as
`well;
`for
`example: fictional.registry.example:10443/imagename.
`
`If you don't specify a registry hostname, Kubernetes assumes that you mean
`the Docker public registry.
`
`
`
`Page 25 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000025
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`[1d] instruct the plurality
`of nodes how to perform
`the operation using
`computer code; and
`
`After the image name part you can add a tag (as also using with commands
`such as docker and podman). Tags let you identify different versions of the
`same series of images.
`
`Image tags consist of lowercase and uppercase letters, digits, underscores
`(_),
`periods
`(.),
`and
`dashes
`(-).
`There are additional rules about where you can place the separator
`characters
`(_, -,
`and .)
`inside
`an
`image
`tag.
`If you don't specify a tag, Kubernetes assumes you mean the tag latest.
`
`https://kubernetes.io/docs/concepts/containers/images/
`
`The Accused Instrumentalities comprise one or more processors operable to instruct the plurality of
`nodes how to perform the operation using computer code.
`
`With Titus, our batch users are able to put together sophisticated
`infrastructure quickly due to having to only specify resource requirements.
`Users no longer have to deal with choosing and maintaining AWS EC2
`instance sizes that don’t always perfectly fit their workload. Users trust
`Titus to pack larger instances efficiently across many workloads. Batch
`users develop code locally and then immediately schedule it for scaled
`execution on Titus. Using containers, Titus runs any batch application
`letting the user specify exactly what application code and dependencies are
`needed. For example, in machine learning training we have users running a
`mix of Python, R, Java and bash script applications.
`
`. . .
`
`Titus Details
`
`We have already covered what led us to build Titus. Now, let’s dig into the
`details of how Titus provides these values. We will provide a brief overview
`
`
`
`Page 26 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000026
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`of how Titus scheduling and container execution supports the service and
`batch job requirements as shown in the below diagram.
`
`
`
`Titus System Level View
`
`Titus supports both service jobs that run “forever” and batch jobs that run
`“until done”.
`
`Service jobs restart failed instances and are autoscaled to maintain a
`changing level of load. Batch jobs are retried according to policy and run to
`completion.
`
`Titus offers multiple SLA’s for resource scheduling. Titus offers on-
`demand capacity for ad hoc batch and non-critical internal services by
`autoscaling capacity in EC2 based on current needs. Titus also offers pre-
`provisioned guaranteed capacity for user facing workloads and more critical
`batch. The scheduler does both bin packing for efficiency across larger
`virtual machines and anti-affinity for reliability spanning virtual machines
`and availability zones. The foundation of this scheduling is a Netflix open
`source library called Fenzo.
`
`
`
`Page 27 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000027
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`https://netflixtechblog.com/the-evolution-of-container-usage-at-netflix-3abfc096781b
`
`Work in Titus is described by a job specification that details what to run
`(e.g., a container image and entry point), metadata (e.g., the job's purpose
`and who owns it), and what resources are required to run it, such as CPU,
`memory, or scheduling constraints (e.g., availability zone balancing or host
`affinity). Job specifications are submitted to the master and consist of a
`number of tasks that represent an individual instance of a running
`application. The master schedules tasks onto Titus agents that launch
`containers based on the task's job specification.
`
`Overview, Titus, https://netflix.github.io/titus/overview/
`
`curl -X POST --header 'Content-Type: application/json' --header 'Accept:
`application/json' -d '{
` "applicationName": "library/ubuntu",
` "version": "latest",
` "type": "batch",
` "entryPoint": "sleep 10",
` "instances": 1,
` "cpu": 1,
` "memory": 1024,
` "disk": 1000,
` "networkMbps": 128
` }' 'http://GATEWAYIP:7001/api/v2/jobs'
`https://netflix.github.io/titus/test/batch/
`
`Titus
`
`Titus is a container management platform that provides scalable and reliable
`container execution and cloud-native integration with Amazon AWS. Titus
`was built internally at Netflix and is used in production to power Netflix
`streaming, recommendation, and content systems.
`
`
`
`Page 28 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000028
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`Titus provides the following:
`
`• A production ready container platform. Titus is run in production
`at Netflix, managing thousands of AWS EC2 instances and
`launching hundreds of thousands of containers daily for both batch
`and service workloads.
`
`• Cloud-native integrations with AWS. Titus integrates with AWS
`services, such as VPC networking, IAM and Security Group
`concepts, Application Load Balancing, and EC2 capacity
`management. These integrations enable many cloud services to
`work seamlessly with containers.
`
`• Netflix OSS integration. Titus works natively with many existing
`including Spinnaker, Eureka, Archaius,
`Netflix OSS projects,
`and Atlas among others.
`
`• Docker-native container execution. Titus can run
`images
`packaged as Docker containers while providing additional security
`and reliability around container execution.
`
`https://netflix.github.io/titus/
`
`Docker objects
`
`When you use Docker, you are creating and using images, containers,
`networks, volumes, plugins, and other objects. This section is a brief
`overview of some of those objects.
`
`IMAGES
`
`An image is a read-only template with instructions for creating a Docker
`container. Often, an image is based on another image, with some additional
`customization. For example, you may build an image which is based on
`
`
`
`Page 29 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000029
`
`

`

`EXHIBIT B—INFRINGEMENT CONTENTION CHART FOR U.S. PATENT NO. 8,656,419 (the “Medeiros ’419 Patent”)
`
`the ubuntu image, but installs the Apache web server and your application,
`as well as the configuration details needed to make your application run.
`
`You might create your own images or you might only use those created by
`others and published in a registry. To build your own image, you create
`a Dockerfile with a simple syntax for defining the steps needed to create the
`image and run it. Each instruction in a Dockerfile creates a layer in the
`image. When you change the Dockerfile and rebuild the image, only those
`layers which have changed are rebuilt. This is part of what makes images
`so lightweight, small, and fast, when compared to other virtualization
`technologies.
`
`CONTAINERS
`
`A container is a runnable instance of an image. You can create, start, stop,
`move, or delete a container using the Docker API or CLI. You can connect
`a container to one or more networks, attach storage to it, or even create a
`new image based on its current state.
`
`By default, a container is relatively well isolated from other containers and
`its host machine. You can control how isolated a container’s network,
`storage, or other underlying subsystems are from other containers or from
`the host machine.
`
`A container is defined by its image as well as any configuration options you
`provide to it when you create or start it. When a container is removed, any
`changes to its state that are not stored in persistent storage disappear.
`
`Docker Overview, Docker Docs, https://docs.docker.com/get-started/overview/
`
`Pods
`
`Pods are the smallest deployable units of computing that you can create and
`manage in Kubernetes.
`
`
`
`Page 30 of 93
`
`
`
`
`
`Netflix, Inc. - Ex. 1019, Page 000030
`
`

`

`EXHIBIT B—INFRINGEMEN

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket