
Apex lets you build, deploy, and manage AWS Lambda functions with ease - davedx
http://apex.run/
======
cdnsteve
Isn't this an anti-pattern? I mean, Lambda is suppose to eliminate the need
for servers and server admin work. However, working with their services, like
Lambda, are so tedious that solutions like Apex and Serverless have to be put
on top of them. So now you have to learn to use a "Serverless Framework" to
abstract the complexity of a serverless service?

In my view, they got it wrong. If the service is too cumbersome to use and
requires these extra frameworks to actually use them effectively, then there's
a fundamental problem with the service it relies on.

~~~
felixgallo
you need to consider the alternative. I've been running unix boxes for 30
years, and even though it's node.js-based, even though it's amazon's usual
byzantine nonsense, even I think Lambda is a total game changer in the making.

~~~
beat
Not just from a deployment standpoint, but from a development standpoint!
Lambda enforces boundaries and clarity, and strongly encourages simplicity.
So, so much better than monolithic app servers.

------
franciscop
A bit of background: it's the first company from TJ [1], one of the creators
of Express JS [2] and a collaborator to Node.js [3]. I've been following TJ's
work for a while :)

[1] [https://medium.com/apex-software/announcing-apex-software-
in...](https://medium.com/apex-software/announcing-apex-software-
inc-5008c454002#.edoatcp56)

[2] [https://strongloop.com/strongblog/tj-holowaychuk-
sponsorship...](https://strongloop.com/strongblog/tj-holowaychuk-sponsorship-
of-express/)

[3] [https://medium.com/@tjholowaychuk/farewell-node-
js-4ba9e7f3e...](https://medium.com/@tjholowaychuk/farewell-node-
js-4ba9e7f3e52b#.k4lo44tdt)

~~~
sotojuan
A bit more than just Express: Mocha, Jade, ejs, superagent, Koa, etc.

------
pmontra
I didn't try it yet but it seems very useful.

I don't see a way to bind a function to a URL on the Amazon API gateway. Is it
a missing feature or did I miss it in the documentation? I ask because setting
up the URLs that map to functions is the most annoying task with Lambda and
must be automated.

~~~
inopinatus
It doesn't surprise me that people want to do that, but the design intention
of Lambda is to invoke it asynchronously via writes to dynamodb, s3, sqs, IoT
etc. I wouldn't make any assumption that someone building tools for Lambda is
going to prioritise integration with the API Gateway and its somewhat alien
synchronous behaviour.

The best fitted Lambda apps are going to have an event-sourced CQRS style, I
think. AWS IoT is kinda the last piece of that puzzle to fall into place.

~~~
southpolesteve
There is nothing wrong with using lambda to synchronously respond to user
facing API requests. It actually works really well and I would highly
recommend it. Were doing it in production at ~15 million calls/day.

~~~
Touche
Isn't it expensive though?

~~~
southpolesteve
That is the best part! It is cheaper! We had a node service that went from
$2500/mo to $400/mo just by switching form Ec2 to Lambda. That is the most
apples to apples comparison I can give you. Other services were split up or
rewritten, but honestly my gut feeling tells me they are costing 10x-50x less.

IMO Autoscaling ec2 instances to daily traffic is not a trivial problem and
you'll never get the granularity you can with Lambda

~~~
leoalves
You are also saving in not having someone maintaining and making sure the
server is always online. Even if it was the same price, not having to worry
about the server is a big plus

------
rambos
I just started using AWS Lambda, can someone explain why this would be better
than using AWS console/sdk?

~~~
leoalves
I don't use apex. I use serverless. but it's probably the same idea. All the
work of transpiling, minifing, creating lambdas, api gateway, aws resources,
stages etc... are done automatically from the command line. You don't need to
compile/transpile your code, create a zip, upload to s3, create a lambda
import the zip from s3, create the endpoint, connect to the lambda, create the
api gateway template, etc... And do this every time you change something in
your code. It gets frustrating really fast when doing it manually.

~~~
rambos
awesome thanks.

------
poyu
I'm using Serverless framework now, but given that Apex can run codes other
than JS and Python, might as well give it a try!

[https://github.com/serverless/serverless](https://github.com/serverless/serverless)

------
reubano
> curl
> [https://raw.githubusercontent.com/apex/apex/master/install.s...](https://raw.githubusercontent.com/apex/apex/master/install.sh)
> | sh

When did package manager go out of style?

~~~
vertex-four
As soon as people realised there was an easier way than building and testing
packages on 8 different distros, then having people whine because they don't
act "right" for each distro. Packaging takes a lot of time out of development
work.

~~~
reubano
so does that mean there's no equivalent of `pypi` or `npm` for go? Or is the
point to not impose any requirements on the user?

------
rajington
If you're really interested in a serverless stack, check out
[https://github.com/anaibol/awesome-
serverless](https://github.com/anaibol/awesome-serverless)

------
southpolesteve
Apex is totally awesome. Especially if you are just concerned with Lambda. But
if your looking for something that integrates with both Lambda and API gateway
check out the tool I wrote:
[https://github.com/bustlelabs/shep](https://github.com/bustlelabs/shep)

~~~
sagichmal
It's more than a little crass to hijack a post for a project with multiple
advertisements for your own, competing project.

~~~
jkahn
That's majorly overstating it. I disagree. It's interesting and relevant.

------
mahmud
Salesforce is not gonna like this. They already have a "cloud" programming
environment called Apex.

[https://developer.salesforce.com/docs/atlas.en-
us.apexcode.m...](https://developer.salesforce.com/docs/atlas.en-
us.apexcode.meta/apexcode/apex_intro_what_is_apex.htm)

~~~
warfangle
And it's a special kind of hell.

Reserved for people who talk at the movies.

~~~
geertj
I've used Apex and I had a completely different experience. The very tight
platform integration with force.com, SOSQL, resource management, builtin
testing and api framework made it a very productive experience to me. And I
say this with a long background in C, C++ and Python.

~~~
warfangle
Having to ship your code back to the mothership to run unit tests made it
impossible to run TDD (~30 second overhead on each test run). That along with
the test coverage requirements made it a pain on the first level. Unless
you're using their utterly abysmal in-browser editor.

On the second level is if you're building an app that needs to talk
bidirectionally to salesforce on a per customer (app install) basis. Each
salesforce site has their own WSDL URLs. That makes sense if all you're doing
is building something out for your own Salesforce site.

But if you're building something installable over their marketplace .... it's
almost impossible to have a seamless user experience, from the customer's
point of view.

------
davedx
Note: I stumbled across this while Github stalking TJ Holowaychuk to see what
he was up to these days. :)

------
homero
Still waiting for php

