SlideShare une entreprise Scribd logo
1  sur  64
Zero to the Cloud 
with @NetflixOSS 
Mike McGarr 
mmcgarr@netflix.com 
@SonOfGarr 
http://www.MikeMcGarr.com
about me 
• J. Michael (Mike) McGarr 
• Engineering Manager, Netflix Build Tools 
• Founder, DC Continuous Delivery Meetup 
• Former Director of DevOps, Blackboard 
• Excella Consulting 
• Booz Allen Hamilton 
11/17/14 @SonOfGarr 2
11/17/14 @SonOfGarr 3
11/17/14 @SonOfGarr 4
@NetflixOSS 
11/17/14 @SonOfGarr http://netflix.github.io 5
11/17/14 @SonOfGarr 6
The Netflix Way 
Everything is “built for three” 
Fully automated build tools to 
test and make packages 
Fully automated machine 
image bakery 
11/17/14 @SonOfGarr 7
The Netflix Way 
Fully automated image deployment 
Service teams responsible for both 
“Dev” and “Ops” 
Redundancy through multi-region 
deployment 
11/17/14 @SonOfGarr 8
cloud native 
11/17/14 @SonOfGarr 9
microservices (soa) 
11/17/14 @SonOfGarr 10
11/17/14 @SonOfGarr 11
Zero to the Cloud 
• Stand-up your own 
NetflixOSS cloud 
• Aminator 
• BaseAMI 
• Asgard 
• Edda 
• Eureka 
http://nflx.it/zerotocloud 
11/17/14 @SonOfGarr 12
foundations 
• account setup 
• user, roles, security groups 
• jumphost 
• foundation AMI 
11/17/14 @SonOfGarr 13
BUILD/BAKE 
11/17/14 @SonOfGarr 14
immutable servers 
• new os image per code 
change 
• never change running 
instances 
• avoid configuration drift 
http://martinfowler.com/bliki/ImmutableServer.html 
11/17/14 @SonOfGarr 15
Nebula 
• Netflix Build Language 
• Gradle plugins 
http://github.com/nebula-plugins 
11/17/14 @SonOfGarr 16
Nebula Plugins 
• gradle-ospackage-plugin 
• gradle-dependency-lock-plugin 
• gradle-extra-configurations-plugin 
• gradle-blacklist-plugin 
• gradle-override-plugin 
• gradle-stash-plugin 
• gradle-scm-plugin 
• gradle-contacts-plugin 
• gradle-info-plugin 
• nebula-ospackage-plugin 
• nebula-test 
• nebula-project-plugin 
• nebula-release-plugin 
• nebula-bintray-plugin 
• nebula-publishing-plugin 
• nebula-metrics-plugin 
11/17/14 @SonOfGarr 17
gradle-ospackage-plugin 
• produce rpm or 
debian packages 
from Gradle build 
• can be used for 
non-java apps 
11/17/14 @SonOfGarr 18
11/17/14 @SonOfGarr 19
Baking 
• app. code installed as OS package 
• unit of deployment = AMI 
11/17/14 @SonOfGarr 20
BaseAMI 
11/17/14 @SonOfGarr 21
Aminator 
• python library used 
to “bake” EBS AMI’s 
• must bake per 
region 
• works with system 
packages, Chef, 
Puppet, Ansible, etc 
11/17/14 @SonOfGarr 22
sudo aminate  
-e ec2_aptitude_linux  
-b ubuntu-foundation  
-n ubuntu-base-ami  
baseami/build/distributions/baseami_1.0.0_all.deb 
11/17/14 @SonOfGarr 23
DEPLOYMENTS 
11/17/14 @SonOfGarr 24
AWS “applications” 
11/17/14 @SonOfGarr 25
AWS “applications” 
11/17/14 @SonOfGarr 26
asgard 
• Netflix AWS console 
• Provides “app” 
abstraction 
• Hides AWS keys 
• NetflixOSS 
https://github.com/Netflix/asgard 
11/17/14 @SonOfGarr 27
red/black deployments 
11/17/14 @SonOfGarr 28
red/black deployments 
11/17/14 @SonOfGarr 29
red/black deployments 
11/17/14 @SonOfGarr 30
canary releases 
11/17/14 @SonOfGarr 31
inventing clusters 
11/17/14 @SonOfGarr 32
without asgard 
aws ec2 create-security-group --group-name asgard-sg 
aws ec2 authorize-security-group-ingress --group-id sg-123456 --protocol tcp --port 22  
--cidr 0.0.0.0/0 
aws elb create-load-balancer --load-balancer-name asgard-lb  
–listeners Protocol=string,LoadBalancerPort=80,InstanceProtocol=http,InstancePort=7001 
aws autoscaling create-launch-configuration --launch-configuration-name asgard-lc  
--image-id ami-XXX --key-name zerotocloud --security-groups asgard-sg  
--instance-type m3.medium --iam-instance-profile jumphost 
aws autoscaling create-auto-scaling-group --auto-scaling-group-name asgard-v000  
--launch-configuration-name asgard-lc  
--min-size 1 --max-size 1 --desired-capacity 1  
--availability-zones us-west-2b  
--load-balancer-names asgard-lb  
--tags ResourceId=string,ResourceType=string,Key=string,Value=string,PropagateAtLaunch=boolean 
11/17/14 @SonOfGarr 33
CLOUD INFRASTRUCTURE 
11/17/14 @SonOfGarr 34
service discovery? 
• ephemeral nature of the cloud 
– instances come and go 
– ASG’s come and go 
• need to register/de-register a server 
• load balance middle-tier services w/o public 
exposure 
11/17/14 @SonOfGarr 35
eureka 
• REST-based server 
• Java-based client 
https://github.com/Netflix/eureka 
11/17/14 @SonOfGarr 36
eureka 
11/17/14 @SonOfGarr 37
state of the cloud? 
• your cloud is dynamic: 
– new instances 
– IP address reuse 
– new firewalls 
• I want to track changes over time 
– not provided by AWS 
11/17/14 @SonOfGarr 38
edda 
• polls AWS resources 
• quick search via REST API 
• changes over time 
• architecture: 
– Scala 
– MongoDB backend 
11/17/14 @SonOfGarr 39
cloud persistence 
• a variety of NoSQL persistence needs 
• utilize open source 
• Problems: 
– not cloud native 
– poor operational features 
http://techblog.netflix.com/2011/01/nosql-at-netflix.html 
11/17/14 @SonOfGarr 40
sidecar 
11/17/14 @SonOfGarr 41
priam 
Cassandra instance sidecar 
– backup and recovery 
– token management 
– Seed discovery 
– Configuration 
– Support AWS environment 
https://github.com/Netflix/priam 
11/17/14 @SonOfGarr 42
raigad 
ElasticSearch instance sidecar 
– backup and restore 
– configured deployments 
– tribe node deployments 
– publish metrics 
– support AWS environment 
https://github.com/Netflix/raigad 
11/17/14 @SonOfGarr 43
exhibitor 
ZooKeeper instance sidecar 
– Performs periodic backups 
– Perform periodic cleaning of 
ZK log directory 
– A GUI explorer for viewing 
ZK nodes 
– A rich REST API 
11/17/14 @SonOfGarr 44
SERVICE ARCHITECTURE 
11/17/14 @SonOfGarr 45
Java microservices 
11/17/14 @SonOfGarr 46
ribbon 
• cloud IPC library 
– pluggable load balancing 
rules 
– eureka integration 
– archauis integration 
– cloud enabled 
https://github.com/Netflix/ribbon 
11/17/14 @SonOfGarr 47
11/17/14 @SonOfGarr 48
hystrix 
• Latency & fault tolerance 
for distributed systems 
– circuit breaker pattern 
– realtime operations 
https://github.com/Netflix/Hystrix 
11/17/14 @SonOfGarr 49
11/17/14 @SonOfGarr 50
hystrix dashboard 
https://github.com/Netflix/Hystrix/wiki/Dashboard 
11/17/14 @SonOfGarr 51
archaius 
• Java library for dynamic 
runtime properties 
https://github.com/Netflix/archaius 
11/17/14 @SonOfGarr 52
evcache 
• distributed in-memory caching 
– based on memchached & 
spymemcached 
• EVCache: 
– Elastic 
– Volatile 
– Cache 
https://github.com/Netflix/EVCache 
11/17/14 @SonOfGarr 53
servo 
• expose applications 
metrics 
– gauges 
– counters 
– timers 
https://github.com/Netflix/servo 
11/17/14 @SonOfGarr 54
astayanax 
• Java Cassandra client 
• fluent API 
• cloud native 
https://github.com/Netflix/astyanax 
11/17/14 @SonOfGarr 55
governator 
• Google Guice extensions 
– classpath scanning 
– lifecycle management 
– field validation 
– lazy singleton 
https://github.com/netflix/Governator 
11/17/14 @SonOfGarr 56
karyon 
• nucleus of Netflix 
platform 
– governator bootstrap 
– admin console 
– health checks 
– discovery 
https://github.com/Netflix/karyon 
11/17/14 @SonOfGarr 57
prana 
Generic sidecar w/ HTTP 
access to Java clients for: 
– Eureka 
– Ribbon 
– Archauis 
– health checks 
11/17/14 @SonOfGarr 58
CHAOS 
11/17/14 @SonOfGarr 59
chaos monkey 
11/17/14 @SonOfGarr 60
simian army 
• chaos monkey 
• janitor monkey 
• compliance monkey 
• security monkey 
https://github.com/Netflix/SimianArmy 
11/17/14 @SonOfGarr 61
http://nflx.it/1v4H7yi 
11/17/14 @SonOfGarr 62
11/17/14 @SonOfGarr 63
We are Hiring! 
Senior Cloud Tools Engineer 
http://nflx.it/140BnJN 
Senior Tooling Integration Engineer 
Mike McGarr 
mmcgarr@netflix.com 
@SonOfGarr 
http://www.mikemcgarr.com 
http://nflx.it/1xyhkeD 
11/17/14 @SonOfGarr 64

