Skip to content

Commit 151cdf5

Browse files
bmonkmandavidcheungsarahmari0n
authored
Improve introduction writeup for zero and list out features (#313)
* Improve introduction writeup for zero and list out features Co-authored-by: David Cheung <davidcheung@live.ca> Co-authored-by: Sarah Marion <74793478+sarahmari0n@users.noreply.github.com>
1 parent 9c679ed commit 151cdf5

File tree

1 file changed

+54
-12
lines changed

1 file changed

+54
-12
lines changed

README.md

Lines changed: 54 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,54 @@
22

33
## What is Zero
44

5-
Zero is an open-source developer platform CLI tool which makes it quick and easy for technical founders & developers to build quality and reliable infrastructure to launch, grow and scale high-quality SaaS applications faster and more cost-effectively.
5+
Zero is a tool which makes it quick and easy for technical founders & developers to build everything they need to launch and grow high-quality SaaS applications faster and more cost-effectively.
66

77
## Why is Zero good for startups
88

9-
As a technical founder or the first technical hire at a startup, your sole focus is to build the logic for your application, and get it into customers’ hands as quickly and reliably as possible. Yet you immediately face multiple hurdles before even writing the first line of code. You’re forced to make many tech trade offs, leading to decision fatigue. You waste countless hours building boilerplate SaaS features not adding direct value to your customers. You spend precious time picking up unfamiliar tech, make wrong choices that result in costly refactoring or rebuilding in the future, and are unaware of tools and best practices that would speed up your product iteration.
9+
As a technical founder or the first technical hire at a startup, your sole focus is to build the logic for your application and get it into customers’ hands as quickly and reliably as possible. Yet you immediately face multiple hurdles before even writing the first line of code. You’re forced to make many tech trade-offs, leading to decision fatigue. You waste countless hours building boilerplate SaaS features not adding direct value to your customers. You spend precious time picking up unfamiliar tech, make wrong choices that result in costly refactoring or rebuilding in the future, and are unaware of tools and best practices that would speed up your product iteration.
1010

11-
## Why is Zero Reliable, Scalable, Performant and Secure
12-
13-
Reliability: Our infrastructure is built on multiple availability zones making our system highly available and fault tolerant.
11+
Zero was built by a team of engineers with many years of experience in building and scaling startups. We have faced all the problems you will and want to provide a way for new startups to avoid all those pitfalls. We also want to help you learn about the tech choices we made so your team can become proficient in some of the great tech we have included.
1412

15-
Scability: Our EKS infrastructure is built on top of EC2 instances, and set up with AWS's [Auto Scaling Groups][asg] is ready to scale whenever the need arises.
13+
Everything built by Zero is yours. After running the commands to generate your infrastructure, backend, and frontend, all the code is checked into your source control repositories and becomes the basis for your new system. We provide constant updates and new modules that you can pull in on an ongoing basis, but you can also feel free to customize as much as you like with no strings attached. If you do happen to make a change to core functionality and feel like contributing it back to the project, we'd love that too!
1614

17-
Performant: Using Kubernetes leveraging containers for your services reduces overhead on virtual machines.
15+
## Why is Zero Reliable, Scalable, Performant and Secure
1816

19-
Security: Properly configured access-control to resources/security groups, using secure vault systems(AWS's secret manager), and following best practices provides great security out of the box.
17+
Reliability: Your infrastructure will be set up in multiple availability zones making it highly available and fault tolerant. All production workloads will run with multiple instances by default, using AWS ELB and Nginx to load balance traffic. All infrastructure is represented with code using [Hashicorp Terraform][terraform] so your environments are reproducible, auditable, and easy to configure.
18+
19+
Scability: Your services will be running in Kubernetes, with the EKS nodes running in an AWS [Auto Scaling Group][asg]. Both the application workloads and cluster size are ready to scale whenever the need arises. Your frontend assets will be stored in S3 and served from AWS' Cloudfront CDN which operates at global scale.
20+
21+
Security: Properly configured access-control to resources/security groups, using secure vault systems (AWS Secret Manager, Kubernetes secrets), and following best practices provides great security out of the box. Our practices are built on top of multiple security audits and penetration tests. Automatic certificate management using [Let's Encrypt][letsencrypt], database encryption, VPN support, and more means your traffic will always be encrypted. Built-in application features like user authentication help you bullet-proof your application by using existing, tested tools rather than reinventing the wheel when it comes to features like user management and auth.
22+
23+
24+
## What do you get out of the box?
25+
### Infrastructure
26+
- Fully configured infrastructure-as-code AWS environment including:
27+
- VPCs per environment (staging, production) with pre-configured subnets, security groups, etc.
28+
- EKS Kubernetes cluster per environment, pre-configured with tools like cert-manager, external-dns, nginx-ingress-controller
29+
- RDS database for your application (Postgres or MySQL)
30+
- S3 buckets and Cloudfront distributions to serve your assets
31+
- Logging and Metrics collected automatically using either Cloudwatch or Prometheus + Grafana, Elasticsearch + Kibana
32+
- VPN using [Wireguard][wireguard]
33+
- User management and Identity / Access Proxy using Ory [Kratos][kratos] and [Oathkeeper][oathkeeper] (Optional)
34+
- Tooling to make it easy to set up secure access for your team
35+
- Local/Cloud Hybrid developer environment using Skaffold and Telepresence (In Progress)
36+
37+
### Backend
38+
- Golang or Node.js example project automatically set up, Dockerized, and deployed to your new Kubernetes cluster
39+
- CI pipeline built with [CircleCI][circleci]. Just merge a PR and a deploy will start. Your code will be built and tested, deployed to staging, then prompt you to push to production
40+
- File upload / download support using signed Cloudfront URLs (Optional)
41+
- Email support using [SendGrid][sendgrid] or AWS SES (Optional)
42+
- Notification support for sending and receiving messages in your application (web, mobile, SMS, Email, etc.) (Optional) (In Progress)
43+
- User management integration with Kratos and Oathkeeper - No need to handle login, signup, authentication yourself (Optional)
44+
- Feature Flagging integration with [LaunchDarkly][launchdarkly] (Optional) (In Progress)
45+
46+
### Frontend
47+
- React example project automatically set up, deployed and served securely to your customers
48+
- CI pipeline built with CircleCI. Just merge a PR and a deploy will start. Your code will be built and tested, deployed to staging, then prompt you to push to production
49+
- File upload / download support using signed Cloudfront URLs (Optional)
50+
- User management integration with Kratos - Just style the example login / signup flow to look the way you want (Optional)
51+
- Static site example project using Gatsby to easily make a landing page, also set up with a CI Pipeline using CircleCI (Optional)
52+
- Feature Flagging integration with LaunchDarkly (Optional) (In Progress)
2053

2154
___
2255

@@ -42,7 +75,7 @@ Zero currently supports:
4275
| System | Support| Package Manager |
4376
|---------|:-----:|:------:|
4477
| MacOS || `brew` |
45-
| Linux || n/a |
78+
| Linux || `deb, rpm, apk` |
4679
| Windows || n/a |
4780

4881
### Prerequisites
@@ -55,7 +88,7 @@ In order to use Zero, run the `zero check` command on your system to find out wh
5588

5689
You need to [register a new domain](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html) / [host a registered domain](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html) you will use to access your infrastructure on [Amazon Route 53](https://aws.amazon.com/route53/).
5790

58-
> We recommended you have two domains one for staging another for production.
91+
> We recommended you have two domains - one for staging and another for production. For example, mydomain.com and mydomain-staging.com. This will lead to environments that are more similar, rather than trying to use a subdomain for staging which may cause issues in your app later on.
5992
6093
___
6194

@@ -144,6 +177,7 @@ $ zero create
144177

145178
The `zero apply` command takes the templated modules generated based on your input and spins up a scalable & performant infrastructure for you!
146179

180+
_Note that this can take 20 minutes or more depending on your choices, as it is waiting for all the provisioned infrastructure to be created_
147181
```shell
148182
$ zero apply
149183
@@ -184,9 +218,9 @@ zero-deployable-backend:
184218
***Your stack is now up and running, follow the links your terminal to visit your application 🎉***
185219

186220

187-
## Zeros Default Stack
221+
## Zero Default Stack
188222

189-
![systerm-architecture](https://raw.githubusercontent.com/commitdev/zero-aws-eks-stack/master/docs/architecture-overview.svg)
223+
[System Architecture Diagram](https://raw.githubusercontent.com/commitdev/zero-aws-eks-stack/main/docs/architecture-overview.svg)
190224

191225
The core zero modules currently available are:
192226
| Project | URL |
@@ -275,3 +309,11 @@ License: N/A
275309
[project board]: [https://app.zenhub.com/workspaces/commit-zero-5da8decc7046a60001c6db44/board?filterLogic=any&repos=203630543,247773730,257676371,258369081]
276310
[Wget]: https://stackoverflow.com/questions/33886917/how-to-install-wget-in-macos
277311
[and more]: https://github.com/commitdev/zero-aws-eks-stack/blob/master/docs/resources.md
312+
[terraform]: https://terraform.io
313+
[letsencrypt]: https://letsencrypt.org/
314+
[kratos]: https://www.ory.sh/kratos/
315+
[oathkeeper]: https://www.ory.sh/oathkeeper/
316+
[wireguard]: https://wireguard.com/
317+
[circleci]: https://circleci.com/
318+
[sendgrid]: https://sendgrid.com/
319+
[launchdarkly]: https://launchdarkly.com/

0 commit comments

Comments
 (0)