Want to share your content on R-bloggers? click here if you have a blog, or here if you don’t.
We’re happy to share that ShinyProxy 3.2.0 is now available. This release
focuses on a range of small but meaningful improvements aimed at making
ShinyProxy easier to use. Debugging issues is now easier than ever, thanks to
clearer error messages and improved error handling. The documentation has been
extended with more background information (allowing you to better understand how
ShinyProxy works) and additional troubleshooting information. During the last
months, we’ve noticed that the adoption of ShinyProxy has been rapidly growing.
In many cases it’s now the first choice to deploy data science apps (and IDEs)
at both enterprise and research organizations. This motivates us to even further
improve ShinyProxy and its ecosystem. If you want to be part of this journey,
feel free to get in touch, share your thoughts
on the community forum or
contribute on GitHub. This blog
posts covers the major improvements. As always all changes in this version can
be found in the release notes.
ShinyProxy Operator for Docker
ShinyProxy has always supported several container backends. Where ShinyProxy on
Docker is easy to setup, it lacks some of the benefits of running ShinyProxy on
Kubernetes. By adding support for pure Docker hosts to the ShinyProxy Operator,
we’re closing this gap today. The support for Docker has been added to the
existing Kubernetes operator (without any breaking change), therefore a big part
of the logic of the operator is shared between the Docker and Kubernetes
version. Just like using the operator on Kubernetes, this allows for
zero-downtime updates of the ShinyProxy configuration and upgrades to ShinyProxy
itself. It also integrates with Redis to provide session and app persistence. In
short, you can update the ShinyProxy configuration without needing to restart it
manually, and users won’t experience any interruptions during the process.
Although Redis is required for this to work, you don’t need to install or
configure it yourself, the operator handles everything automatically. The
operator even deploys the full monitoring stack. As a final bonus, the operator
automatically configures TLS (using the Caddy
webserver). In conclusion, using the operator on Docker gives you many of the
benefits of using Kubernetes, but in a much more cost-effective way. Of course,
ShinyProxy keeps supporting Kubernetes, since it’s essential in setups that
needs the effortless scaling provided by Kubernetes. In the future, we even want
to support some of the features of the Docker operator on Kubernetes as well.
Monitoring
With a few apps deployed, you can manually look at logs with tools like the
Docker and Kubernetes CLI. However, as the number of apps typically grows
quickly, the need for better monitoring capabilities also grows. Since a long
time,
a monitoring stack is
available for ShinyProxy. This release further enhances the stack, making it
much more user friendly. Many small changes have been made in the dashboards. To
start, all dashboards have a (collapsible) description, these include tips on
using the dashboard. Every panel now also has a help text. The filtering
capabilities of the dashboards have been extended, allowing you to more easily
find the logs or resources you are looking for. The dashboards containing
information about specific apps now also show the metadata about the app (
including the app state). Besides improvements to the dashboards, many technical
improvements were made. All components are updated to their latest version,
while configuration of some components has been simplified. Finally, a technical
limitation has been overcome, ensuring that the logs of apps that fail (almost)
immediately after startup, do actually appear in Grafana. This makes the whole
setup more reliable. In the past, the monitoring stack was only supported on
Kubernetes. With this release, support for pure Docker hosts is added. The stack
is integrated in the operator, which can now automatically deploy it on Docker
hosts.
Error handling
As part of making ShinyProxy more enjoyable to use, the error handling has been
improved. ShinyProxy now better describes the reason why an app fails to
startup, and it can also retrieve error messages directly from the container
backend. The goal is for you to see all relevant information in one place. While
an app is starting, ShinyProxy now (continuously) monitors the container’s
health. If the container crashes, the user is notified immediately, rather than
waiting for a timeout, as in previous versions. Similar improvements have been
made for cases where a running app crashes.
Nobody really likes reading the stack traces generated by Java. That’s why
ShinyProxy now displays the most relevant error message in a concise,
human-readable format at the end of the output when a crash occurs. The complete
stack trace is still available when the error message by itself isn’t sufficient
for troubleshooting.
In addition to improving error messages, we also aim to reduce the number of
errors ShinyProxy generates in the first place. For example, the configuration
of memory and CPU resources has become smarter. ShinyProxy can now parse common
notations for these values, even if they aren’t recognized by the container
backend. See
the updated documentation.
Finally, we’ve made significant improvements to memory usage, particularly for
servers running many apps. In line with this, the official Docker image now
includes optimized Java memory settings by default.
Documentation
Everything you need to know about ShinyProxy is documented
on https://shinyproxy.io. Together with this release, we’ve extended and
updated the documentation. The new concepts category contains pages with
background information about
the app lifecycle
and authentication and authorization.
The troubleshooting page
has been extended with common errors and how to solve them. Finally, the
documentation of the operator has been moved from GitHub to
the website.
Full release notes can be found on the downloads page and updated documentation
can be found on https://shinyproxy.io. As always community support on this new
release is available at https://support.openanalytics.eu.
Don’t hesitate to send in questions or suggestions and have fun with ShinyProxy!
Related