Contenu connexe

Tendances

Tendances (20)

TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
 
Github in Action
Github in ActionGithub in Action
Github in Action
 
GitHub Actions with Node.js
GitHub Actions with Node.jsGitHub Actions with Node.js
GitHub Actions with Node.js
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub Actions
 
Teaching a Designer to Use GitHub
Teaching a Designer to Use GitHubTeaching a Designer to Use GitHub
Teaching a Designer to Use GitHub
 
GitHub Actions demo with mabl
GitHub Actions demo with mablGitHub Actions demo with mabl
GitHub Actions demo with mabl
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Codecoon - A technical Case Study
Codecoon - A technical Case StudyCodecoon - A technical Case Study
Codecoon - A technical Case Study
 
vBrownBag DevOps Series: Puppetinabox
vBrownBag DevOps Series: PuppetinaboxvBrownBag DevOps Series: Puppetinabox
vBrownBag DevOps Series: Puppetinabox
 
CI/CD with GitHub Actions
CI/CD with GitHub ActionsCI/CD with GitHub Actions
CI/CD with GitHub Actions
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 
Introduction to GitHub Actions
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
 
GitHub Actions in action
GitHub Actions in actionGitHub Actions in action
GitHub Actions in action
 
Git basics, Team Workflows (Ciro Miranda)
Git basics, Team Workflows (Ciro Miranda)Git basics, Team Workflows (Ciro Miranda)
Git basics, Team Workflows (Ciro Miranda)
 
