Skip to content

Commit d41cfd9

Browse files
committed
added environments section
1 parent a399833 commit d41cfd9

5 files changed

+96
-6
lines changed

docs/articles/custom-ci-cd.md

+10-5
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,12 @@ be picked up by the Zuplo CLI.
3838

3939
:::
4040

41-
## Setting up a custom workflow with GitHub Actions
41+
## Provider Instructions
42+
43+
Below you will find examples of how to set up a custom CI/CD pipeline with
44+
various providers.
45+
46+
### GitHub Actions
4247

4348
The full example is available at
4449
https://github.com/zuplo/zup-cli-example-project/blob/main/.github/workflows/ci.yml
@@ -99,7 +104,7 @@ jobs:
99104
2. Create a secret for your GitHub Action and be sure to set `ZUPLO_API_KEY` to
100105
the API key you generated in the previous step.
101106

102-
## Setting up a custom workflow with Bitbucket Pipelines
107+
### Bitbucket Pipelines
103108

104109
The full example is available at
105110
https://github.com/zuplo/zup-cli-example-project/blob/main/bitbucket-pipelines.yml
@@ -172,7 +177,7 @@ pipelines:
172177
2. Create a secret repository variable for your BitBucket Pipelines and be sure
173178
to set `ZUPLO_API_KEY` to the API key you generated in the previous step.
174179

175-
## Setting up a custom workflow with Azure Pipelines
180+
### Azure Pipelines
176181

177182
The full example is available at
178183
https://github.com/zuplo/zup-cli-example-project/blob/main/azure-pipelines.yml
@@ -223,7 +228,7 @@ steps:
223228
2. Create a secret for your Azure Pipelines and be sure to set `ZUPLO_API_KEY`
224229
to the API key you generated in the previous step.
225230

226-
## Setting up a custom workflow with Gitlab Pipelines
231+
### Gitlab Pipelines
227232

228233
The full example is available at
229234
https://github.com/zuplo/zup-cli-example-project/blob/main/.gitlab-ci.yml
@@ -278,7 +283,7 @@ The above samples showcase the most common use case for our customers. However,
278283
you might have more advanced use cases that require more control. The following
279284
sections describe some other parameters that you can control.
280285

281-
### You have multiple sub-folders in your repository
286+
### Multiple Projects
282287

283288
You might end up with this structure because you are using git submodules to
284289
connect multiple repositories together. Or, you might have multiple projects in

docs/articles/update-zup-in-github-action.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Automate Zuplo API Updates with GitHub Actions
3-
sidebar_label: Update API in GitHub Action
3+
sidebar_label: GitHub Action Automation
44
---
55

66
Because Zuplo is OpenAPI native, you can automate the process of udating your

docs/dedicated/architecture.md

+25
Original file line numberDiff line numberDiff line change
@@ -121,3 +121,28 @@ access to your APIs for end-users around the world. The load balancer is also
121121
configured to handle failover in case of an outage in one region.
122122

123123
<ManagedDedicatedMultiRegionArchitecture />
124+
125+
### Environments
126+
127+
Customers running managed dedicated Zuplo typically have multiple instances of
128+
Zuplo deployed. The most common case is to have a production instance(s) and a
129+
non-production instance. The non-production instance is used to deploy and test
130+
changes to your API Gateway before deploying them to production.
131+
132+
Each instance is isolated and runs in its own VPC or network.
133+
134+
It is possible to have multiple instances depending on your requirements. For
135+
example, some customers have seperate instances for production, staging, and
136+
development. For most customer though, a single production and a single
137+
development instance is sufficient.
138+
139+
When you onboard to Zuplo, you will work with your account manager to determine
140+
the configuration that best meets your requirements. When your project is
141+
created it will be pre-configured with the agreed upon number of instances and
142+
setup with rules that determine where each environment gets deployed.
143+
144+
The most common setup is where your `main` branch is deployed to production and
145+
all other branches are deployed to a non-production environment, but this is
146+
fully customizable.
147+
148+
<ManagedDedicatedEnvironmentsArchitecture />

src/components.tsx

+3
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,7 @@ export const mdxComponents = {
5252
ManagedDedicatedMultiRegionArchitecture: lazy(
5353
() => import("./diagrams/ManagedDedicatedMultiRegionArchitecture.js"),
5454
),
55+
ManagedDedicatedEnvironmentsArchitecture: lazy(
56+
() => import("./diagrams/ManagedDedicatedEnvironmentsArchitecture.js"),
57+
),
5558
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import React from "react";
2+
import { Diagram, DiagramBuilder, Position } from "./common/index.js";
3+
4+
export default function ManagedDedicatedMultiRegionArchitecture() {
5+
const props = React.useMemo(() => {
6+
const y = 50;
7+
const x = 0;
8+
9+
const space = 100;
10+
11+
const builder = new DiagramBuilder([
12+
{
13+
position: { x, y },
14+
label: "Source Control",
15+
type: "custom",
16+
},
17+
{
18+
position: { x: x + space * 2, y },
19+
label: "Control Plane",
20+
variant: "zuplo",
21+
},
22+
{
23+
label: "Zuplo API Gateway (Production)",
24+
variant: "zuplo",
25+
position: { x: x + space * 4, y: y - 60 },
26+
width: 160,
27+
},
28+
{
29+
label: "Zuplo API Gateway (Non-Production)",
30+
variant: "zuplo",
31+
position: { x: x + space * 4, y: y + 40 },
32+
width: 160,
33+
},
34+
]);
35+
36+
const duration = 4;
37+
builder.connect(
38+
{ label: "Source Control", position: Position.Right },
39+
{ label: "Control Plane", position: Position.Left },
40+
{ animate: true, icon: "square-code", duration },
41+
);
42+
builder.connect(
43+
{ label: "Control Plane", position: Position.Right },
44+
{ label: "Zuplo API Gateway (Production)", position: Position.Left },
45+
{ animate: true, icon: "square-code", duration },
46+
);
47+
builder.connect(
48+
{ label: "Control Plane", position: Position.Right },
49+
{ label: "Zuplo API Gateway (Non-Production)", position: Position.Left },
50+
{ animate: true, icon: "square-code", duration },
51+
);
52+
53+
return builder.getProps();
54+
}, []);
55+
56+
return <Diagram {...props} className="h-56" />;
57+
}

0 commit comments

Comments
 (0)