51
Season 3 Episode 2 Oct 14, 2015

Netflix Open Source Meetup Season 3 Episode 2

  • Upload
    aspyker

  • View
    11.023

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Netflix Open Source Meetup Season 3 Episode 2

Season 3 Episode 2Oct 14, 2015

Page 2: Netflix Open Source Meetup Season 3 Episode 2

Welcome!

Page 3: Netflix Open Source Meetup Season 3 Episode 2

Agenda

NetflixOSS Website Relaunch @aspykerFenzo @podilaVector @spiermarLinux Java perf support @brendangreggFIDO, Sleepy Puppy, Lemur @chanjbsFalcor @jhusain

Page 4: Netflix Open Source Meetup Season 3 Episode 2

Website Relaunch

http://netflix.github.io

Page 5: Netflix Open Source Meetup Season 3 Episode 2

Goals of the Relaunch● Show how the pieces fit together

○ Projects now discussed with each other in context

● OSS categories mirror internal teams○ No artificial categories, focal points for each area

● Focus on projects that are core to Netflix○ Projects mentioned are core and strategic

● Adding project-branded websites

Page 6: Netflix Open Source Meetup Season 3 Episode 2

High Level Categories

Big DataTools and services for (big) data

Build and Delivery ToolsTaking code from desktop to the cloud

Common Runtimes Service & LibrariesRuntime containers, libraries & services that power microservices

Page 7: Netflix Open Source Meetup Season 3 Episode 2

High Level Categories

Data PersistenceStoring and serving data in the cloud

Insight, Reliability and PerformanceProviding actionable insight at massive scale

Page 8: Netflix Open Source Meetup Season 3 Episode 2

High Level Categories

SecuritySecurity for dynamic and distributed environments

User InterfaceLibraries to help you build rich client applications

Page 9: Netflix Open Source Meetup Season 3 Episode 2

Fenzo

A generic, plug-ins based scheduling library for Apache Mesos frameworks

Page 10: Netflix Open Source Meetup Season 3 Episode 2

Fenzo scheduling library

Heterogeneous resources

Autoscaling of cluster

Visibility of scheduler actions

Plugins forConstraints, Fitness

High speed

Heterogeneous task requests

Page 11: Netflix Open Source Meetup Season 3 Episode 2

Fenzo: scheduling model

Fitness

Pending

Assigned

Urg

ency

Page 12: Netflix Open Source Meetup Season 3 Episode 2

Fenzo: scheduling optimizationsSpeed Accuracy

First fit assignment Optimal assignment

Real world tradeoffs~ O (1) ~ O (N * M)1

1 Assuming tasks are not reassigned

Page 13: Netflix Open Source Meetup Season 3 Episode 2

Fenzo: fitness, constraints plugins

● Fitness value (0.0 - 1.0)○ Degree of fitness - first fit, best fit, worst fit○ Composable evaluators○ e.g., bin packing

● Constraints○ Hard constraints filter appropriate resources○ Soft constraints specify preferences○ e.g., zone balancing, instance type preferences

Page 14: Netflix Open Source Meetup Season 3 Episode 2

Fenzo: bin packing experimentBin pack tasks using Fenzo’s built-in CPU bin packer

Page 15: Netflix Open Source Meetup Season 3 Episode 2

Fenzo: cluster autoscaling

ASG/Cluster: mantisagentMinIdle: 8MaxIdle: 20CooldownSecs: 360

ASG/Cluster: mantisagentMinIdle: 8MaxIdle: 20CooldownSecs: 360

ASG/cluster: computeCluster

MinIdle: 8MaxIdle: 20CooldownSecs: 360

Fenzo

ScaleUp action:

Cluster, N

ScaleDown action:Cluster, HostList

Page 16: Netflix Open Source Meetup Season 3 Episode 2

Fenzo: what’s next

● Task management SLAs● Support for newer Mesos features● Collaboration

Page 17: Netflix Open Source Meetup Season 3 Episode 2
Page 18: Netflix Open Source Meetup Season 3 Episode 2

Why?● Easier way for users to troubleshoot

performance issues● Access to low-level and specialized metrics● Easier way to visualize and understand● High-resolution data to detect anomalies ● Real-time and on-demand● No additional overhead when not in use● Something easier than SSH● And simpler than full-fledged monitoring

solution

Page 19: Netflix Open Source Meetup Season 3 Episode 2

What?● Is a Performance Monitoring tool● Host-Level, On-Demand, High-Resolution Metrics (1 second)● Client-side Application, User-friendly web UI● Configurable dashboards and widgets● Leverages Performance Co-Pilot (PCP)● Stateless and Lightweight Metric Collection ● No persistence ● System Metrics: CPU, Memory, Network, Disk, ...

