(no title)
colinchartier | 3 years ago
We recently finished our firecracker-based webapp hosting platform.
It's like if Vercel and Docker had a baby: You write VM configurations in a language that looks like a Dockerfile, and every commit creates a preview environment which can be "promoted" to a production site.
Here's an example configuration:
``` FROM vm/ubuntu:18.04 RUN curl -fSsL https://deb.nodesource.com/setup_12.x | sudo -E bash RUN apt-get install nodejs COPY . . RUN npm install RUN npm run build RUN BACKGROUND npm run start EXPOSE WEBSITE localhost:3000 ```
This product combines our firecracker-based hypervisor (200ms cold starts) with a global CDN written in Go (using Caddy for TLS termination)
We can offer everything for free because we charge for the DevOps side (CI/CD & preview environments) - we have no intention of getting users and then upselling people for hosting.
We're obviously very excited about this launch, and would love to hear your feedback.
nextaccountic|3 years ago
What are the differences from a Dockerfile?
benatkin|3 years ago
IIRC it took a long time for Node 18 to be available.
Containers FTW. You can use things in production when the maintainers release to production, not when AWS Lambda has them.
saurik|3 years ago
You can run anything the hell you want in AWS Lambda as it is literally just a container. The documentation even shows you how to write your lambda function entirely in a handful of lines of bash using curl to request the job and submit the result.
sosodev|3 years ago
colinchartier|3 years ago
We haven't had to formalize any policies, but they'll be similar to other cloud free tiers:
- HTTP only (no terabytes of videos or images exclusively)
- No crypto mining
- No phishing sites
- No sending emails, attacking others, etc
We currently do about a million builds a year, so 99% of projects shouldn't cause problems for us.
re-thc|3 years ago
colinchartier|3 years ago
In particular, you can do things like
RUN BACKGROUND docker-compose up
EXPOSE WEBSITE 8080
This is super important for most use-cases, since otherwise you have to deal with networking and version control.