github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/cmd/roachprod/vm/azure/doc.go (about) 1 // Copyright 2019 The Cockroach Authors. 2 // 3 // Use of this software is governed by the Business Source License 4 // included in the file licenses/BSL.txt. 5 // 6 // As of the Change Date specified in that file, in accordance with 7 // the Business Source License, use of this software will be governed 8 // by the Apache License, Version 2.0, included in the file 9 // licenses/APL.txt. 10 11 // Package azure allows roachprod to create instances within the 12 // Microsoft Azure cloud. 13 // 14 // Much of the REST API code in this package is based off of 15 // https://github.com/Azure-Samples/azure-sdk-for-go-samples The API 16 // package is automatically generated from a REST API definition. 17 // 18 // Azure terminology differs somewhat from GCP and AWS. The top-level 19 // container for resources and billing is is a "Subscription". All 20 // computational resources (VMs, IPs, network configs) belong to a 21 // "Resource Group", which lives in a particular "Location", such as 22 // "eastus", and which are roughly equivalent to other cloud provider's 23 // regions. Individual availability zones don't surface directly unless 24 // replica sets are used. Roachprod uses resource groups for lifecycle 25 // management, allowing all resources used by a cluster to be extended 26 // or deleted at once. 27 // 28 // TODO(bob): Add support for deploying with replica sets. 29 // 30 // The following resources are created for each cluster: 31 // 32 // Roachprod "commons" 33 // | Resource Group (one per Location / Region) 34 // | VNet (10.<offset>/16) 35 // | Subnet (10.<offset>/18 range) 36 // 37 // Per cluster 38 // | Resource Group (one per Location / Region) 39 // | []IPAddress (public IP address for each VM) 40 // | []NIC (bound to IPAddress and to a common Subnet) 41 // | []VM (bound to a NIC) 42 // | OSDisk (100GB, standard SSD storage) 43 // 44 // Roachprod creates a "common" resource group, VNet, and Subnet for 45 // each location that clusters may be deployed into. Each NIC that is 46 // created will be bound to a common subnet. All of the managed VNets 47 // are peered together. This allows arbitrary connectivity between 48 // roachprod-managed clusters (e.g. to test cluster migration 49 // strategies). 50 package azure