Git Product home page Git Product logo

gce-deployment-manager's Introduction

gce-deployment-manager

Google Deployment Manager scripts and templates for deploying Aerospike CE on Google Compute Engine (GCE)

Download a copy of this repo using either the Download link or use git clone.

Usage

Create a project in Google Compute Engine

Enable Deployment Manager API for your project: https://console.cloud.google.com/flows/enableapi?apiid=deploymentmanager or from API Manager and enable Google Cloud Deployment Manager API and Google Cloud Deployment Manager V2 API

Download and install gcloud from https://cloud.google.com/sdk/

Configure gcloud for your GCE project

ie: gcloud init

You may need to update the gcloud sdk:

gcloud components update core

See the next section on how to configure your cluster.

Run deploy.sh and pass in a name for your deployment. This will deploy your cluster in GCE.

eg: deploy.sh my-aerospike-deployment

Configuration

Edit config.yaml with parameters to your liking

config.yaml

  • numReplicas: The number of systems/size of your cluster.
  • namePrefix: The naming schema of your systems. This is the displayed name on the GCE GUI.
  • zone: zone in GCE to deploy into
  • machineType: The GCE machine type to use
  • network: The GCE Network to deploy into
  • bootDiskType: The type of storage the boot disk uses
  • numLocalSSDs: The number of local NVME SSDs to attach. Limit of up to 8
    • Limit of 4 in us-cental1-a and europse-west1-b. See this page for more details
    • Shared core (f1 and g1) are not permitted local SSDs
  • useShadowDevice: Whether to also provision network SSD disks to use as Shadow Devices. Shadow Disks are the same size and count as local SSDs.
  • diskSize: A list of persistent SSD disks to deploy. This option is mutually exclusive with useShadowDevice. useShadowDevice takes precendence if both are defined.
  • namespace: A text block containting your namespace config stanza

Package description

Google deployment manager as its core takes yaml files as its configuration. This is achieved through either direct yaml definition, Jinja templates, and/or python scripts. Templates can reference other templates.

Non-user configurable files

These files are provided to ease deployment. Do not change these unless you really know what you're doing.

  • The common directory contains templates provided by Google.
  • aerospike.jinja is the main config for aerospike instances.
  • aerospike.jinja.schema is a validation template. Parameters are checked against this template for validation

User configurable files

These files are user-configurable templates. Please change these to your requirements.

  • config.yaml - This is your cluster's configuration in GCE. Change the parameters to match the requirements for your cluster.

Performance

We recommend using local NVME SSDs whereever high IOPS are needed. SSD persistent disks reach maximum performance at 500GB, with 15k IOPS and 240MB/s throughput. This is with systems with at least 4 cores. Systems with 1 or 2 cores have lower limits. See this page.

There appears to be a ~400MB/s throughput limit. That means with 4k blocks, it's 100k IOPS. IO stats

After the device is filled (Garbage collecting), IOPS drops to around 40k (~160MB/s with 4k blocks).

Command used: fio --filename=/dev/nvme0n1 --direct=1 --rw=randrw --refill_buffers --norandommap
--randrepeat=0 --ioengine=libaio --bs=4k --rwmixwrite=100 --iodepth=256 --numjobs=1 --runtime=3900 --time_based
--group_reporting --name=4ktest

gce-deployment-manager's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.