• Stars
    star
    147
  • Rank 251,347 (Top 5 %)
  • Language
    Groovy
  • Created over 10 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Scripts and instructions for Zero To Cloud With NetflixOSS

Zero To Cloud With @NetflixOSS

Netflix has released a multitude of tools and applications to help in using the Cloud. Being infrastructure, they are more difficult to setup that just consuming a client library like a JAR in Central. In general, each application can run independently, but they work better together. This tutorial is focused on bringing up the @NetflixOSS stack on a fresh AWS account, in a similar style to how Netflix does it internally.

Feedback is always appreciated, please file an issue or a pull request to participate.

This page can be reached as nflx.it/zerotocloud

Assumptions

  • Working in US West (Oregon) aka us-west-2.
  • We’re performing non destructive operations, so if you have an existing AWS account setup, that will be fine and they won’t conflict. But it might be easier to find instances, etc if using a new region.
  • In the case of existing infrastructure, like keys, please follow the instructions closely and do not re-use existing provisioned items. I wouldn’t want to be responsible for opening up a security hole in existing infrastructure.
  • There are plenty of opportunities to lock down these applications at the network layer or the application layer. Or restrict what the instances can do. References will be made to additional security precautions, but they have not all been integrated into this tutorial.
  • This is not a "developing for the cloud" tutorial, that would make for a great followup.
  • This will cost money. Not much, but some.

Tutorial

  1. Sign up for AWS
  2. Log into AWS Console
  3. Create Key Pair
  4. Create Jumphost
  5. Create a role
  6. Create a user
  7. Create Security Group for ELBs
  8. Create Foundation AMI
  9. Setup Jumphost
  10. Setup Credentials
  11. Build and Bake BaseAMI
  12. Build and Bake Asgard
  13. Standup Asgard using Asgard
  14. Build and Bake Edda
  15. Build and Bake Eureka

When all done, irrelevant of how far you get, make sure to read the Clean up instructions below so that you don't get charged for resources that you're not using.

Extras

Setting up infrastructure can be frought with problems, so if you've made this far, congratulate yourself! Here are some additional exercises, which can help expand your knowledge of the Netflix stack or of AWS in general.

Clean up

The actions taken in this tutorial have create resources which AWS will charge you for. A couple of hours of usage won't add up to much. If you accidentally leave our instances running your volumes allocated, the costs can add up fast.

  1. In Asgard, Delete all AutoScaling Groups
  2. In Asgard, Delete all Load Balancers
  3. In Asgard, Delete all Security Groups
  4. In Asgard, Delete all Applications (these are stored in SimpleDB and miniscule in size)
  5. In the EC2 Console, go to the AMI page and de-register all of the AMIs you created
  6. In the EC2 Console, go to the snapshots section, delete all of the snapshots

FYI, The last two items would normally be cleaned up by Janitor monkey.

TODO

  • UDF variables from Asgard aren’t in the ubuntu user’s env
  • Have versions of modules match what is being wrapped
  • Stop tomcat on karyon instance
  • Multiple Eureka instances in different zones.

More Repositories

1

Scumblr

Web framework that allows performing periodic syncs of data sources and performing analysis on the identified results
Ruby
2,643
star
2

stethoscope

Personalized, user-focused recommendations for employee information security.
Python
2,002
star
3

sleepy-puppy

Sleepy Puppy XSS Payload Management Framework
JavaScript
1,029
star
4

sketchy

A task based API for taking screenshots and scraping text from websites.
JavaScript
996
star
5

diffy

â›” (DEPRECATED) Diffy is a triage tool used during cloud-centric security incidents, to help digital forensics and incident response (DFIR) teams quickly identify suspicious hosts on which to focus their response.
Python
632
star
6

riskquant

Python
609
star
7

aardvark

Aardvark is a multi-account AWS IAM Access Advisor API
Python
470
star
8

stethoscope-app

A desktop application that checks security-related settings and makes recommendations for improvements without requiring central device management or automated reporting.
JavaScript
457
star
9

policyuniverse

Parse and Process AWS IAM Policies, Statements, ARNs, and wildcards.
Python
421
star
10

zerotodocker

Dockerfiles to be used to create Dockerhub trusted builds of NetflixOSS
Python
407
star
11

rewrite

Distributed code search and refactoring for Java
Java
291
star
12

gcviz

Garbage Collector Visualization Tool/Framework
Python
266
star
13

repulsive-grizzly

Application Layer DoS Testing Framework
Python
244
star
14

hystrix-dashboard

JavaScript
233
star
15

