apex / up Goto Github PK
View Code? Open in Web Editor NEWDeploy infinitely scalable serverless apps, apis, and sites in seconds to AWS.
Home Page: https://up.docs.apex.sh
License: MIT License
Deploy infinitely scalable serverless apps, apis, and sites in seconds to AWS.
Home Page: https://up.docs.apex.sh
License: MIT License
Currently ** is not supported. The pkg I'm using isn't very well documented, probably best to just fork or write a new one.
limit request header/body
By default it'll probably just remain async, but an option would be nice.
Figure out what makes sense, complete license noob.
Open source otus(1) and add an example
support conditional-GETs out of the box
So by when can we start using this? Seems really exciting. I don't like aws's console and UI its just too slow and I prefer automated stuff. Maybe this can replace my current server deployment and devops hell.
Out of the box. This one seems a little involved from what I've seen, definitely need Docker, and to figure out how to get the gems working etc.
Just like apex(1). It would be cool to check remotely maybe once per day too, and show the changelog
So you don't have to dive into your AWS account
App and web app will utilize the same code base. The desktop app will be targeted more towards people like myself, while the web app will be optionally self-hosted in your own network for private access by team members.
The app will features pretty much everything the CLI will, ranging from stats, alarms, continuous integration, and so on.
What would you prefer?
Big maybe but it might be kind of cool to inject "Logs" and "Metrics" tabs into Github for your apps. Tying your GH org together with Up could be a nice way to leverage existing org data.
Downside of course is that you need to install the extension, but it's one less tab to leave open all day.
Might be nice to add, could possible do s3 multi-part as well to speed things up for larger cases. Depends on your connection of course.
API idea from @gjohnson to provide pro users for easier centralized management in an org for less IAM mayhem. Tempted to add some IAM management stuff to Up as well to make that a bit easier as an admin.
on upgrade, and when it auto-checks. Might adopt a slightly different semver model so it can inform the user of fixes easily.
0.005 per minute, nice out of the box experience if you don't want to bother with Circle etc. 100 free minute per month.
Some more that are either somewhat implied or not big items but should still be listed, maybe in a smaller below the main set. Maybe move this all to apex.sh/up
How it compares to other solutions, pros and cons, pricing of AWS stuff, APIGW/Lambda limitations etc.
with build / clean hooks
Default is unlimited I believe
Some kind of table showing some of the pros/cons of Up vs other solutions so people know what to expect, for ex Lambda doesn't let you deploy using custom Dockerfiles, not really a problem in most real-world apps that I've written though.
For now list out the AWS cost so people don't have to go hunt down the cost of logging, API Gateway, Lambda, and so on. Later it would be great to have part of the CLI or app estimate this stuff for you.
Maybe, it would be nice to at least check Accept
and output some nice HTML instead of boring text.
I haven't decided on this yet, likely tiered, I'd be happy if small companies with little funding don't have to pay much, startups and established companies can afford more. Perhaps by company size? Maybe just by feature-set, we'll see, happy to hear suggestions!
Recording the time required to create Up, that might help gauge how much time it would save someone as well haha, most teams should not be wasting time developing tooling, engineers are pricey!
Looks like cross compiling is not super easy right now, might have to do docker builds. Any suggestions from Rust users?
Tailing is implemented already, however it would be nice if you didn't need to cd
around to switch apps.
Curious what peoples thoughts are regarding managing things like DNS records, alarms, etc.
One option is individual CLI commands, this would be a little easier to implement, but awkward since the team can't review/audit them, commit them to source control, and requires listing a bunch of resources to see the state of the world.
$ up dns ls
$ up dns add apex.sh blog.apex.sh A 52.0.16.118,52.1.119.170,....
$ up dns add apex.sh ping.apex.sh CNAME ping.netlify.com
The more "correct" approach these days would be more like Terraform infra-as-code style, where the config in your repo is the source of truth, though it may be less familiar/intuitive to some people.
For DNS looking something like the following (for apex.sh zone):
{
"domain": "apex.sh",
"dns": {
"blog.apex.sh": {
"type": "A",
"value": [
"52.0.16.118",
"52.1.119.170"
]
}
},
"ping.apex.sh": {
"type": "CNAME",
"value": "ping.netlify.com"
}
}
Changes would be previewed via up plan
which shows what will be updated/created/deleted etc and applied with up apply
or similar. Note this is not a replacement for Terraform or CloudFormation, just need to provide enough for people to get apps bootstrapped.
Pros of CRUD style:
Pros of Terraform style:
Any opinions?
What needs implementing for now:
With at least a few regions to span along the equator. I haven't tried Fauna, but if it's easy to set up that might be cool.
Basically latency.apex.sh as a command, but a distributed version of hey(1) so you can still use all the flags and test from N regions. This should be a cool way to highlight the benefits of #27.
Might make sense to just package this up as its own up
application, instead of a command. Also then serves as an example of using up.
Big maybe, this starts to enter into apex(1) / Serverless territory, not sure I really want to go there, but it would be nice to not use verbose Terraform stuff just to set up scheduled tasks.
Do some profiling and get the latency as low as possible, possible replace Go's reverse proxy with https://github.com/valyala/fasthttp, test unix domain sockets in Lambda as well, check heap and see what can be pooled. It's also making some assumptions about having concurrency of 1 at the moment, since that's the case with Lambda.
Make sure it's not decompressing gzip and recompressing either, not sure what the proxy does but I know net/http's client does this transparently, test with some larger responses.
For people who don't have an account or are unfamiliar with AWS, make this as easy as possible.
Building https://github.com/tj/gh-polls today got me thinking, maybe it would be cool (kind of gimmicky) to have a single image you place in a project Readme, and it shows you an overview of metrics such as API latency, uptime, errors, CI status and others.
Basically an alternative to Geckoboard without paying for that, and your team automatically gets access to it since it's just in a readme or Wiki!
Using Gitbooks for now probably!
It's pretty decent now, 15k files / 60MB with filtering in ~350ms but needs profiling to see if we can improve that some more.
kinda made the mistake of having accounts per product, but oh well, basically will act as a changelog, but then again my personal twitter is basically this as well, might not be worth it
Not a big deal since it'll be a single copy/paste command anyway, but the install script could be published to npm to make that a little smoother for Node people.
https://github.com/Automattic/cloudup-cli is using the "up" package currently, but it's basically a dead project.
I have a ~60% complete "serverless" metrics solution, very low cost to get started, and scales indefinitely built on AWS tech. May or may not make this a hosted product or an optional part of Up (or neither).
Easily an order of magnitude more cost-effective than any other solution I've seen, even Prometheus etc running on EBS, and easier to operate since you don't have to manage any nodes, set up HA, replication etc.
So far my thing uses the same protocol as Influx, latency is still good however price, volume, simplicity of operation and query flexibility are given priority. The query engine has more in common with Elasticsearch, making it easy to return nested results etc, SQL is more appealing for simple stuff but pretty awkward when it comes to nesting.
Another possibility is a CloudWatch compatibility layer so it's a vastly more cost effective drop-in replacement.
Curious what you use already:
What's most important for your use-cases?
Current pkg uses regexps, not a big deal for most projects but node_modules typically has an easy 10k files. On my machine the current regexp based stuff is ~22k ops/s, not super quick, likely easy to notice on large projects.
Will there be an option for database support?
Up is same service that https://zeit.co/now?
Make sure up stack
and friends all have nice output and user-friendly errors, remapping of names (no one wants to see AWS::Lambda::Permission
blah blah), etc.
Out of the box. This one seems like it's pretty tricky to get running in Lambda.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.