Apex lets you build, deploy, and manage AWS Lambda functions with ease
apex.run
apex.run
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.
[1] https://medium.com/apex-software/announcing-apex-software-in...
[2] https://strongloop.com/strongblog/tj-holowaychuk-sponsorship...
[3] https://medium.com/@tjholowaychuk/farewell-node-js-4ba9e7f3e...
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.
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.
https://github.com/Miserlou/django-zappa
https://aws.amazon.com/blogs/compute/building-enterprise-lev...
plus something else that was featured on HN recently and I can't find or remember.
Amazon itself has a tutorial about the integration of the API gateway with Lambda at http://docs.aws.amazon.com/apigateway/latest/developerguide/...
I saw an evangelist demoing it at an Amazon Summit a month ago. It's so time consuming and error prone that you don't want to do it manually more than once (not that he made any mistake).
So I won't say it's a corner case. Maybe it's too early to know what Lambda will grow into.
But I'd advise you to design your LambdaNews service using an asynchronous event-driven model instead. You'll find it reduces complexity and makes for a snappier, more reliable client experience (e.g. no 429 throttling responses to handle). You'll also find that the supporting AWS services like Kinesis, Cognito, IoT, SNS, SQS, DynamoDB, S3 etc are much more in tune with that pattern.
The fact is that async platforms scale much better than anything that has to block and poll. It should hardly be surprising that at AWS's massive scale, it becomes a preferred service design pattern.
Pub/sub integration people have known this for decades, it is not news.
obdisclosure: I am ex-AWS but all the above is derived from public statements and documentation.
In theory, you could do the same thing with nginx and load balancers and multiple ec2 instances, but it'd be a lot more work. And I think the real magic is with integration with Lambda. That's a game-changer.
I wish they (they being AWS or Apex or someone in this space) said this explicitly. Every time I've read about Lambda I've thought it's interesting but am not sure how/where to invoke it in production.
http://docs.aws.amazon.com/lambda/latest/dg/intro-core-compo...
IMO Autoscaling ec2 instances to daily traffic is not a trivial problem and you'll never get the granularity you can with Lambda
It currently only supports node. If you are looking for just lambda, Apex is an awesome tool. But for us we needed end to end integration with API gateway and I wasn't happy with any of the other tools out there.
When did package manager go out of style?
What are the tools to use to solve this?
Plenty of people willing to help out!
The Fedora wiki actually contains a lot of general information on just creating RPM's, if you aren't planning on submitting and maintaining your software for inclusion in the Fedora Software Collection you don't need to be overly-zealous about following the Fedora Packaging Guidelines (though we hope you do, because it makes your software easier to use and less likely to break). "How to create an RPM package" is a good start [0]. The rpmdev-newspec tool part of the rpmdevtools package will generate you a decent skeleton you can use to get started with, though they still have some warts as they haven't been updated (they still call rm -rf $RPM_BUILD_ROOT which hasn't been necessary since EL6).
For the most part, an SRPM built for Fedora or EL* should also be able to be compiled for OpenSUSE - with some exceptions where package naming differs or incompatible software versions are present (you'll have to solve these issues with conditionals). The same will typically be the case with .deb's built for Debian and derivatives.
The Open Build Service from the OpenSUSE project [1] is an excellent tool for building and publishing packages for many different distributions, it won't save you from writing your spec files and debian/ files, but it will save you some time in building new releases afterwards (and it encourages the one rpmspec-with-conditionals workflow, so you don't maintain separate spec files for different distributions).
Of course, I'd always like to see developers trying to get their software in the distribution repositories, but you probably don't want to go through the hassle of joining Fedora/Debian/Ubuntu/etc just for that. However, if you already have a working rpmspec file and an sane build system that doesn't require crazy tweaks you can probably find a packager willing to work with you.
I haven't messed with debian packaging in a while, but if you have any questions about creating RPM's feel free to email me (snuxoll@fedoraproject.org).
[0]: https://fedoraproject.org/wiki/How_to_create_an_RPM_package
https://developer.salesforce.com/docs/atlas.en-us.apexcode.m...
Reserved for people who talk at the movies.
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.
Problems usually come from trying to make applications that aren't well suited to the Salesforce platform work on it natively - it's great for CRUD apps with workflows, a custom visualforce page here or there and some more complicated logic implemented in Apex sprinkled in - but if you are resorting to Apex to do the majority of your work you are likely using the wrong tool for the job.