ChatOps in Action
ChatOps in ActionChatOps in Action
ChatOps in Action
 
Using GitHub Actions to Deploy your Workloads to Azure
Using GitHub Actions to Deploy your Workloads to AzureUsing GitHub Actions to Deploy your Workloads to Azure
Using GitHub Actions to Deploy your Workloads to Azure
 
ConcourseCi Dockerimage
ConcourseCi DockerimageConcourseCi Dockerimage
ConcourseCi Dockerimage
 
Vagrant for Effective DevOps Culture
Vagrant for Effective DevOps CultureVagrant for Effective DevOps Culture
Vagrant for Effective DevOps Culture
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 

En vedette

E marketer whats_a_brand_site_for_engaging_consumers_across_multiple_channels
E marketer whats_a_brand_site_for_engaging_consumers_across_multiple_channelsE marketer whats_a_brand_site_for_engaging_consumers_across_multiple_channels
E marketer whats_a_brand_site_for_engaging_consumers_across_multiple_channels
AdCMO
 
The wanted then and now
The wanted then and nowThe wanted then and now
The wanted then and now
Yvonne
 
第11回
第11回第11回
第11回
rbgri
 
Software architecture3
Software architecture3Software architecture3
Software architecture3
Ahmad Zee
 
Theancient mayaarefamousfortheirknowledgeofthestars.docx
Theancient mayaarefamousfortheirknowledgeofthestars.docxTheancient mayaarefamousfortheirknowledgeofthestars.docx
Theancient mayaarefamousfortheirknowledgeofthestars.docx
Juan Mayne
 

