Commit Graph

1025 Commits

Author SHA1 Message Date
Travis Reeder
855dcf6ac7 fn tool: 0.3.11 release [skip ci] 2017-06-15 08:35:11 -07:00
Travis Reeder
6800f55ef7 Merge branch 'master' of https://gitlab-odx.oracle.com/odx/functions 2017-06-15 08:33:59 -07:00
Travis Reeder
63680ad815 Added alpine fn release. 2017-06-15 08:33:53 -07:00
Denis Makogon
08c1a8adf9 Merge branch 'change_tests' into 'master'
Change way env vars for tests are set

See merge request !56
2017-06-14 13:34:06 -07:00
James
8207735aec Remove port. 2017-06-14 12:50:23 -07:00
James
7bfc233fc5 Add : as it removes need for if. : makes it use if var is empty or unset not just unset 2017-06-14 12:43:00 -07:00
James
1d8d24b9af Use localhost or docker host. 2017-06-14 12:37:52 -07:00
James
1523144ff9 Change way env vars for tests are set 2017-06-14 12:17:40 -07:00
James Jeffrey
b45ad6d5f9 Merge branch 'update_to_deploy' into 'master'
Fire off deploy trigger

See merge request !50
2017-06-13 11:52:43 -07:00
James Jeffrey
5d836d7a74 Merge branch 'deploy_trigger' into 'master'
Fire trigger to deploy functions-svc

See merge request !51
2017-06-13 11:49:44 -07:00
Reed Allman
84c7b4d656 Merge branch 'fix-fn-glide' into 'master'
fix the fn glide

See merge request !54
2017-06-13 11:47:14 -07:00
Travis Reeder
6480725b51 fn tool: 0.3.10 release [skip ci] 2017-06-13 11:39:40 -07:00
Travis Reeder
9ff12e42c0 Merge branch 'master' of https://gitlab-odx.oracle.com/odx/functions 2017-06-13 11:38:58 -07:00
Travis Reeder
da70a0ef67 Fixing fn release script. 2017-06-13 11:38:54 -07:00
Reed Allman
60014af2c4 Merge branch 'Makefile-docker-run-proxy' into 'master'
Added -e NO_PROXY and -e HTTP_PROXY to docker-run to fix docker failure to connect to host unix.sock

See merge request !52
2017-06-13 11:24:34 -07:00
Travis Reeder
e36cde079d Merge branch 'wait-time' into 'master'
adds wait time based scaling across nodes

See merge request !48
2017-06-13 11:20:25 -07:00
Shaun Smith
a31bbdc676 Added -e NO_PROXY and -e HTTP_PROXY to docker-run to fix docker failure to connect to host unix.sock 2017-06-13 11:15:21 -07:00
Travis Reeder
4a89f5648d fixing fn release script 2017-06-13 11:14:34 -07:00
Travis Reeder
9981004af3 fn tool: 0.3.9 release [skip ci] 2017-06-13 11:11:02 -07:00
Travis Reeder
f9cc13c7f5 Fixing fn release script. 2017-06-13 11:10:22 -07:00
Travis Reeder
475a070278 fn tool: 0.3.8 release [skip ci] 2017-06-13 11:07:53 -07:00
Travis Reeder
012855ee0d Fixing fn release script. 2017-06-13 11:07:18 -07:00
James
03bacc5085 Fire trigger to deploy functions-svc 2017-06-13 09:59:55 -07:00
James
e096364757 Fire off deploy trigger 2017-06-12 15:01:46 -07:00
Reed Allman
8790859532 fix the fn glide 2017-06-10 02:35:26 -07:00
Reed Allman
75c5e83936 adds wait time based scaling across nodes
this works by having every request from the functions server kick back a
FXLB-WAIT header on every request with the wait time for that function to
start. the lb then keeps track on a per node+function basis an ewma of the
last 10 request's wait times (to reduce jitter).  now that we don't have max
concurrency it's actually pretty challenging to get the wait time stuff to
tick. i expect in the near future we will be throttling functions on a given
node in order to induce this, but that is for another day as that code needs a
lot of reworking. i tested this by introducing some arbitrary throttling (not
checked in) and load spreads over nodes correctly (see images). we will also
need to play with the intervals we want to use, as if you have a func with
50ms run time then basically 10 of those will rev up another node (this was
before removing max_c, with max_c=1) but in any event this wires in the basic
plumbing.

* make docs great again. renamed lb dir to fnlb
* added wait time to dashboard
* wires in a ready channel to await the first pull for hot images to count in
the wait time (should be otherwise useful)

future:
TODO rework lb code api to be pluggable + wire in data store
TODO toss out first data point containing pull to not jump onto another node
immediately (maybe this is actually a good thing?)
2017-06-09 16:30:34 -07:00
Reed Allman
8146864b0b Merge branch 'fix-logrus' into 'master'
hack logrus sirupsen name change

See merge request !47
2017-06-09 14:17:23 -07:00
Reed Allman
c23d893da6 Merge branch 'deploy_sh' into 'master'
Deploy sh

See merge request !46
2017-06-09 13:42:59 -07:00
James Jeffrey
79f1dab007 Deploy sh 2017-06-09 13:42:59 -07:00
Reed Allman
aa170c918f Merge branch 'fix-tests' into 'master'
fix up the tests

