28
Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

  • Upload
    others

  • View
    23

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

Delivering MicroservicesSecurely and at Scale with NGINX in Red Hat OpenShift

November, 2017

Page 2: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

KlausOxdal

Channel Director

[email protected]

Page 3: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

The Big Shift

Page 4: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Architectural Changes:

Monolith

import myapp.Driver

require(‘myapp.Driver’)

from myapp import Driver;

Page 5: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Architectural Changes:

Microservices

http.request( opts, function(res) { } );

$s = curl_init( $uri );$r = curl_exec( $s );

res = requests.get(uri)

INGRESSCONTROLLER

Page 6: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

What is NGINX?

High-performance web server, application gateway,and app. accelerator

NGINXreverse proxy

• Rules Language• Rate Limits• Access Control• Proxying and Balancing• Logging

• Caching• Direct response

HTTPHTTPSHTTP/2TCPUDP

Page 7: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

What is NGINX Plus?

Load Balancer andApp Delivery Controller

• Native Service Discovery

• Detailed monitoring• Authentication• API configuration

NGINXreverse proxy

• Rules Language• Rate Limits• Access Control• Proxying and Balancing• Logging• Adv. Load Balancing• Web App Firewall• Service Discovery• Authentication

• Load Balancing Config API• Extended Status API

• Caching• Direct response

HTTPHTTPSHTTP/2TCPUDP

Page 8: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

NGINX Microservices

Page 9: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Microservices Reference Architecture

• Containers• Polyglot services• 12-Factor App

design

Page 10: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

The Networking Problem

Page 11: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Service Discovery

One service needs to know where other services are

Page 12: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Load-balancing

Simple Load Balancing is not effective

Developers need control

Page 13: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Secure & Fast Communication

Encryption at the transmission layer is becoming a must-have

SSL communication is slow and encryption is CPU intensive

VPNs add complexity and are not a good fit

Page 14: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

The SSL problem

A new SSL connection takes a minimum of 7 messages to establish.

1 SYN >

2 < SYN/ACK

3 ACK >

4 ClientHello >

5 < ServerHello

< Certificate

< ServerKeyExchange

< ServerHelloDone

6 ClientKeyExchange >

ChangeCipherSpec >

ClientFinished >

7 < ChangeCipherSpec

< ServerFinished

Page 15: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

The Networking Problem

• Service discovery• Robust load balancing• Persistent encryption

Page 16: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Three Network Architectures

Page 17: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Proxy Model

• Focus on internet traffic• A shock absorber for your app• Dynamic connectivity

Page 18: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Proxy Model

• Inbound traffic is managed through a reverse proxy/load balancer

• Services are left to themselves to connect to each other.

Page 19: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

NGINX Kubernetes Ingress Controller for Red Hat OpenShift

https://www.nginx.com/partners/red-hat/

Page 20: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Router Mesh

• Robust service discovery• Advanced load balancing• Circuit breaker pattern

Page 21: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Router Mesh Model• In-bound routing

through reverse proxy

• Centralized load balancing through a separate load balancing service

• Deis Router works like this

Page 22: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Circuit Breakers

• Active health checks

• Retry behaviour• Caching• Slowstart

Page 23: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Fabric Model

• Robust service discovery• Advanced load balancing• Circuit breaker pattern• Persistent SSL network

Page 24: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Inter-Process Communication

• Routing is done at the container level

• Services connect to each other as needed

• NGINX Plus acts as the forward and reverse proxy for all requests

Page 25: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Without the Fabric Model

• DNS service discovery

• Relies on round robin DNS

• Each request creates a new SSL connection which fully implemented in 7+ requests

Page 26: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

With the Fabric Model

• NGINX Plus runs in each container

• Application code talks to NGINX locally

• NGINX talks to NGINX

• NGINX queries the service registry

Page 27: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Closing Thoughts

NGINX

Microservices

Getting the L7 network right is critical to the success of a production microservices

deployment.

NGINX has a supported Ingress Controllerimplementation that works with NGINX Plus.

We can help you to architect a scalable, secure, reliable internal load balancing

solution.

All supported by Red Hat and NGINX

Page 28: NGINX Fabric Openshift - Sabeo · Delivering Microservices Securely and at Scale with NGINX in Red Hat OpenShift November, 2017

MORE INFORMATION AT NGINX.COM

Reference links- Running Ingress controller on OpenShift --

https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/openshift

- Router Mesh -- https://github.com/nginxinc/router-mesh-architecture

- Fabric Model -- https://github.com/nginxinc/fabric-model-architecture

- Nginmesh -- https://github.com/nginmesh/nginmesh

- Connect, Secure and Scale Microservices Red Hat and NGINX--https://www.redhat.com/cms/managed-files/cl-pa-nginx-openshift-solution-brief-f9016-20171101-en.pdf