v2.1.0 #50
Closed
crohr
announced in
Announcements
v2.1.0
#50
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
v2.1.0 - 2024-04-03
Main changes
NodeJS => Go
I switched the server to the Go language, for better concurrency control. NodeJS allowed me to put something out quickly, and test the waters. But now that more and more people are using it, large clients (> 10k jobs a day) were hitting into some hard-to-troubleshoot concurrency issues due to the way NodeJS works. Go has a much better concurrency model, and I think it's a better fit for the project anyway.
Agent and Server no longer public with the base license
Agent and Server source codes are now in separate private repositories, and added as submodules of runs-on/runs-on. Only the CloudFormation template and base AMIs are public.
A Sponsorship license will give you access to everything, so that you or your security team can review all the code, and choose to build from source if needed. Other licenses only get the compiled agent and server binaries.
The reason for this change is two-fold:
make it more difficult for the competition to see how the sausage is made, especially now that RunsOn beats the majority of the competition in terms of concurrency, speed, hardware availability, and pricing.
nudge larger clients into buying the more expensive license: until now there was no real incentive to buy a more expensive license. I could put some more advanced features into the more expensive tier, but my current view is to provide the best self-hosted runner solution out there, irrespective of the company size. I also didn't want to use volume-based pricing, since I like to keep billing simple and predictable for users.
Hopefully this will strike a good balance between keeping RunsOn affordable to everyone, and still being sustainable. Please let me know if you have any feedback about this, nothing is written is stone yet.
Features
use an SQS FIFO queue to handle pending job workflows. If your AppRunner service needs to scale up horizontaly, this queue will now be shared across all instances, instead of each having its own in-memory queue. This also helps to not lose jobs in case an AppRunner instance goes down. Nice thing is that it also comes with integrated CloudWatch monitoring, so that you can see the number of pending jobs and maximum delay.
allow to disable cost reports: a new parameter
CostReportsEnabled
is in the CloudFormation stack, to disable the generation and sending of cost reports, if you prefer to look at them in CostExplorer or other means anyway.allow to specify the disk size for default and large runner templates: 2 new CloudFormation parameters are now present, to specify the disk size of the default and large runner templates. In your job definition, simply indicate an
hdd
size and RunsOn will use the default template ishdd
<= default size, or the large template ifhdd
> default size.Fixes
remove the
AppWorkflowQueueSize
parameter from the CF stack. It's no longer needed, as we align on the EC2 rate-limit for now.bring back default runner and image: you can specify
runs-on: runs-on
, and it will work again. Same if you don't specify animage
, it will use theubuntu22-full-x64
by default.Breaking changes
runner=2cpu-linux
) are no longer supported. You must now use eitherrunner=2cpu-linux-x64
orrunner=2cpu-linux-arm64
.Deprecations
base
anddocker
variant of the images as they stand are no longer useful, as the boot time of the full images is now considerably faster. They will most likely be removed in a next version, or will be rebuilt as a much lighter version of the full images.Misc
This discussion was created from the release v2.1.0.
Beta Was this translation helpful? Give feedback.
All reactions