En vedette (20)

Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
Infrastructure as Code (BBWorld/DevCon13)
Infrastructure as Code (BBWorld/DevCon13)Infrastructure as Code (BBWorld/DevCon13)
Infrastructure as Code (BBWorld/DevCon13)
 
Shepherding change: leading your DevOps transformation
Shepherding change: leading your DevOps transformationShepherding change: leading your DevOps transformation
Shepherding change: leading your DevOps transformation
 
Engineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous DeliveryEngineering Tools at Netflix: Enabling Continuous Delivery
Engineering Tools at Netflix: Enabling Continuous Delivery
 
Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)
 
NFV: Infrastructure as Code
NFV: Infrastructure as CodeNFV: Infrastructure as Code
NFV: Infrastructure as Code
 
E marketer whats_a_brand_site_for_engaging_consumers_across_multiple_channels
E marketer whats_a_brand_site_for_engaging_consumers_across_multiple_channelsE marketer whats_a_brand_site_for_engaging_consumers_across_multiple_channels
E marketer whats_a_brand_site_for_engaging_consumers_across_multiple_channels
 
Hybrid Development Workshop Presentation (San Francisco)
Hybrid Development Workshop Presentation (San Francisco)Hybrid Development Workshop Presentation (San Francisco)
Hybrid Development Workshop Presentation (San Francisco)
 
Infraestrutura como código
Infraestrutura como códigoInfraestrutura como código
Infraestrutura como código
 
얼리 버드 알람 사용법
얼리 버드 알람 사용법얼리 버드 알람 사용법
얼리 버드 알람 사용법
 
Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)Continuous delivery applied (DC CI User Group)
Continuous delivery applied (DC CI User Group)
 
The wanted then and now
The wanted then and nowThe wanted then and now
The wanted then and now
 
第11回
第11回第11回
第11回
 
Pip
PipPip
Pip
 
Software architecture3
Software architecture3Software architecture3
Software architecture3
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
 
עמית.ג
עמית.געמית.ג
עמית.ג
 
Transporte 1
Transporte 1Transporte 1
Transporte 1
 
Software architecture First Lecture
Software architecture First LectureSoftware architecture First Lecture
Software architecture First Lecture
 
Theancient mayaarefamousfortheirknowledgeofthestars.docx
Theancient mayaarefamousfortheirknowledgeofthestars.docxTheancient mayaarefamousfortheirknowledgeofthestars.docx
Theancient mayaarefamousfortheirknowledgeofthestars.docx
 

Similaire à Zero to the Cloud with @NetflixOSS

OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPONOpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
OpenNebula Project
 
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
PatrickCrompton
 

Similaire à Zero to the Cloud with @NetflixOSS (20)

AFNetworking
AFNetworking AFNetworking
AFNetworking
 
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackScaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
 
How Ansible Makes Automation Easy
How Ansible Makes Automation EasyHow Ansible Makes Automation Easy
How Ansible Makes Automation Easy
 
2014 11-05 hpcac-kniep_christian_dockermpi
2014 11-05 hpcac-kniep_christian_dockermpi2014 11-05 hpcac-kniep_christian_dockermpi
2014 11-05 hpcac-kniep_christian_dockermpi
 
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
DevOpsDays 2018 - Migrating a Cloud Native App to k8sDevOpsDays 2018 - Migrating a Cloud Native App to k8s
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
 
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems IntegrationJenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
Jenkins Pipeline @ Scale. Building Automation Frameworks for Systems Integration
 
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPONOpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
 
