Skip to content
This repository was archived by the owner on May 20, 2025. It is now read-only.

Commit f8ebc7d

Browse files
authored
Improve Cloud Mappings for Nitric Resources (#682)
1 parent e017cc8 commit f8ebc7d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+458
-3693
lines changed

dictionary.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ preflight
236236
nav
237237
MacOS
238238
quantized
239+
VPC
239240
[0-9]+px
240241
^.+[-:_]\w+$
241242
[a-z]+([A-Z0-9]|[A-Z0-9]\w+)

docs/apis.mdx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1308,3 +1308,11 @@ accountsApi.get("/orgs/:id", (ctx) async {
13081308
```
13091309

13101310
</CodeSwitcher>
1311+
1312+
## Cloud Service Mapping
1313+
1314+
Each cloud provider comes with a set of default services used when deploying resources. You can find the default services for each cloud provider below.
1315+
1316+
- [AWS](/providers/mappings/aws/apis)
1317+
- [Azure](/providers/mappings/azure/apis)
1318+
- [Google Cloud](/providers/mappings/gcp/apis)

docs/batch.mdx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,3 +239,13 @@ void main() {
239239
```
240240

241241
</CodeSwitcher>
242+
243+
## Cloud Service Mapping
244+
245+
Each cloud provider comes with a set of default services used when deploying resources. You can find the default services for each cloud provider below.
246+
247+
- [AWS](/providers/mappings/aws/batch)
248+
- Azure - Coming soon
249+
- [Google Cloud](/providers/mappings/gcp/batch)
250+
251+
If you need support for additional clouds, let us know by [opening an issue](https://github.com/nitrictech/nitric/issues) or joining the conversation on [Discord](https://nitric.io/chat).

docs/keyvalue.mdx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,3 +437,11 @@ keys.forEach((String key) {
437437
```
438438

439439
</CodeSwitcher>
440+
441+
## Cloud Service Mapping
442+
443+
Each cloud provider comes with a set of default services used when deploying resources. You can find the default services for each cloud provider below.
444+
445+
- [AWS](/providers/mappings/aws/keyvalue)
446+
- [Azure](/providers/mappings/azure/keyvalue)
447+
- [Google Cloud](/providers/mappings/gcp/keyvalue)

docs/messaging.mdx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -702,3 +702,19 @@ await Future.wait(messages.map((message) async {
702702
It's common to ask when to use a queue or a topic. From a publisher's point of view, both queues and topics are almost identical. The difference is primarily on the receiver/subscriber side. Topics push new messages to their subscribers, immediately spinning up workers to process them, while queues rely on the receiver to ask for new messages to process.
703703

704704
For these reasons, we usually default to Topics. Queues are more suitable for batch workloads or situations where there are occasional surges of requests that can be processed at a later time.
705+
706+
## Cloud Service Mapping
707+
708+
Each cloud provider comes with a set of default services used when deploying resources. You can find the default services for each cloud provider below.
709+
710+
### Topics
711+
712+
- [AWS](/providers/mappings/aws/topics)
713+
- [Azure](/providers/mappings/azure/topics)
714+
- [Google Cloud](/providers/mappings/gcp/topics)
715+
716+
### Queues
717+
718+
- [AWS](/providers/mappings/aws/queues)
719+
- [Azure](/providers/mappings/azure/queues)
720+
- [Google Cloud](/providers/mappings/gcp/queues)

docs/providers/custom/extend.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ You'll notice that we also override the `Bucket` value to use the pulumi spaces
135135

136136
### Config
137137

138-
Now we can create an extension configuration to allow adding digital ocean configuration to our stack file. You can find the base AWS configuration [here](../pulumi/aws/configuration).
138+
Now we can create an extension configuration to allow adding digital ocean configuration to our stack file. You can find the base AWS configuration [here](/providers/pulumi/aws#stack-configuration).
139139

140140
Start by defining the type of configuration we want. To deploy to digital ocean we require setting a Digital Ocean token as well as a spaces key, secret, and region.
141141

docs/providers/index.mdx

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,21 @@ The following is a description of the underlying cloud services that each of the
3434

3535
Currently, both the Pulumi and Terraform providers use the same underlying cloud services to deploy your application. The following table shows the cloud services used by default on each cloud:
3636

37-
| **Resource** | **AWS** | **Azure** | **Google Cloud** | **Local** |
38-
| -------------------------------------- | ----------------------------------------------------------- | -------------------------------------------------- | --------------------------------------------------- | ---------------------------------------------------------------------------------- |
39-
| [APIs](/apis) | [API Gateway](./providers/pulumi/aws/apis) | [API Management](./providers/pulumi/azure/apis) | [API Gateway](./providers/pulumi/gcp/apis) | [Custom](https://github.com/nitrictech/cli/blob/main/pkg/cloud/gateway/gateway.go) |
40-
| [Key Value Stores ](/keyvalue) | [DynamoDB](./providers/pulumi/aws/keyvalue) | [Table Storage](./providers/pulumi/azure/keyvalue) | [FireStore](./providers/pulumi/gcp/keyvalue) | BoltDB |
41-
| [Messaging: Topics](/messaging#topics) | [SNS](./providers/pulumi/aws/topics) | [Event Grid](./providers/pulumi/azure/topics) | [PubSub](./providers/pulumi/gcp/topics) | Custom |
42-
| [Messaging: Queues](/messaging#queues) | [SQS](./providers/pulumi/aws/queues) | [Storage Queues](./providers/pulumi/azure/queues) | [PubSub](./providers/pulumi/gcp/queues) | Custom |
43-
| [Schedules](/schedules) | [CloudWatch Event Bridge](./providers/pulumi/aws/schedules) | [Dapr Binding](./providers/pulumi/azure/schedules) | [Cloud Scheduler](./providers/pulumi/gcp/schedules) | Custom |
44-
| [Secrets](/secrets) | [Secrets Manager](./providers/pulumi/aws/secrets) | [Key Vault](./providers/pulumi/azure/secrets) | [Secret Manager](./providers/pulumi/gcp/secrets) | Custom |
45-
| [Storage](/storage#buckets) | [S3](./providers/pulumi/aws/storage) | [Blob Storage](./providers/pulumi/azure/storage) | [Cloud Storage](./providers/pulumi/gcp/storage) | SeaweedFS |
46-
| Services | Lambda | Container Apps | CloudRun | Docker |
47-
48-
The code is open-source on [GitHub](https://github.com/nitrictech/nitric), so you can see exactly how resources are deployed and handled at runtime, then make any changes you see fit.
37+
| **Resource** | **AWS** | **Azure** | **Google Cloud** | **Local** |
38+
| -------------------------------------- | ------------------------------------------------------------ | --------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------- |
39+
| [APIs](/apis) | [API Gateway](/providers/mappings/aws/apis) | [API Management](/providers/mappings/azure/apis) | [API Gateway](/providers/mappings/gcp/apis) | [Custom](https://github.com/nitrictech/cli/blob/main/pkg/cloud/gateway/gateway.go) |
40+
| [Batch](/batch) | [AWS Batch](/providers/mappings/aws/batch) | Coming soon | [GCP Batch](/providers/mappings/gcp/batch) | Custom |
41+
| [Schedules](/schedules) | [CloudWatch Event Bridge](/providers/mappings/aws/schedules) | [Dapr Binding](/providers/mappings/azure/schedules) | [Cloud Scheduler](/providers/mappings/gcp/schedules) | Custom |
42+
| [Websockets](/websockets) | [API Gateway](/providers/mappings/aws/websockets) | Not implemented | Not implemented | Custom |
43+
| [Storage](/storage#buckets) | [S3](/providers/mappings/aws/storage) | [Blob Storage](/providers/mappings/azure/storage) | [Cloud Storage](/providers/mappings/gcp/storage) | SeaweedFS |
44+
| [Key Value Stores](/keyvalue) | [DynamoDB](/providers/mappings/aws/keyvalue) | [Table Storage](/providers/mappings/azure/keyvalue) | [FireStore](/providers/mappings/gcp/keyvalue) | BoltDB |
45+
| [SQL Databases](/sql) | [RDS](/providers/mappings/aws/sql) | [Azure Database](/providers/mappings/azure/sql) | [Cloud SQL](/providers/mappings/gcp/sql) | Docker |
46+
| [Messaging: Topics](/messaging#topics) | [SNS](/providers/mappings/aws/topics) | [Event Grid](/providers/mappings/azure/topics) | [PubSub](/providers/mappings/gcp/topics) | Custom |
47+
| [Messaging: Queues](/messaging#queues) | [SQS](/providers/mappings/aws/queues) | [Storage Queues](/providers/mappings/azure/queues) | [PubSub](/providers/mappings/gcp/queues) | Custom |
48+
| [Secrets](/secrets) | [Secrets Manager](/providers/mappings/aws/secrets) | [Key Vault](/providers/mappings/azure/secrets) | [Secret Manager](/providers/mappings/gcp/secrets) | Custom |
49+
| Services | Lambda | Container Apps | CloudRun | Docker |
50+
51+
The code is open-source on [GitHub](https://github.com/nitrictech/nitric), so you can see exactly how resources are deployed and handled at runtime, then make any changes you see fit. Some features may be unimplemented, but any interest or requests are appreciated. Let us know on [Discord](https://nitric.io/chat) or by creating an issue on our [GitHub repository](https://github.com/nitrictech/nitric/issues).
4952

5053
## Custom Providers
5154

File renamed without changes.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
description: 'How Nitric deploys Batch Jobs to AWS'
3+
---
4+
5+
# AWS Resources - Batch
6+
7+
Nitric Batch Jobs are deployed to AWS using [AWS Batch](https://aws.amazon.com/batch/).
8+
9+
## AWS Resources
10+
11+
The following resources are created when deploying Batch Jobs to AWS:
12+
13+
- AWS Batch Compute Environments
14+
- AWS Batch Job Queues
15+
- AWS Batch Job Definitions
16+
- EC2 Instances
17+
- EC2 Security Groups
18+
- ECR Images
19+
- IAM Policies
20+
21+
## Deployment
22+
23+
During deployment the Nitric CLI deploys your batch jobs:
24+
25+
- Built container images are pushed to the [Amazon Elastic Container Registry](https://aws.amazon.com/ecr/) as private images
26+
- Files referenced by the `batch-services` key in the `nitric.yaml` file are built into Job Definitions
27+
- IAM roles and policies are created
28+
- AWS Batch Compute Environments are created
29+
- AWS Batch Job Queues are created
File renamed without changes.

0 commit comments

Comments
 (0)