Deploying couchbaseserverazure cihanbiyikoglu_microsoft

23
Deploying Couchbase Applications on Azure Cloud Rafael Godinho Evangelist Microsoft Cihan Biyikoglu Director of Product Management Couchbase

description

Couchbase Server on Azure Cloud - best practices for deploying a development or production environment with Couchbase Server on Microsoft's Azure Cloud Platform.

Transcript of Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Page 1: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Deploying Couchbase Applications

on Azure Cloud

Rafael Godinho – Evangelist Microsoft

Cihan Biyikoglu – Director of Product Management Couchbase

Page 2: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

• Part I - Azure Intro

• Azure Cloud Overview

• Part II - Provisioning Virtual Machines in Azure

• Live Demo

• Part III – Setting up Couchbase on Azure Virtual Machines

• Best Practices with Azure

VM SKUs, Network Config, Availability Set Configuration and more…

• Part IV – Deploying a .NET Couchbase app on Azure

• Live Demo

• Part V - Q&A

Agenda

©2014 Couchbase, Inc. 2

Page 3: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

PART I

Intro to Azure

Page 4: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Microsoft Azure

Page 5: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Game sessions hosted

using Azure

Hosted using >100,000

Azure Virtual Machines

Page 6: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Microsoft Azure ServicesC

lien

t la

yer

(on

-pre

mis

es)

Tablet Phone

Games

consolePC

On-

premises

databaseBrowser

Office Add-

in

On-

premises

service

AD

Multifactor

Authentication

Access

Co

ntr

ol

Layer

Inte

gra

tio

n

layer

Service Bus CDN

BizTalk

Services

Traffic

Manager

Virtual

NetworksExpress

Route

Ap

pli

cati

on

layer

API Mgmt Websites

Cloud

Services VM

Mobile

Services

Media

Services

Notification

Hubs Scheduler Automation

Data

Layer

Storage Blobs Tables Queues Data

Machine

Learning HD Insight

Backup and

RecoverySQL

Database Caching StorSimple

Page 7: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

PART II

Provisioning VMs in Azure

Page 8: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Provisioning a Virtual Machine

©2014 Couchbase, Inc. 8

>_

Page 9: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

DEMO

Provisioning a Virtual Machine on Azure

©2014 Couchbase, Inc. 9

Page 10: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

PART III

Best Practices - Couchbase Server on

Azure

Page 11: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Minimum HW Recommendation for Couchbase

2 cores and 4GB for development

4 cores and 16GB for production

Typical Picks

For Dev. Workloads

- D2, D11, A3, A5 or larger

For Prod. Workloads

- D3, D12 or A6 or larger

Best Practices – Node Sizes

©2014 Couchbase, Inc. 11

Page 12: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Virtual Network are the most efficient way to communicate!

• Configure a Virtual Network for Nodes & Apps Per DC/Region

• Setup Vnet to Vnet connection between DCs/Regions

Best Practices – Configuring Azure Network

©2014 Couchbase, Inc. 12

Azure East

Couchbase Apps

Couchbase Server Cluster

Azure West

Couchbase Apps

Couchbase Server Cluster

Page 13: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Configure a Virtual Network per DC/Region for Couchbase Nodes & Apps

- PrivateIPs are faster to route compared to public IPs

Best Practices – Configuring Azure Network

©2014 Couchbase, Inc. 13

10.0.0.410.0.0.510.0.0.6…

VM PrivateIPs

Page 14: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Configure Availability Sets & Server Groups for Full Protection

• Ensure Protection against Upgrades and Rack Failures

Configure Availability Set per VNet

Ensure all nodes are in the same availability set

Ensure all nodes are in separate groups in Couchbase Cluster

Best Practices – Configuring Availability Set

©2014 Couchbase, Inc. 14

Page 15: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Couchbase Server Configuration

• Use Static IPs with NodesSet-AzureStaticVNetIP in Powershell or Check the box in the new portal..

• Use PrivateIP for server comm. Register node PrivateIPs (ex: 10.0.x.x) on Admin Console

Enable Remote AdministrationSome use jump-box to front admin access, others open 18901 for encrypted Admin Access (with Couchbase Server 3.0 only). Defense in Depth…

Map to another random port for security externally ACL the 18091 endpoint

Best Practices – Configuring Server Config.

©2014 Couchbase, Inc. 15

Page 16: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Security Best Practices

- Admin Endpoint:

Couchbase Admin Console & CLI: 18091

- 18091 is SSL encrypted.

- ACL 18091 for added security

- No need to open any other port!

- Encrypt XDCR Traffic:

Cross DC/Region Traffic with SSL

Best Practices – Configuring Couchbase Server

©2014 Couchbase, Inc. 16

Page 17: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Couchbase App Configuration

• Ensure Apps deploy to the same Vnet

Websites, VM Apps or Cloud Services

privateIPs (10.0.x.x)

• Use Encrypted Data Access

SSL based Client-server Communications

SSL based View Access

https://couchbase_server:18092/…

Best Practices – Configuring Azure Network

©2014 Couchbase, Inc. 17

Page 18: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

Production Deployments

- Mount data disks & stripe across with RAID 0

Do not use ephemeral drive – will be reset under node restart

Do not use OS drive – limited in size

Do Not use ReadWrite caching for Couchbase Server data drives

- Writes through to Azure Storage

Best Practices – Storage Configuration

©2014 Couchbase, Inc. 18

Page 19: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

PART IV

Deploying a Couchbase .NET App on Azure

Page 20: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

.NET

Python

Develop apps with…

Node.js

Java

PHP

Page 21: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

DEMO

Deploying a .NET app on Azure

©2014 Couchbase, Inc. 21

Page 22: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

22

Page 23: Deploying couchbaseserverazure cihanbiyikoglu_microsoft

QA