aws re:invent 2016: moving mountains: netflix's migration into vpc (net304)

70
Andrew Braham, Manager - Cloud Network Engineering, Netflix Laurie Ferioli, Senior Program Manager, Netflix December 1, 2016 Moving Mountains Netflix’s Migration into VPC NET304

Upload: amazon-web-services

Post on 07-Jan-2017

225 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Andrew Braham, Manager - Cloud Network Engineering, Netflix

Laurie Ferioli, Senior Program Manager, Netflix

December 1, 2016

Moving MountainsNetflix’s Migration into VPC

NET304

Page 2: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)
Page 3: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)
Page 4: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

2008

Page 5: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

2010 2011 2012 2013 2014

Page 6: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Why.

Learnings.

How.

What.

Page 7: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Security.

Networking.

Configurability.

Diagnostics.

VPC Advantages.

Page 8: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Netflix Ecosystem.

Lots and lots.

Page 9: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

10s of critical tools.

Page 10: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Delivery.

Page 11: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Monitoring.

Page 12: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

10s of critical tools.

100s of databases & ELBs.

1,000s of services.

10,000s of instances.

Page 13: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Migration Management.

If “plan A” didn’t work,

the alphabet has 25 more letters.

Page 14: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Guiding Principles.

Seamless to engineers.

Velocity of innovation.

Opportunistic improvements.

Page 15: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Service Classification.

Small non-critical

Large non-critical

Small critical

Large critical

Critical to members

Size

Page 16: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

2016 – The Migration.Jan Feb Mar Apr May June Jul Aug Sept Oct

Infrastructure

Large non-critical apps

Small non-critical apps

The long poles – services with long migrations

Large critical apps

Small critical apps

Cleanup

Page 17: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

VPC Exploration.

EXPECTATIONS.

SURPRISES.

Page 18: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Primary Goals.

Identify environmental differences.

Alignment on desired VPC end state.

Develop migration strategy.

Page 19: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Technical Challenges.

Network Routing.

DNS.

Security Groups.

Page 20: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Account Rationale.

Security compartmentalization.

Administrative Domain.

Rate Limit Restrictions.

Capacity Constraints.

Page 21: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Account Classifiers.

Business Purpose.

Operational Model.

User Access.

Page 22: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Regional Routing.

PACKET KUNG-FU.

Page 23: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink.

ClassicLink is a feature that allows EC2-Classic instances the ability to communicate directly with instances in a single VPC in the

same region.

Page 24: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

IP Addressing Allocation.

Amazon AWS utilizes 10.0.0.0/8.

Globally non-overlapping IP addresses.

Network Size.

Page 25: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

RFC 6598.

100.64.0.0/10 network is a reserved

block to facilitate Carrier Grade

Network Address Translation (CGN).

Page 26: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

IP Addressing Reservation.

Cloud IP (VPC EIP API).

ENI Auto-attach.

Page 27: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

VPC Subnet Layout.

External Subnets.

Internal Subnets.

Partner Subnets.

Page 28: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

VPC Subnet Layout.

/16

External Subnets.

Internal Subnets.

Partner Subnets.

Page 29: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

VPC Subnet Layout.

External Subnets.

Internal Subnets.

Partner Subnets.

/18 /18

/18 /18

Page 30: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

VPC Subnet Layout.

/18 /18

/18/20/20

/20 /20

External Subnets.

Internal Subnets.

Partner Subnets.

Page 31: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

VPC Subnet Layout.

/18 /18

/18/20

/20 /20

/22/22

/22/22

External Subnets.

Internal Subnets.

Partner Subnets.

Page 32: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

VPC Subnet Layout.

Availability Zone A Availability Zone B Availability Zone C

/20

0/0 => IGW

/20

0/0 => IGW

/20

0/0 => IGW

/18

0/0 => NGW

/18

0/0 => NGW

/22

0/0 => NGW

/22

0/0 => NGW

/22

0/0 => NGW

/18

0/0 => NGW

Internet

Gateway

(IGW)

VPN

Gateway

(VGW)

NAT

Gateway

(NGW)

Page 33: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Scaling NAT Gateways.

NAT

Gateway

(NGW)

Availability Zone A

/18

0.0.0.0/0 => NGW

Page 34: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Scaling NAT Gateways.

Availability Zone A

/18

0.0.0.0/1 => NGW #1

128.0.0.0/1 => NGW #2

NAT

Gateway

