Skip to content

Commit 13102d0

Browse files
tech review: lots of changes and updates to this LP
1 parent 4e2afe5 commit 13102d0

21 files changed

+153
-93
lines changed

content/learning-paths/servers-and-cloud-computing/couchbase-on-gcp/_index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
---
22
title: Deploy Couchbase on Google Cloud C4A (Arm-based Axion VMs)
33

4+
draft: true
5+
cascade:
6+
draft: true
7+
48
minutes_to_complete: 30
59

610
who_is_this_for: This learning path is intended for software developers deploying and optimizing Couchbase workloads on Linux/Arm64 environments, specifically using Google Cloud C4A virtual machines powered by Axion processors.
Lines changed: 54 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,90 @@
11
---
22
title: Couchbase Baseline Testing on Google Axion C4A Arm Virtual Machine
3-
weight: 5
3+
weight: 6
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
77
---
88

99
## Couchbase Baseline Testing on GCP SUSE VMs
10-
This section confirms that Couchbase is correctly installed and running on the GCP SUSE Arm64 VM. It includes checking required ports, initializing the cluster, verifying node status, and accessing the Web UI — ensuring the setup is ready for benchmarking.
10+
This section confirms that Couchbase is correctly installed and running on the GCP SUSE Arm64 VM. It includes initializing the cluster, verifying node status, and accessing the Web UI to create a bucket — this ensures the setup is ready for benchmarking.
1111

12-
### Check Required Ports
13-
This command checks if those ports are open and active. If you see “LISTEN” next to these ports, it means Couchbase is ready to accept connections.
12+
### Setup the default cluster
13+
Once the service is running, we need to setup the default cluster for the first time.
1414

15-
Couchbase uses the following ports for basic operation:
16-
17-
- Web Console: `8091`
18-
- Query Service: `8093` (optional for N1QL queries)
19-
- Data Service: `11210`
20-
21-
Check if the ports are listening:
15+
- Open Web Console using your VM public IP address that you saved off in the last step:
2216

2317
```console
24-
sudo ss -tuln | grep -E '8091|11210'
18+
http://<VM-Public-IP>:8091
2519
```
20+
- Press "Setup New Cluster"
2621

27-
```output
28-
tcp LISTEN 0 128 0.0.0.0:8091 0.0.0.0:*
29-
tcp LISTEN 0 1024 0.0.0.0:11210 0.0.0.0:*
30-
tcp LISTEN 0 1024 [::]:11210 [::]:*
31-
```
22+
![Setup new cluster](images/cluster-setup-1.png "Setup new cluster")
3223

33-
### Initialize Couchbase Cluster
34-
This step sets up Couchbase for the first time, essentially turning it on and configuring its basic settings.
35-
- You’re giving it an admin username and password for login.
36-
- The cluster name helps identify your setup.
37-
- You’re enabling key services (data, index, query).
38-
- You’re assigning memory so Couchbase knows how much RAM it can use.
39-
If it says **“SUCCESS: Cluster initialized”**, Couchbase is ready to store and manage data.
24+
- Provide a name for your cluster (example: "my_cluster") and create a password for your administrator account (leave the username as the default "Administrator")
4025

41-
```console
42-
/opt/couchbase/bin/couchbase-cli cluster-init \
43-
-c localhost:8091 \
44-
--cluster-username Administrator \
45-
--cluster-password password \
46-
--cluster-name MyCluster \
47-
--services data,index,query \
48-
--cluster-ramsize 1024 \
49-
--cluster-index-ramsize 512
50-
```
26+
![Create cluster and admin count](images/cluster-setup-2.png "Create cluster and admin count")
5127

52-
You should see an output similar to:
53-
```output
54-
SUCCESS: Cluster initialized
55-
```
28+
- Check the "Accept terms" checkbox and press "Configure Disk, Memory, Services" button
29+
30+
![Accept Terms](images/cluster-setup-3.png "Accept Terms")
31+
32+
- Accept the defaults of your cluster configuration and press "Save & Finish"
33+
34+
![Finalize configuration](images/cluster-setup-4.png "Finalize configuration")
35+
36+
Our default cluster is now created! Please retain the passord you created for your "Administrator" account... you'll need that in the next steps.
5637

5738
### Verify Cluster Nodes
58-
This command checks if your Couchbase server (called a “node”) is running properly.
39+
This command checks if your Couchbase server (called a “node”) is running properly. Replace "password" with your specified Couchbase Administrator password.
5940
If the output says **“healthy active”**, it means your Couchbase node is working fine and ready for operations.
6041

6142
```console
6243
/opt/couchbase/bin/couchbase-cli server-list \
63-
-u Administrator -p password \
64-
--cluster localhost
44+
-u Administrator -p password --cluster localhost
6545
```
6646

6747
```output
6848
[email protected] 127.0.0.1:8091 healthy active
6949
```
7050