● Application Metrics*: Java, Memcached, C*, ElasticSearch, Apache

● Extensible. Custom metric agents and widgets.

* Agents are available, but not included by default.

Page 20: Netflix Open Source Meetup Season 3 Episode 2
Page 21: Netflix Open Source Meetup Season 3 Episode 2
Page 22: Netflix Open Source Meetup Season 3 Episode 2

What’s Next?● Interface for different backends● Better support for containers;

○ With container-specific dashboard and widgets.● Native flame graph integration;

○ With our d3.js flame graph plugin.

Page 23: Netflix Open Source Meetup Season 3 Episode 2

CPU Flame Graphs

Page 24: Netflix Open Source Meetup Season 3 Episode 2

Java Mixed-Mode Flame Graphs

● Needs JDK8u60+ with-XX:+PreserveFramePointer○ May have some cost

● Lets Linux perf (perf_events) see Java method frames

● Use with perf-map-agent for symbols

● http://techblog.netflix.com/2015/07/java-in-flames.html

Java

Kernel

JVMGC

Page 25: Netflix Open Source Meetup Season 3 Episode 2

See all the things...

Page 26: Netflix Open Source Meetup Season 3 Episode 2

D3.js Flame Graph Plugin

Page 27: Netflix Open Source Meetup Season 3 Episode 2

Netflix Security OSS

Page 28: Netflix Open Source Meetup Season 3 Episode 2

FIDO - Security Response Orchestration

● Centralize alerts● Enrich with data

○ User, machine○ Threat

● Prioritize response● Automate first

actions

Netflix's FIDO is not a part of or service of the FIDO Alliance

Page 29: Netflix Open Source Meetup Season 3 Episode 2

Cross-Site Scripting

Page 30: Netflix Open Source Meetup Season 3 Episode 2

Sleepy Puppy - XSS Testing Framework

● Visibility for non-targeted vulnerable apps

● Assessment management over time

Page 31: Netflix Open Source Meetup Season 3 Episode 2

Sleepy Puppy - Assessments and Payloads

Page 32: Netflix Open Source Meetup Season 3 Episode 2

TLS Certificate Management

Page 33: Netflix Open Source Meetup Season 3 Episode 2

Lemur - x.509 Certificate Orchestration

● Pluggable CA support

● Private key management and distribution

● Expiry monitoring

Page 34: Netflix Open Source Meetup Season 3 Episode 2

Lemur Certificate Request

Page 35: Netflix Open Source Meetup Season 3 Episode 2
Page 36: Netflix Open Source Meetup Season 3 Episode 2

Every user wants to believe the entire cloud is sitting right on their device.

Page 37: Netflix Open Source Meetup Season 3 Episode 2

Falcor let’s you code that way.

Page 38: Netflix Open Source Meetup Season 3 Episode 2

Let's talk about REST.

Page 39: Netflix Open Source Meetup Season 3 Episode 2

The Web used to be a place to get things.

Page 40: Netflix Open Source Meetup Season 3 Episode 2

Today, the Web is a place to do things.

Page 41: Netflix Open Source Meetup Season 3 Episode 2

Web pages use a small number of large resources.

Page 42: Netflix Open Source Meetup Season 3 Episode 2

Web apps use large numbers of small resources.

Page 43: Netflix Open Source Meetup Season 3 Episode 2

What is ?

Page 44: Netflix Open Source Meetup Season 3 Episode 2

Falcor is not a replacement for your Database,MVC Framework, or your Web Server.

Page 45: Netflix Open Source Meetup Season 3 Episode 2

Falcor fits into your existing stack,allowing the layers to communicate

more efficiently.

Page 46: Netflix Open Source Meetup Season 3 Episode 2

model.json

Page 47: Netflix Open Source Meetup Season 3 Episode 2

Demo

Page 48: Netflix Open Source Meetup Season 3 Episode 2
Page 49: Netflix Open Source Meetup Season 3 Episode 2

Falcor

● Designed for needs of Web Apps● Model domain with JSON Graph● Optimizes Data Access using...

○ caching○ batching○ path optimization

Page 50: Netflix Open Source Meetup Season 3 Episode 2

Falcor Roadmap

● netflix.github.io/falcor● Java version of Router coming● iOS client coming

Page 51: Netflix Open Source Meetup Season 3 Episode 2

Wrapup

● Thanks for attending!

● Join us in the courtyard for food and drinks