
posit::conf(2023) Workshop: Shiny in Production: Tools and Techniques
Register now: http://pos.it/conf Instructors: Eric Nantz and Mike Thomas Workshop Duration: 1-Day Workshop This course is for you if you: • had a Shiny application work just fine on your machine, but encounters critical issues after deployment • are eager to prospectively apply techniques before deployment to plan for the unexpected • want to know the benefits and trade-offs between various ways of hosting Shiny applications Shiny brings tremendous possibilities to share innovative data science workflows with others inside an intuitive web interface. Many in the Shiny community have shared effective development techniques for building a robust application. Even with the best intentions during application development, a myriad of issues can arise once it leaves the confines of your machine. In this one-day workshop, you will implement core techniques to account for common scenarios that arise once your application is used in production, such as accounting for thousands of simultaneous users, how effective profiling can address performance bottlenecks, and ensuring your application is doing as little as possible to ensure a smooth and responsive experience. This course assumes intermediate knowledge of building Shiny applications in R and prior experience deploying an application to a platform such as the shinyapps.io service or products like Posit Connect
image: thumbnail.jpg
Transcript#
This transcript was generated automatically and may contain errors.
Hi, my name is Michael Thomas, and I'm the Chief Data Scientist at Ketchbook Analytics. I am so excited to be teaching a workshop at this year's PositConf with my great friend Eric Nance on tools and tips for building a shiny app that can thrive in a production environment.
And I wanted to talk to you about three things that I am so excited about for this workshop. The first is the concept of modularization. So if you've built a shiny app in the past using a single app.r script, or maybe separate UI and server scripts, you know that those scripts can get very big very fast.
Everything that we will do in this workshop will use shiny modules and will be a great showcase on how to modularize your code in a way that is much more concise, legible, and maintainable. We'll also show you how to get these modules to talk to each other so that you can begin to build shiny apps that are truly ready for a production environment.
Deployment strategies
The second topic that I am so excited about for this workshop is deployment. And we know that we can build a great app that works phenomenally well on our own machine. But what good is that if we can't share it with end users or a wider audience? There are a lot of different deployment strategies and techniques, depending on the type of app that you are building, who you need to share it with and where you need to share it. And this can come down to whether the app is going to be public-facing or private-facing as well.
And this is one of the trickiest parts of the whole shiny app development process and perhaps one of the parts that gets talked about the least. So we are thrilled to be able to make this a part of our workshop and walk you through these different deployment strategies so that you can come out of this workshop with a great understanding of how you will deploy apps within your own organization or for your own use case.
User experience and performance
And the last thing that I am so excited about in this workshop is the fact that user experience will be a theme around everything that we do in the workshop. The concept of defending your UI will get talked about. How easy is it for users to take an action within your app that they can't undo? How performant is your app when multiple users are using it concurrently? We are going to put ourselves in the shoes of the server side of our app and think about how often it's listening or how often it needs to be listening to users and actions.
After all, our shiny app could be housing a complex machine learning model or running an intensive Bayesian simulation. But depending on how easy it is for users to navigate, the app can mean the difference between massive adoption of your app within the organization or nobody really using it and all of that hard work going to waste.
But depending on how easy it is for users to navigate, the app can mean the difference between massive adoption of your app within the organization or nobody really using it and all of that hard work going to waste.
So we sincerely hope that you join us for this workshop and we are so excited to see you in Chicago.
Eric's perspective on the workshop
Hello, I'm Eric Nanz and I'm so excited to be teaching a workshop at this year's PositConf all about tools and techniques to help you run your shiny application successfully in production. And here are the top three reasons why I think you might benefit from this workshop.
Across the community, you will find terrific resources centered around effective shiny development best practices. After you deploy your application, you might encounter issues that you did not have happen when it was just you developing the application and you might find yourself asking, hey, it worked just fine on my machine. In this workshop, we're going to tell you about effective principles that can help you plan for the unexpected, such as effective profiling of your application's resource usage, the ways that you can simultaneously simulate hundreds or even thousands of users accessing your application at once, and effective testing strategies from both the backend and user interface perspectives to help illuminate issues before your users encounter them.
As your shiny application grows in complexity, you may find it handling many different tasks all at once, which can lead to degraded performance. So in this workshop, we're going to teach you ways that you can make your application actually do less, only do what it needs to do, such as tapping into external resources for data sources or leveraging APIs to help with some additional processing and ways that you can organize the way objects are stored in your application, which may greatly streamline the processing and give your users that snappy feeling that you want them to have when they visit your app.
Well, in this workshop, much like the rest of the material, we're going to go hands-on and explore these different deploying strategies together and look at the different advantages and perhaps even pitfalls that you might encounter throughout these options. And you're going to get hands-on experience with platforms such as Posit Connect, and we'll also explore container technology for even more flexible options available to you for deployment.
I'm really passionate about enabling shiny users that take their skills to the next level, especially in this very important area of successfully running your application in production. I hope you join me at this year's PositConf for this exciting workshop. And to register, just visit posit.co slash conference for all the details. I hope to see you there.
