Deploying Couchbase Applications
on Azure Cloud
Rafael Godinho – Evangelist Microsoft
Cihan Biyikoglu – Director of Product Management Couchbase
• 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
PART I
Intro to Azure
Microsoft Azure
Game sessions hosted
using Azure
Hosted using >100,000
Azure Virtual Machines
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
PART II
Provisioning VMs in Azure
Provisioning a Virtual Machine
©2014 Couchbase, Inc. 8
>_
DEMO
Provisioning a Virtual Machine on Azure
©2014 Couchbase, Inc. 9
PART III
Best Practices - Couchbase Server on
Azure
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
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
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
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
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
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
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
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
PART IV
Deploying a Couchbase .NET App on Azure
.NET
Python
Develop apps with…
Node.js
Java
PHP
DEMO
Deploying a .NET app on Azure
©2014 Couchbase, Inc. 21
22
QA