Kinect Workshop Part 1/2
Kinect Workshop Part 1/2Kinect Workshop Part 1/2
Kinect Workshop Part 1/2
 
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
eSynergy Andy Hawkins - Enabling DevOps through next generation configuration...
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Multi-tenant Flink as-a-service with Kafka on Hopsworks
Multi-tenant Flink as-a-service with Kafka on HopsworksMulti-tenant Flink as-a-service with Kafka on Hopsworks
Multi-tenant Flink as-a-service with Kafka on Hopsworks
 
Jim Dowling - Multi-tenant Flink-as-a-Service on YARN
Jim Dowling - Multi-tenant Flink-as-a-Service on YARN Jim Dowling - Multi-tenant Flink-as-a-Service on YARN
Jim Dowling - Multi-tenant Flink-as-a-Service on YARN
 
ASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & dockerASP.NET 5 auf Raspberry PI & docker
ASP.NET 5 auf Raspberry PI & docker
 
Google App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and GaelykGoogle App Engine Java, Groovy and Gaelyk
Google App Engine Java, Groovy and Gaelyk
 
Short-Training asp.net vNext
Short-Training asp.net vNextShort-Training asp.net vNext
Short-Training asp.net vNext
 
Devoxx 2017 "Continuous Delivery with Containers: The Good, the Bad, and the ...
Devoxx 2017 "Continuous Delivery with Containers: The Good, the Bad, and the ...Devoxx 2017 "Continuous Delivery with Containers: The Good, the Bad, and the ...
Devoxx 2017 "Continuous Delivery with Containers: The Good, the Bad, and the ...
 
Australian OpenStack User Group August 2012: Chef for OpenStack
Australian OpenStack User Group August 2012: Chef for OpenStackAustralian OpenStack User Group August 2012: Chef for OpenStack
Australian OpenStack User Group August 2012: Chef for OpenStack
 
Shipping NodeJS with Docker and CoreOS (No Notes)
Shipping NodeJS with Docker and CoreOS (No Notes)Shipping NodeJS with Docker and CoreOS (No Notes)
Shipping NodeJS with Docker and CoreOS (No Notes)
 
The Twelve Factor App - Pivotal Tracker
The Twelve Factor App - Pivotal TrackerThe Twelve Factor App - Pivotal Tracker
The Twelve Factor App - Pivotal Tracker
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014
 

Plus de Mike McGarr

Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
Mike McGarr
 

Plus de Mike McGarr (12)

Better DevEx at Netflix (QCon NY 2018)
Better DevEx at Netflix (QCon NY 2018)Better DevEx at Netflix (QCon NY 2018)
Better DevEx at Netflix (QCon NY 2018)
 
Productivity Engineering: Surviving DevOps
Productivity Engineering: Surviving DevOpsProductivity Engineering: Surviving DevOps
Productivity Engineering: Surviving DevOps
 
Engineering change: leading a transformation
Engineering change: leading a transformationEngineering change: leading a transformation
Engineering change: leading a transformation
 
Dependencies, distributed code and engineering velocity
Dependencies, distributed code and engineering velocityDependencies, distributed code and engineering velocity
Dependencies, distributed code and engineering velocity
 
Continuous Delivery at Netflix, and beyond
Continuous Delivery at Netflix, and beyondContinuous Delivery at Netflix, and beyond
Continuous Delivery at Netflix, and beyond
 
Build and deploy to the cloud using NetflixOSS (Gradle Summit 2016)
Build and deploy to the cloud using NetflixOSS (Gradle Summit 2016)Build and deploy to the cloud using NetflixOSS (Gradle Summit 2016)
Build and deploy to the cloud using NetflixOSS (Gradle Summit 2016)
 
Beyond the Culture Deck: What you don't already know about Netflix
Beyond the Culture Deck: What you don't already know about NetflixBeyond the Culture Deck: What you don't already know about Netflix
Beyond the Culture Deck: What you don't already know about Netflix
 
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
Introduction to Continuous Delivery (BBWorld/DevCon 2013)Introduction to Continuous Delivery (BBWorld/DevCon 2013)
Introduction to Continuous Delivery (BBWorld/DevCon 2013)
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 
Continuous delivery - tools and techniques
Continuous delivery - tools and techniquesContinuous delivery - tools and techniques
Continuous delivery - tools and techniques
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 

