deploying nginx plus & kubernetes on google cloud platform

Post on 09-Jan-2017

426 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Deploying NGINX Plus & Kubernetes on Google Cloud Platform

1

2

Building a great applicationis only half the battle, delivering the application is the other half.

3

The modern web requires a new approach to application delivery.

4

Monoliths vs. Microservices

5

The Monolithic Architecture• To scale, you must scale the entire

monolith• All services are written in the same

language using the same framework• Changing one service means rebuilding,

retesting, and redeploying the entire monolith

• Multiple changes at once – argh!• Release cycles tend to be long

6

The Monolithic Architecture

7

The Monolithic Architecture

8

The Microservices Architecture• Enables continuous delivery, rapid

deployment, and elasticity• You can scale each service independently• Services can be written in different

languages using different frameworks• Each service can be changed, tested, and

built independently• Release cycles can be dramatically

shortened

9

MORE INFORMATION AT NGINX.COM

Features:

• Load Balancing for HTTP, TCP & UDP

• Session Persistence

• SSL and HTTP/2 Termination

• Bandwidth Management

• Content-Based Routing

• Request Manipulation

• Response Rewriting

• Authentication

• Web Serving

• Video Delivery

• Mail Proxy

• GeoLocation

NGINX Plus

10

NGINX Plus with Microservices

• Fit together naturally and are easily integrated with container environments and DevOps tools

• Run NGINX Plus inside or outside the microservices environment

• NGINX Plus provides a single, stable entry point while containers are deployed and destroyed behind it

11

Microservices Architecture with NGINX Plus

12

NGINX Plus and the GCP

13

Installing the NGINX Plus VM

14

Installing the NGINX Plus VM

15

HA NGINX Plus with GCP• Create a highly available

architecture using Google Cloud Platform Network Load Balancers.

• Configure 2 NGINX Plus load balancers and load balance them with Google’s Network Load Balancers

16

Internal Load Balancing

• Load balance internal services within a Google Compute Engine region.

17

Integration with GCP Products

• Cloud Launcher - instantly deploy NGINX Plus• GCP Logging• GCP Monitoring (StackDriver

18

@sandeepdinesh | @SRobTweets 19

Load Balancing with NGINX and GCP

@sandeepdinesh | @SRobTweets 20

Kubernetes:An open-source platform for automating deployment, scaling, and operation of application containers.

21

What we’ll cover

01

02

03

04

Running NGINX on Google Cloud Platform

Deep dive: Load Balancing Kubernetes with NGINX Plus

Live demo!

Wrap up

Enterprise

Enterprise

@googlecloudGoogle Cloud Platform ‹#›Google Cloud Platform ‹#›

Google Cloud Platform

Compute

Connectivity

Big Data

Storage

Developer Tools Mobile

Management

@googlecloudGoogle Cloud Platform ‹#›Google Cloud Platform ‹#›

Google Cloud Platform

Compute

Connectivity

Big Data

Storage

Developer Tools Mobile

Management

26

01 Running NGINX on GCP

27

Cloud Launcher

● Spawn pre-loaded, customizeable VMs on Google Compute Engine● Click to deploy

28

Cloud Launcher: Setup in 3 steps

1. Click Launch on Google Cloud in Cloud Launcher2. Select your Cloud project & create a new VM instance3. Click Create to launch your VM

29

02 Load balancing Kubernetes with NGINX Plus

What is Kubernetes?

Greek for “Helmsman”; also the root of the word “Governor”

• Container orchestrator • Runs containers• Supports multiple cloud and bare-metal

environments• Inspired and informed by Google’s

experiences and internal systems• Open source, written in Go• kubernetes.io

Manage applications, not machines

Group of containersLive and die togetherShared network interfaceShared volumesUnique Routable IP

Pod

App

Log Collector

Pods

...

Replica Set

Replicas → 2Pod

frontend

Pod

App

Log Collector

...

type = Frontend

version = 1.0

Pod

App

Log Collector

...

type = Frontend

version = 1.0

Deployments

Replica Set

Replicas → 2Pod

frontend

Pod

type = Frontend

version = 1.0

Pod

type = Frontend

version = 1.0

Services

Service

Label selectors: version = 1.0 type = Frontend

34Google Cloud Platform 34

We’ll build...

35Google Cloud Platform 35

We’ll build...an NGINX load balancer for Kubernetes

services

36

Our app

service

to_lower

K8s service

to_upper

K8s service

reverse

K8s service

arrayify

NGINX

Load Balancer

pod pod pod pod pod pod pod pod pod pod pod pod

37

03 Demo time!

Google Cloud Platform 3838

Resources - Google

● NGINX+ on Cloud Launcher: bit.ly/nginx-launcher● NGINX load balancing k8s blog post:

bit.ly/load-balancing-k8s● Kubernetes Docs: kubernetes.io● GCP Podcast: gcppodcast.com

Bonus: look inside a Google data center! cloud.google.com/360tour

Results

39

Blog:

• Refactoring a Monolith into Microservices (#7 in 7-part series)

• Deploying NGINX and NGINX Plus with Docker

• Make your Containers Production-Ready - O’Reilly ebooknginxinc/kubernetes-ingress - Ingress controllers for NGINX on GithubLoad Balancing Kubernetes Services with NGINX Plus - N+ for Layer 7 load balancing with Kubernetes

Webinars:

• Building Applications With Microservices and Docker

• NGINX & Docker: Ask Me Anything

• Bringing Kubernetes to the Edge with NGINX Plus

• Scaling Microservices with NGINX, Docker, and Mesos

Also check out our YouTube channel!

Resources - NGINX

Q&A

40

top related