jvmquake

A JVMTI agent that attaches to your JVM and kills it when things go sideways
Python
154
star
16

bpftoolkit

Shell
128
star
17

aws-credential-compromise-detection

Example detection of compromise credentials in AWS
Python
118
star
18

WSPerfLab

Project for testing web-service implementations.
Java
116
star
19

UnrealValidationFramework

C++
111
star
20

cloudy-kraken

AWS Red Team Orchestration Framework
Python
102
star
21

historical

A serverless, event-driven AWS configuration collection service with configuration versioning.
Python
93
star
22

jenkins-cli

Simple Jenkins Command Line Interface
Perl
91
star
23

swag-client

Cloud multi-account metadata management tool.
Python
87
star
24

cloudtrail-anomaly

Python
82
star
25

cloudaux

Cloud Auxiliary is a python wrapper and orchestration module for interacting with cloud providers
Python
76
star
26

aws-metadata-proxy

AWS Metadata Proxy for protection against SSRF
Go
69
star
27

service-capacity-modeling

Python
61
star
28

titus-isolate

Python
55
star
29

skunky

Marking instances dirty since 2018
Python
47
star
30

raven-python-lambda

Sentry/Raven SDK Integration For AWS Lambda (python) and Serverless
Python
47
star
31

dynaslave-plugin

Jenkins DynaSlave plugin
Java
46
star
32

s3-flash-bootloader

A tool for flashing OS images onto stateful servers
Shell
45
star
33

rl_for_budget_constrained_recs

Jupyter Notebook
41
star
34

logstash-configs

Logstash Configs used by Netflix
31
star
35

spectatord

A high performance metrics daemon
C++
25
star
36

framerate-utils

Useful conversion utilities for working with video frame rate and display
TypeScript
17
star
37

qiro

The Qiro Project
Java
17
star
38

listening-test-app

C++
16
star
39

iep-apps

Example apps using Netflix Insight libraries from the Spectator, Atlas, and IEP projects.
Scala
15
star
40

zerotocloud-gradle

Gradle Plugin to Initialize the Cloud Environment and Utilize it for Continuous Delivery Purposes
Groovy
15
star
41

stethoscope-examples

Example Express application for collecting data from the Stethoscope app
HTML
14
star
42

bucketsnake

An AWS lambda function that grantsss S3 permissionsss at ssscale.
Python
14
star
43

causaltransportr

R package to generalize and transport causal effects.
R
12
star
44

Numerus

Counters, Percentiles, etc for in-memory metrics capture.
Java
12
star
45

mesos-on-pi

Shell
12
star
46

nfflink-connector-iceberg

Java
11
star
47

swag-api

REST API and UI for SWAG data
Python
10
star
48

repokid-extras

Python
10
star
49

raven-sqs-proxy

A Raven/Sentry SQS message proxy forwarder
Python
10
star
50

atlas-node-client

C++
10
star
51

post2crucible

Crucible code review uploader client
Java
8
star
52

StethoscopeMobile

JavaScript
8
star
53

netflixoss-dsl-seed

DSL Scripts to create build jobs for @NetflixOSS projects
Groovy
7
star
54

grails-jade

Grails plugin for rendering Jade templates with the spring-jade4j library
Groovy
6
star
55

spectator-js-nodejsmetrics

Generate node.js internal metrics using the nflx-spectator node module
JavaScript
6
star
56

historical-reports

Lambda functions to generate report artifacts from Historical
Python
6
star
57

cligraphy

Python
5
star
58

atlas-system-agent

Agent that reports system metrics through SpectatorD.
C++
5
star
59

node-pagerduty-netflix

pagerduty REST API interface in node.js
JavaScript
5
star
60

swag-functions

Lambda functions for SWAG management
Python
4
star
61

ng-nflx

Miscellaneous utilities for AngularJS
JavaScript
4
star
62

grails-context-param

Grails plugin to automatically add parameters specified as @ContextParam on a controller to redirect calls.
Groovy
4
star
63

hive2iceberg-migration

Scala
3
star
64

ec2blockdevcfg

Tools and configuration for Amazon EC2 NVMe block devices
Python
2
star
65

kmd

JavaScript
2
star
66

atlas-native-client

C++
2
star
67

qiro-logo

Code for generating the qiro logo
Java
2
star
68

corepipe

Rust
2
star
69

flagpole

Flag arg parser to build out a dictionary with optional keys.
Python
1
star
70

scumblr-spillguard

Python
1
star
71

adversarial_approach_to_recommender_systems

Python
1
star