71-
### Web UI Access
72-
Ensure the Couchbase service is running and ports **8091 (Web UI)** and **11210 (Data)** are open.
51+
### Prepare a Couchbase Bucket for benchmarking
52+
Once the service is running, you can access the **Couchbase Web Console** to create a bucket for benchmarking.
53+
54+
Open Web Console using the public IP address of your VM that you saved off from the last step:
7355

7456
```console
75-
sudo systemctl start couchbase-server
76-
sudo systemctl enable couchbase-server
77-
sudo systemctl status couchbase-server
57+
http://<VM-Public-IP>:8091
7858
```
79-
These commands make sure Couchbase is running and will automatically start after system reboots. After starting the service, open your web browser and visit your VM’s IP on port 8091.
80-
Once the service is running, Couchbase is accessible in your browser at:
59+
Use the admin `username` (default is "Administrator") and `password` you created during Couchbase cluster setup in the previous step.
8160

82-
```cpp
83-
http://<VM-IP>:8091
84-
```
85-
You will see the Couchbase Web Console — a dashboard where you can log in, manage data buckets, and monitor performance visually.
61+
![Couchbase Dashboard](images/dashboard-1.png "Couchbase Dashboard")
62+
63+
- On the left hand side select "Buckets"
64+
- Press the "Add Bucket" in the upper right hand corner:
65+
66+
![Create Bucket](images/create-bucket-1.png "Create Bucket")
67+
68+
- Name the new bucket "benchmark"
69+
- The bucket type will be "Couchbase"
70+
- The Memory Quota can be set to "512 MB"
71+
72+
![Create Bucket](images/create-bucket-2.png "Create Bucket")
73+
74+
| **Parameter** | **Value** |
75+
|----------------|-----------|
76+
| **Bucket Name** | benchmark |
77+
| **Bucket Type** | Couchbase |
78+
| **Memory Quota** | 512 MB |
79+
80+
- You should now see that your bucket has been created:
81+
82+
![Created Bucket](images/create-bucket-3.png "Created Bucket")
83+
84+
#### Additional notes about buckets in Couchbase
8685

