Announcements
- There have been no announcements in the last month.
Recent Updates
- 2024.10.08.1
Faster Image Builds, A Big Kernel Update, and Major Improvements Land
Image management is in the spotlight with a completely re-written flattener and added caching functionality. These upgrades have lead to 2-3x faster build cycles in our testing. CycleOS has been upgraded to use the latest 6.6.13 kernel as well as cgroups2, stack builds now support more flexible build variables, servers can be evacuated, and pipelines support step reordering through the portal. For the native load balancer, the web application firewall has been improved to support more complex conditions and the proxy feature has been expanded.
- improvement
Stack Variables
Stack variables no longer get injected into the saved 'stack build run', instead they're stored separately and utilized only at runtime. This prevents sensitive variables and secrets from being visible when users lookup previous stack builds.
- fixed
Neighbor Lookup Race Condition
We fixed a race condition that would occasionally prevent some instances from being unavailable to other instances for roughly 60 seconds immediately following a deployment.
- improvement
6.6.13 Kernel
CycleOS has been upgraded to utilize the latest long term support (LTS) Linux Kernel.
- improvement
Cgroups V2
With the latest kernel upgrade, we've also updated Cycle to utilize cgroups v2 which enables more efficient, and customizable, resource constraints for containers.
- changed
Removed Image Source Create from Pipelines
Supporting Image Source Create in pipelines encouraged a Cycle anti-pattern. We have since removed this setup to make it easier to adopt best practices.
- improvement
Updated Nvidia Drivers
CycleOS now supports the 560.35.03 Nvidia drivers. Cycle natively supports GPU passthrough for any datacenter-class Nvidia GPU.
- improvement
Web Application Firewall
The WAF now supports more complex rule conditionals along with more supported filters (URL Matching + Method Matching) for HTTP transports.
- improvement
Proxy URL Rewriting
The proxy handler in the Native LB now supports URL rewriting based on the MatchPath for proxy requests.
- improvement
Active Instances for Functions
The Functions Scheduler API now supports /active-instances which is a real-time return of functions that are currently processing workloads.
- improvement
Image Building Performance
We've completely rewritten our image packer to handle layer extraction/compression in a parallel manner. This improvement decreases build times by 40% - 60% for most images.
- added
Image Caching
We've added image caching into our build systems for hubs in the Standard or Scale tiers. This is a short-term ephemeral cache that will help with concurrent builds within an activity window. After 6 hours of inactivity, the caches are reset entirely.
- added
Server Evacuation
Users can now migrate all of the instances from one server to another in a single action. Additionally, this puts the server into an 'evacuated' state which prevents it from accepting new instances. Load balancers must still be moved manually.
- added
Instance Volume Resizing
We've exposed the ability to increase an instance's volume via both the portal and API. Previously, this action required a Cycle team member to be involved.
- improvement
Pipeline Reordering
Users can now reorder pipeline steps in the portal.
- improvement
Inner-String Stack Variables
Stacks now support variables that are nested within a string, for example "api-{{version}}"
- improvement
Pipeline Runs Data Enrichment
All pipeline runs will now link to related resources which were created or consumed during the run and will also show build logs for image imports and stack builds.
- 2024.08.13.1
Instance Logging Alpha, Stacks from Environments, and More
This release marks the official beginning of Cycle's Logging Alpha. The alpha features the ability to see up to 72 hours of container instance logs, including simple to complex search. Users will also now have access to export their environments to stacks. This means that any environment can now be "exported" into a stack file and redeployed to create a new environment. Finally, a fix has been made to stacks so that when using YAML markup, scoped variables now properly import as expected.
- added
Instance Logging (Alpha)
The alpha release of logging is now live. From the container modal, gain access to the last 72 hours worth of logs for your instances. You can also utilize this functionality for simple or complex (regex) search.
- added
Stack from Environment
Configure an environment to exactly how you want it, then utilize this feature (found within Environment Settings) to export the environment to a stack.
- fixed
Scoped Variables in Stacks
We recently discovered a bug that prevented scoped variables in YAML stacks from being properly imported, this has been resolved.
- fixed
Deployments Not Showing Up
Deployments wouldn't properly display in the portal for environments that had more than 25 containers, this has been resolved.
- 2024.07.29.1
Magic Variables, DNS Zone Imports, and Scoped Variable Fixes
In this release users will gain access to magic variables in pipelines. Dynamic pipelines can now take advantage of 4 different magic variables that will inject a special value based on the definition into the field assigned. This will make unique field entries that need to be tied to date like values much simpler to work with. DNS zones can now be imported via file, greatly reducing manual work in migrating to Cycle DNS. Finally, we've fixed an environment scoped variable priority order which could result in certain undefined environment variables not correctly being assigned when defined in both container config and scoped variables.
- improvement
V1 Load Balancer: Matching
Users can now match routes to include or exclude specific containers.
- fixed
Scoped Variables Priority Order
A bug that would cause environment variables with blank definitions to not be appropriately overwritten by scoped variables has been resolved.
- added
Magic Variables in Pipelines
Users can now take advantage of magic variables in pipelines: {{-date}} {{-date-time}} {{-time}} {{-time-rfc3339}}, which will return these values in place of normal pipeline variables which require an input value on each pipeline run.
- added
DNS Zones Import
Users can now import a DNS Zone file to their zones on Cycle, making transferring domains much simpler.
- improvement
Discovery Throttle
The discovery service now has a throttle on queries that will protect users from services that would otherwise overwhelm the service with lookup requests.
- improvement
Pipelines: Overwrite Runtime Config
Added the ability to Overwrite Runtime Config on the pipeline step Reimage Container, giving more flexibility to users looking to mutate the container runtime configuration on deployment.
- added
V1 Load Balancer Router Response Graph
Users will now notice a Router Response graph located on the load balancer service dashboard for V1 type load balancers. This graph will show the HTTP response code if the load balancer is in HTTP mode.
- 2024.07.09.2
Web Application Firewall (alpha) and Improved Pipeline Parallelism
The team is excited to release the alpha version of our web application firewall, which includes the ability to block or allow traffic based on IP at the load balancer. This first release marks the beginning and the WAF will be expanded to support features like geographic matching, url matching, and http controls over headers and methods. Pipeline parallelism has been improved through the rebuilding of the locking / exclusion mechanisms and the native load balancer now supports rewrite rules that allow for granular URL rewriting.
- added
Web Application Firewall (alpha)
Using the Native Cycle LB? You can now block IPs and IP ranges at the load balancer. This is the first release with WAF functionality -- much more to come!
- improvement
URL Rewriting
Users can now use URL rewriting (with variables!) in the Native Cycle LB. Use regex, with groups, for a path match then utilize a $$# format to insert the corresponding group matches.
- fixed
Instance Console Crashing
Previously non-UTF8 characters would cause the console to crash and reconnect in a loop.
- fixed
GCP Server Tagging
In the previous update, we started tagging servers at infrastructure providers. Under certain conditions, we were tagging servers with a character that wasn't allowed, preventing a provision.
- fixed
Race Condition with Wildcard Domains
We discovered, and fixed, a race condition that existed when a load balancer was instructed to serve traffic for both a wildcard domain and a non-wildcard domain that would exist underneath the same wildcard.
- improvement
Better Parallelism With Pipelines
We rebuilt the locking / exclusion mechanism in pipelines to better determine which resources needed read locks vs write locks. This improvement results in better data integrity while also enabling better performance while running concurrent pipelines.
- 2024.06.28.3
Native Monitoring, Granular ACLs, and Enhanced DNS Capabilities
This update marks the beginning of our march toward native monitoring, laying the groundwork for comprehensive metrics, events, logging, and alerting. Users will notice initial visual enhancements, with a full monitoring dashboard to follow. This release also introduces granular access control lists (ACLs), allowing detailed permission settings for several resource types. Geographic DNS (GeoDNS) has been added to support the most latency-sensitive applications, and other improvements include enhanced cluster management, customizable shared memory per container, a rebuilt autoscaler, and expanded support for scoped variables.
- added
Monitoring Platform
We've officially begun the start of Cycle's native monitoring (metrics, events, logging, and alerts) solution. This release contains the base primitives and data collection that the remainder of the monitoring solution will be built upon. You'll notice some new graphs and visual components in the portal, but a future release will contain a proper monitoring dashboard.
- added
Granular ACLs
Building off the custom roles functionality we released in our previous update, organizations can now restrict access to clusters, environments, pipelines, and more via granular access control lists.
- added
Geographic DNS
Deploying a latency sensitive application? Enable GeoDNS on any environment with 3 or more load balancers (entrypoints) to ensure your users get routed to the closest load balancer(s) to your users.
- improvement
Clusters
Previously, Clusters were simply an identifier. Now, with Clusters being their own resource, they support ACLs with other new capabilities to come.
- improvement
Custom SHM Size
Users can now customize the size of the /dev/shm (shared host memory) device that gets attached to container instances.
- added
Custom DNS Empty Set
Since Cycle is IPv6 native, we previously delayed empty IPv4 lookup responses to assist with compatibility for older applications. We no longer enforce that delay for new environments, though it can be set via the discovery settings.
- improvement
Auto Scaling
We've rebuilt the autoscaler to use the new monitoring primitives. These metrics enable us to perform autoscaling in a significantly more efficient, and predictable, manner.
- improvement
Scoped Variables Files
Cycle will now generate the directories required to support the injection of scoped variables who utilize the 'file' access type.
- improvement
Scoped Variables with Identifiers
Users can now specify container identifiers for limiting scoped variables, making gitops/pipeline automation easier.
- improvement
Build Variables Support in Pipelines
When building images via pipelines, users can now pass variables to be injected into a container's build process.
- improvement
YAML Support for Stacks
Not a fan of JSON? Stacks can now be defined via YAML.
- improvement
Instance Console Output
The container instance console now persists (up to 128kb) through updates and restarts.
- 2024.04.23.7
UDP Support, Functions in Pipelines, and Latency Aware Load Balancing!
The latest release of the Cycle Platform brings powerful support for native gaming and video streaming via UDP, more granular configuration for function containers, and massive performance gains when using Cycle's native load balancer.
- added
Ability to Trigger Function via Pipeline
Functions can now be triggered via pipeline. Have a migration/init script that needs to run as part of a deployment? This can now easily be accomplished with functions and pipelines.
- added
UDP Support
The Native Load Balancer now supports UDP connections which can be useful for VPNs, video streaming, gaming, etc.
- added
Function Configuration
Max Runtime, Max Queue time, and other settings can now be configured for functions within the container config.
- added
Latency Aware Load Balancing
The Native Load Balancer now supports, on a per-router basis, latency-based load balancing ensuring that traffic will be routed to the top quartile of instances relative to the ingress load balancer. This can reduce bandwidth costs while also yielding performance increases within environments that have multiple load balancers.
- added
Support for Multiple Stack Files
Users can now specify the path to a stack file inside of a repo, enabling teams to have multiple stacks from one repo source.
- improvement
Auto Release Functions (Beta)
Functions that terminate will now autorelease from the scheduler so they can be used again.
- improvement
Native Load Balancer V1 Optimization
We've made a few improvements within the Native LB to more quickly adapt to routing changes. Additionally, the Native LB now uses less internal API calls when aligning with container state changes.
- fixed
Portal: Fixed Load Balancer Traffic Graphs
We fixed a calculation error in our traffic graphs that was showing false traffic spikes.
- improvement
Portal: Pipeline Support for Scoped Variables in Stacks
Scoped variables, that exist within stacks, can now be configured via pipelines.