See merge request !44
2017-06-08 13:09:48 -07:00
Denis Makogon
1c9c30e062 Merge branch 'update-fn-tool' into 'master'
Update fn tool

See merge request !42
2017-06-08 11:46:56 -07:00
Denis Makogon
52137e3b61 Update fn tool 2017-06-08 11:46:56 -07:00
Reed Allman
478245de4c Merge branch 'rm-max-c-2' into 'master'
clean up hotf(x) concurrency, rm max c

See merge request !40
2017-06-07 15:51:07 -07:00
Travis Reeder
b737ce1f05 Merge branch 'fix-cli' into 'master'
need to use >=17.05 (not 17.5), add trimming for weird builds

See merge request !43
2017-06-07 15:48:00 -07:00
Reed Allman
9ed66591c3 need to use >=17.05 (not 17.5), add trimming for weird builds 2017-06-07 15:48:00 -07:00
Reed Allman
c6e4aa1a63 hack logrus sirupsen name change
:'( not sure how to fix dep tool... punting (maybe we should remove it so that
nobody else will try to use it?)

https://github.com/sirupsen/logrus/issues/553#issuecomment-306591437
2017-06-06 16:45:45 -07:00
Denis Makogon
17bbfa0cdf Merge branch 'multi-stage-builds' into 'master'
Moving dep builds into Dockerfile and multi-stage builds.

Closes #36 and #39

See merge request !31
2017-06-06 15:02:08 -07:00
Travis Reeder
f628e39490 Moving dep builds into Dockerfile and multi-stage builds. 2017-06-06 15:02:08 -07:00
Denis Makogon
0276a1c156 Merge branch 'func_status' into 'master'
[Feature] Function status

See merge request !15
2017-06-06 14:12:50 -07:00
Denis Makogon
3f065ce6bf [Feature] Function status 2017-06-06 14:12:50 -07:00
Denis Makogon
6334f44a72 Merge branch 'update-source' into 'master'
Updating source to funcy/functions_go

See merge request !41
2017-06-06 12:41:28 -07:00
Denis Makogon
28e484a370 Updating source to funcy/functions_go 2017-06-06 22:40:48 +03:00
Travis Reeder
ebb0889869 Merge branch 'functionc_go' into 'master'
Update functions_{lang} tool to recent git source

See merge request !38
2017-06-06 10:03:56 -07:00
Denis Makogon
1a2a805740 Update functions_{lang} tool to recent git source 2017-06-06 19:50:33 +03:00
Reed Allman
636af2f7ea fix up the tests 2017-06-06 05:04:22 -07:00
Reed Allman
9edacae928 clean up hotf(x) concurrency, rm max c
this patch gets rid of max concurrency for functions altogether, as discussed,
since it will be challenging to support across functions nodes. as a result of
doing so, the previous version of functions would fall over when offered 1000
functions, so there was some work needed in order to push this through.
further work is necessary as docker basically falls over when trying to start
enough containers at the same time, and with this patch essentially every
function can scale infinitely. it seems like we could add some kind of
adaptive restrictions based on task run length and configured wait time so
that fast running functions will line up to run in a hot container instead of
them all creating new hot containers.

this patch takes a first cut at whacking out some of the insanity that was the
previous concurrency model, which was problematic in that it limited
concurrency significantly across all functions since every task went through
the same unbuffered channel, which could create blocking issues for all
functions if the channel is not picked off fast enough (it's not apparent that
this was impossible in the previous implementation). in any event, each
request has a goroutine already, there's no reason not to use it. not too hard
to wrap a map in a lock, not sure what the benefits were (added insanity?) in effect
this is marginally easier to understand and less insane (marginally). after
getting rid of max c this adds a blocking mechanism for the first invocation
of any function so that all other hot functions will wait on the first one to
finish to avoid a herd issue (was making docker die...) -- this could be
slightly improved, but works in a pinch. reduced some memory usage by having
redundant maps of htfnsvr's and task.Requests (by a factor of 2!). cleaned up
some of the protocol stuff, need to clean this up further. anyway, it's a
first cut. have another patch that rewrites all of it but was getting into
rabbit hole territory, would be happy to oblige if anybody else has problems
understanding this rat's nest of channels. there is a good bit of work left to
make this prod ready (regardless of removing max c).

a warning that this will break the db schemas, didn't put the effort in to add
migration stuff since this isn't deployed anywhere in prod...

TODO need to clean out the htfnmgr bucket with LRU
TODO need to clean up runner interface
TODO need to unify the task running paths across protocols
TODO need to move the ram checking stuff into worker for noted reasons
TODO need better elasticity of hot f(x) containers
2017-06-05 20:04:13 -07:00
James Jeffrey
7e02597142 Merge branch 'chad-update-tutorial' into 'master'
adding rust, fixing python/php, adding ability to detect rusts src/main.rs file. Updates all tutorials as well.

See merge request !39
2017-06-05 15:52:31 -07:00
Chad Arimura
dd816dece6 dont upset the java peeps 2017-06-05 14:29:56 -07:00
Chad Arimura
c8fab6f224 changed mind, back to hello-{lang} for better naming of tutorial 2017-06-05 14:27:30 -07:00
Chad Arimura
fea5fbf7b0 update gitignore, remove func.yaml and gitignore for php 2017-06-05 14:15:14 -07:00