Deployment Plan - DP/month

Data points per month

Adjust the slider above to get a deployment plan for the selected data points per month level. If you are not sure about your data points, you can use this form to estimate.

All deployment plans assume an even distribution of data points throughout the month. If you have significant spikes in incoming data, please consider adjusting your data points per month accordingly.

Countly Reference Data Model:
  • Suggested number of events: ~100 (max is 500 - not recommended)
  • Suggested number of segments: ~10 (max is 100 - not recommended!)
  • Suggested number of unique values (NUV) for the segment: < 100
  • Suggested number of user properties: < 20
  • Suggested number of values in a custom property: < 50
and
Countly strongly suggests applying TTL for granular data and move/delete data after a few months.

We tested chosen deployment with specifications below:
  • Minimum 2.20GHz base frequency per CPU
  • AVX instruction set support for CPU of MongoDB servers
  • 7,200 Read/Write IOPS per data disk

Deployment plan 1

Highly available deployment plan for up to data points per month, with a load balancer in front of Countly servers, and a MongoDB replica set with one primary, one secondary and one arbiter.

Servers

Schema

Network requirements

  • Two-way port 80 (HTTP) connection between the Load Balancer and Countly servers
  • Two-way port 27017 connection between Countly servers and all MongoDB servers
  • Two-way port 27017 connection among all MongoDB Servers
  • Outgoing port 443 (HTTPs) connection from Countly servers for push notifications. Connections will go to the below endpoints;
    • api.push.apple.com
    • api.development.push.apple.com
    • fcm.googleapis.com
    • push-api.cloud.huawei.com
    • oauth-login.cloud.huawei.com
  • Outgoing port 2197 as fallback for push notification services of Apple(APNs);
    • api.push.apple.com
    • api.development.push.apple.com
  • Outgoing port 25 for sendmail (default) or other SMTP port based on following SMTP configuration that can be done in Countly servers;
  • mail.smtpTransport = nodemailer.createTransport(smtpTransport({
      host: "smtpHost",
      secureConnection: true,
      port: 2525,
      auth: {
        user: "username",
        pass: "password"
      }
    }));
    

Other requirements

  • An SSL certificate and a subdomain DNS entry for the chosen load balancer.
  • Recommended load balancer configuration (load balancer is not provided by Countly);
    • Health check endpoint in Countly servers: /o/ping
    • Interval: 30 seconds
    • Timeout: 30 seconds
    • Healthy/unhealthy threshold: 3
    • Session stickiness/persistence is not required
  • CentOS/RHEL 8.x or Ubuntu 20.04 and 22.04 as the operating system.
  • Offline installation (servers not having an Internet connection) is supported only for CentOS/RHEL 8.x. If online installation option is selected, all servers need to have Internet connection on ports 80 and 443.
  • Static IP addresses for all MongoDB servers.
  • A sudo user for the installation.
  • Network Time Protocol (NTP) synchronization for all servers.