87-
![Couchbase Dashboard alt-text#center](images/couchbase.png "Couchbase Web")
86+
- A **bucket** in Couchbase is like a **database** — it stores and manages your data.
87+
- The **benchmark** bucket will be used for **load testing** and **performance benchmarking**.
88+
- Setting the **RAM Quota** ensures Couchbase allocates sufficient memory for **in-memory data operations**, improving overall speed.
8889

8990
You can now proceed to the next section for benchmarking to measure Couchbase’s performance.

content/learning-paths/servers-and-cloud-computing/couchbase-on-gcp/benchmarking.md

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
---
22
title: Couchbase Benchmarking
3-
weight: 6
3+
weight: 7
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
77
---
88

99

10-
## Puppet Benchmark on GCP SUSE Arm64 VM
10+
## Couchbase Benchmark on GCP SUSE Arm64 VM
1111
This section guides you through benchmarking Couchbase performance on a GCP SUSE Arm64 VM using the **official `cbc-pillowfight` tool** from Couchbase C SDK.
1212
It involves installing dependencies, building the SDK, verifying the setup, and running the benchmark test.
1313

1414
### Install Build Tools & Dependencies
1515
Before compiling the Couchbase SDK, install all required development tools and libraries.
1616

1717
```console
18-
sudo zypper install -y gcc gcc-c++ cmake make git openssl-devel libevent-devel cyrus-sasl-devel
18+
sudo zypper install -y gcc gcc-c++ cmake make git openssl-devel libevent-devel cyrus-sasl-devel java
1919
```
2020

2121
### Download and Build the Couchbase C SDK (includes cbc-pillowfight)
@@ -60,7 +60,7 @@ After installation, the tools like **cbc**, **cbc-pillowfight**, etc. should be
6060
cbc version
6161
cbc-pillowfight --help
6262
```
63-
You should see an output similar to:
63+
For the "cbc version" command, you should see an output similar to:
6464
```output
6565
cbc:
6666
Runtime: Version=3.3.18, Changeset=a8e17873d167ec75338a358e54cec3994612d260
@@ -79,18 +79,19 @@ cbc:
7979
CXX: GNU 7.5.0; -fno-strict-aliasing -ggdb3 -pthread
8080
```
8181

82+
For the "cbc-pillowfight --help" command, you should see the "help" menu displayed for cbc-pillowfight.
83+
8284
### Run Benchmark using cbc-pillowfight
83-
Once Couchbase Server is running and a bucket (e.g., `benchmark`) is created, you can run a workload test using the following command:
85+
Once Couchbase Server is running and a bucket (e.g., `benchmark`) is created, you can run a workload test using the following command (use your Couchbase administrators password):
8486

8587
```console
8688
cbc-pillowfight -U couchbase://127.0.0.1/benchmark \
87-
-u Administrator -P password \
88-
-I 10000 -B 1000 -t 5 -c 500
89+
-u Administrator -P password -I 10000 -B 1000 -t 5 -c 500
8990
```
9091

9192
- **-U couchbase://127.0.0.1/benchmark**: Connection string to Couchbase bucket
92-
- **-u Administrator**: Couchbase username
93-
- **-P password**: Couchbase password
93+
- **-u Administrator**: Couchbase admin username (default: "Administrator")
94+
- **-P password**: Couchbase Administrator's password
9495
- **-I 10000**: Number of items (documents) to use
9596
- **-B 1000**: Batch size for operations
9697
- **-t 5**: Number of concurrent threads
@@ -114,7 +115,7 @@ http://<your-vm-ip>:8091
114115
```
115116

116117
**Navigate to**:
117-
**Dashboard → Buckets → benchmark → Metrics tab**
118+
**Dashboard → Buckets → benchmark**
118119

119120
Monitor real-time performance metrics such as:
120121
- **Ops/sec** — should match your CLI output
@@ -124,22 +125,13 @@ Monitor real-time performance metrics such as:
124125

125126
![Couchbase Dashboard alt-text#center](images/arm-benchmark.png "Monitor Benchmark Log")
126127

127-
### Benchmark summary on x86_64
128-
To compare the benchmark results, the following results were collected by running the same benchmark on a `x86 - c4-standard-4` (4 vCPUs, 15 GB Memory) x86_64 VM in GCP, running SUSE:
129-
130-
| **Name** | **Items** | **Resident** | **Ops/sec** | **RAM Used / Quota** | **Disk Used** |
131-
|---------------|------------|---------------|---------------|-----------------------|---------------|
132-
| benchmark | 10,000 | 100% | 219,961.9 | 36.9 MiB / 1 GiB | 25.3 MiB |
133-
134-
### Benchmark summary on Arm64
128+
### Benchmark summary
135129
Results from the earlier run on the `c4a-standard-4` (4 vCPU, 16 GB memory) Arm64 VM in GCP (SUSE):
136130

137131
| **Name** | **Items** | **Resident** | **Ops/sec** | **RAM Used / Quota** | **Disk Used** |
138132
|---------------|------------|---------------|---------------|-----------------------|---------------|
139133
| benchmark | 10,000 | 100% | 227,981.1 | 36.8 MiB / 1 GiB | 26.7 MiB |
140134

141-
### Couchbase benchmarking comparison on Arm64 and x86_64
142-
143135
- **Operations per Second:** 227,981.1 ops/sec — indicates high throughput
144136
- **Resident Ratio:** 100% — all data served directly from memory
145137
- **RAM Usage:** 36.8 MiB used out of 1 GiB quota — highly efficient memory utilization
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
title: Create a Firewall Rule on GCP
3+
weight: 3
4+
5+
### FIXED, DO NOT MODIFY
6+
layout: learningpathall
7+
---
8+
9+
## Overview
10+
11+
In this section, you will learn how to create a Firewall Rule within Google Cloud Console. For this learning path, we need to expose TCP port 8091.
12+
13+
{{% notice Note %}}
14+
For support on GCP setup, see the Learning Path [Getting started with Google Cloud Platform](https://learn.arm.com/learning-paths/servers-and-cloud-computing/csp/google/).
15+
{{% /notice %}}
16+
17+
## Create a Firewall Rule in GCP
18+
19+
For this learning path, we need to expose TCP port 8091. To accomplish this, we first need to create a firewall rule.
20+
- Navigate to the [Google Cloud Console](https://console.cloud.google.com/).
21+
- Go to **VPC Network > Firewall** and press **Create firewall rule**.
22+
23+
![Create a firewall rule](images/firewall-rule.png "Create a firewall rule")
24+
25+
- Next, we create the firewall rule that will expose TCP port 8091 for our learning path.
26+
- Set the "Name" of the new rule to "allow-tcp-8091"
27+
- Select your network that you intend to bind to your VM (default is "autoscaling-net" but your organization might have others that you need to use)
28+
- Direction of traffic should be set to "Ingress"
29+
- Allow on match should be set to "Allow" and the "Targets" should be set to "Specified target tags".
30+
- Enter "allow-tcp-8091" to the "Target tags" text field
31+
- Set the "Source IPv4 ranges" text value to "0.0.0.0/0"
32+
33+
![Create a firewall rule](images/network-rule.png "Creating the TCP/8091 firewall rule")
34+
35+
- Lastly, we select "Specified protocols and ports" under the "Protocols and ports" section
36+
- Select the "TCP" checkbox
37+
- Enter "8091" in the "Ports" text field
38+
- Press "Create"
39+
40+
![Specifying the TCP port to expose](images/network-port.png "Specifying the TCP port to expose")
41+
42+
Our network firewall rule is now created so we can continue with the VM creation!
46.9 KB
Loading
34 KB
Loading
107 KB
Loading
85.5 KB
Loading
Binary file not shown.
52 KB
Loading

0 commit comments

Comments
 (0)