(NGW #1 )

NAT

Gateway

(NGW #2)

Page 35: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Scaling NAT Gateways.

Availability Zone A

/18

0.0.0.0/2 => NGW #1

64.0.0.0/2 => NGW #2

128.0.0.0/2 => NGW #3

192.0.0.0/2 => NGW #4

NAT

Gateway

(NGW #2 )

NAT

Gateway

(NGW #3)

NAT

Gateway

(NGW #4)

NAT

Gateway

(NGW #1)

Page 36: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Scaling NAT Gateways.

NAT

Gateway

(NGW)

Availability Zone A

/18

0.0.0.0/0 => NGW

Page 37: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Scaling NAT Gateways.

Availability Zone A

NAT

Gateway

(NGW #1 )

NAT

Gateway

(NGW #2)

/19

0.0.0.0/0 => NGW #1

/19

0.0.0.0/0 => NGW #2

Page 38: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Scaling NAT Gateways.

Availability Zone A

NAT

Gateway

(NGW #2 )

NAT

Gateway

(NGW #3)

NAT

Gateway

(NGW #4)

NAT

Gateway

(NGW #1)

/20

0.0.0.0/0 => NGW #3

/20

0.0.0.0/0 => NGW #4

/20

0.0.0.0/0 => NGW #1

/20

0.0.0.0/0 => NGW #2

Page 39: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink.

EC2-Classic

VPC

Page 40: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink.

Golf

Zulu

Alpha

gethostname(zulu.public)

10.0.0.100

gethostname(alpha.public)

10.0.0.200

Page 41: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink.

Golf

Zulu

Alpha

Issue:

gethostname(zulu.public)

54.aaa.bbb.ccc

Page 42: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Service Discovery.

Registration

• hostname.public.

• hostname.private.

• ipaddress.public.

• ipaddress.private.Zulu

Page 43: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink.

Golf

Zulu

Alpha

Issue:

gethostname(zulu.public)

54.aaa.bbb.ccc

Resolution:

DNS over ClassicLink

gethostname(zulu.public)

100.64.0.100

Page 44: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink over Peering.

Golf

Zulu Alpha

Expectation:

gethostname(alpha.public)

100.64.128.200

Page 45: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink over Peering.

Golf

Zulu Alpha

Issue:

gethostname(alpha.public)

54.xxx.yyy.zzz

Page 46: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink over Peering.

Golf

Zulu Alpha

Issue:

gethostname(alpha.public)

54.xxx.yyy.zzz

Resolution:

ClassicLink over Peering

DNS over Peering

gethostname(alpha.public)

100.64.128.100

Page 47: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink Everywhere.

Golf

Zulu Alpha

Romeo

Page 48: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink Everywhere.

Golf

Zulu Alpha

Romeo

Page 49: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink at Scale.

launch config1

1 2 3 N

. . . . .

Page 50: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Service Classification.

Small non-critical

Large non-critical

Small critical

Large critical

Critical to members

Size

Page 51: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Dependency Mappings.

Flow Collection.

IP Metadata.

Flow Analysis.

Page 52: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Global Routing

MORE PACKET KUNG-FU.

Page 53: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

AWS Direct Connect.

Omega Bravo

Delta

Netflix Backbone

Page 54: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Global Backbone.

Page 55: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Direct Connect.

Netflix Backbone

us-west-1 us-east-1

eu-west-1

Page 56: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Backbone Traffic.

100.64.0.0/10

Netflix Backbone

10.0.0.0/8 10.0.0.0/8

Page 57: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Backbone Traffic.

100.64.0.0/10

Netflix Backbone

10.0.0.0/8 10.0.0.0/8

Page 58: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Backbone Traffic.

100.64.0.0/10 10.0.0.0/8

DNS

Netflix Backbone

Page 59: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Global Infrastructure.

Netflix BackboneRegion 1

Classic

Classic

VPC

VPC

Corp

Region 2

Classic

Classic

VPC

VPC

Corp

3rd

Party

3rd

Party

Page 60: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Retrospective.

MULLIGANS.

SECOND CHANCES.

Page 61: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Lessons Learned.

IP address scheme.

Traffic patterns.

Partner engagement.

Technical debt.

Page 62: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Features.

ClassicLink.

ClassicLink over Peering.

DNS over Peering.

EC2 DNS for non-RFC 1918.

Page 63: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Delivery.

Page 64: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)
Page 65: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Thank you!

Page 66: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Remember to complete your evaluations!

Page 67: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Related Sessions

• NET201 – Creating Your Virtual Data Center: VPC Fundamentals and Connectivity Options

• NET303 – NextGen Networking: New Capabilities for Amazon’s Virtual Private Cloud

• NET402 – Deep Dive: AWS Direct Connect and VPNs

• NET 403 – Elastic Load Balancing Deep Dive and Best Practices

• NET 404 – Making Every Packet Count

Page 68: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

Questions?

Page 69: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink.

Golf

Zulu

Alpha

Expectation:

gethostname(zulu.public)

100.64.0.100

Page 70: AWS re:Invent 2016: Moving Mountains: Netflix's Migration into VPC (NET304)

ClassicLink.

Golf

Zulu

Alpha

Issue:

gethostname(zulu.public)

54.aaa.bbb.ccc