Dernier

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Zero to the Cloud with @NetflixOSS

  • 1. Zero to the Cloud with @NetflixOSS Mike McGarr mmcgarr@netflix.com @SonOfGarr http://www.MikeMcGarr.com
  • 2. about me • J. Michael (Mike) McGarr • Engineering Manager, Netflix Build Tools • Founder, DC Continuous Delivery Meetup • Former Director of DevOps, Blackboard • Excella Consulting • Booz Allen Hamilton 11/17/14 @SonOfGarr 2
  • 5. @NetflixOSS 11/17/14 @SonOfGarr http://netflix.github.io 5
  • 7. The Netflix Way Everything is “built for three” Fully automated build tools to test and make packages Fully automated machine image bakery 11/17/14 @SonOfGarr 7
  • 8. The Netflix Way Fully automated image deployment Service teams responsible for both “Dev” and “Ops” Redundancy through multi-region deployment 11/17/14 @SonOfGarr 8
  • 9. cloud native 11/17/14 @SonOfGarr 9
  • 12. Zero to the Cloud • Stand-up your own NetflixOSS cloud • Aminator • BaseAMI • Asgard • Edda • Eureka http://nflx.it/zerotocloud 11/17/14 @SonOfGarr 12
  • 13. foundations • account setup • user, roles, security groups • jumphost • foundation AMI 11/17/14 @SonOfGarr 13
  • 15. immutable servers • new os image per code change • never change running instances • avoid configuration drift http://martinfowler.com/bliki/ImmutableServer.html 11/17/14 @SonOfGarr 15
  • 16. Nebula • Netflix Build Language • Gradle plugins http://github.com/nebula-plugins 11/17/14 @SonOfGarr 16
  • 17. Nebula Plugins • gradle-ospackage-plugin • gradle-dependency-lock-plugin • gradle-extra-configurations-plugin • gradle-blacklist-plugin • gradle-override-plugin • gradle-stash-plugin • gradle-scm-plugin • gradle-contacts-plugin • gradle-info-plugin • nebula-ospackage-plugin • nebula-test • nebula-project-plugin • nebula-release-plugin • nebula-bintray-plugin • nebula-publishing-plugin • nebula-metrics-plugin 11/17/14 @SonOfGarr 17
  • 18. gradle-ospackage-plugin • produce rpm or debian packages from Gradle build • can be used for non-java apps 11/17/14 @SonOfGarr 18
  • 20. Baking • app. code installed as OS package • unit of deployment = AMI 11/17/14 @SonOfGarr 20
  • 22. Aminator • python library used to “bake” EBS AMI’s • must bake per region • works with system packages, Chef, Puppet, Ansible, etc 11/17/14 @SonOfGarr 22
  • 23. sudo aminate -e ec2_aptitude_linux -b ubuntu-foundation -n ubuntu-base-ami baseami/build/distributions/baseami_1.0.0_all.deb 11/17/14 @SonOfGarr 23
  • 27. asgard • Netflix AWS console • Provides “app” abstraction • Hides AWS keys • NetflixOSS https://github.com/Netflix/asgard 11/17/14 @SonOfGarr 27
  • 31. canary releases 11/17/14 @SonOfGarr 31
  • 33. without asgard aws ec2 create-security-group --group-name asgard-sg aws ec2 authorize-security-group-ingress --group-id sg-123456 --protocol tcp --port 22 --cidr 0.0.0.0/0 aws elb create-load-balancer --load-balancer-name asgard-lb –listeners Protocol=string,LoadBalancerPort=80,InstanceProtocol=http,InstancePort=7001 aws autoscaling create-launch-configuration --launch-configuration-name asgard-lc --image-id ami-XXX --key-name zerotocloud --security-groups asgard-sg --instance-type m3.medium --iam-instance-profile jumphost aws autoscaling create-auto-scaling-group --auto-scaling-group-name asgard-v000 --launch-configuration-name asgard-lc --min-size 1 --max-size 1 --desired-capacity 1 --availability-zones us-west-2b --load-balancer-names asgard-lb --tags ResourceId=string,ResourceType=string,Key=string,Value=string,PropagateAtLaunch=boolean 11/17/14 @SonOfGarr 33
  • 35. service discovery? • ephemeral nature of the cloud – instances come and go – ASG’s come and go • need to register/de-register a server • load balance middle-tier services w/o public exposure 11/17/14 @SonOfGarr 35
  • 36. eureka • REST-based server • Java-based client https://github.com/Netflix/eureka 11/17/14 @SonOfGarr 36
  • 38. state of the cloud? • your cloud is dynamic: – new instances – IP address reuse – new firewalls • I want to track changes over time – not provided by AWS 11/17/14 @SonOfGarr 38
  • 39. edda • polls AWS resources • quick search via REST API • changes over time • architecture: – Scala – MongoDB backend 11/17/14 @SonOfGarr 39
  • 40. cloud persistence • a variety of NoSQL persistence needs • utilize open source • Problems: – not cloud native – poor operational features http://techblog.netflix.com/2011/01/nosql-at-netflix.html 11/17/14 @SonOfGarr 40
  • 42. priam Cassandra instance sidecar – backup and recovery – token management – Seed discovery – Configuration – Support AWS environment https://github.com/Netflix/priam 11/17/14 @SonOfGarr 42
  • 43. raigad ElasticSearch instance sidecar – backup and restore – configured deployments – tribe node deployments – publish metrics – support AWS environment https://github.com/Netflix/raigad 11/17/14 @SonOfGarr 43
  • 44. exhibitor ZooKeeper instance sidecar – Performs periodic backups – Perform periodic cleaning of ZK log directory – A GUI explorer for viewing ZK nodes – A rich REST API 11/17/14 @SonOfGarr 44
  • 47. ribbon • cloud IPC library – pluggable load balancing rules – eureka integration – archauis integration – cloud enabled https://github.com/Netflix/ribbon 11/17/14 @SonOfGarr 47
  • 49. hystrix • Latency & fault tolerance for distributed systems – circuit breaker pattern – realtime operations https://github.com/Netflix/Hystrix 11/17/14 @SonOfGarr 49
  • 52. archaius • Java library for dynamic runtime properties https://github.com/Netflix/archaius 11/17/14 @SonOfGarr 52
  • 53. evcache • distributed in-memory caching – based on memchached & spymemcached • EVCache: – Elastic – Volatile – Cache https://github.com/Netflix/EVCache 11/17/14 @SonOfGarr 53
  • 54. servo • expose applications metrics – gauges – counters – timers https://github.com/Netflix/servo 11/17/14 @SonOfGarr 54
  • 55. astayanax • Java Cassandra client • fluent API • cloud native https://github.com/Netflix/astyanax 11/17/14 @SonOfGarr 55
  • 56. governator • Google Guice extensions – classpath scanning – lifecycle management – field validation – lazy singleton https://github.com/netflix/Governator 11/17/14 @SonOfGarr 56
  • 57. karyon • nucleus of Netflix platform – governator bootstrap – admin console – health checks – discovery https://github.com/Netflix/karyon 11/17/14 @SonOfGarr 57
  • 58. prana Generic sidecar w/ HTTP access to Java clients for: – Eureka – Ribbon – Archauis – health checks 11/17/14 @SonOfGarr 58
  • 60. chaos monkey 11/17/14 @SonOfGarr 60
  • 61. simian army • chaos monkey • janitor monkey • compliance monkey • security monkey https://github.com/Netflix/SimianArmy 11/17/14 @SonOfGarr 61
  • 64. We are Hiring! Senior Cloud Tools Engineer http://nflx.it/140BnJN Senior Tooling Integration Engineer Mike McGarr mmcgarr@netflix.com @SonOfGarr http://www.mikemcgarr.com http://nflx.it/1xyhkeD 11/17/14 @SonOfGarr 64

Notes de l'éditeur

  1. ----- Meeting Notes (10/9/14 12:28) ----- voice track here
  2. 47 repos
  3. ----- Meeting Notes (11/17/14 13:47) ----- redraw as two separate Amis
  4. -e = environment -b = starting AMI -n = use a named image aminator adds the –ebs to the AMI name
  5. problems: ZK statically configured limited tools to manage the ensemble backup/restore visualization periodic cleanup
  6. Ephemeral - The data stored is for a short duration as specified by its TTL(Time To Live). Volatile - The data can disappear any time (Evicted). Cache – An in-memory key-value store.