R is one of the most preferred languages for creating machine learning models. There are various articles around the internet that teach you how to use R and develop models. However, most of us lack the knowledge on deploying R models in the production environment of an organization and on making it available to users who can use the model without having R installed on their system. Almost all data-related software tools have an enterprise version of R, or they have at least an inbuilt integration with R. R can also be deployed stand-alone as web applications or web services.
Here are some insights based on my experience and knowledge of R model deployments.
- R is engineered to be enterprise-ready by various product development organizations, such as Oracle R Enterprise and Microsoft R Server. Any R code created in these environments is production-ready and easy to deploy. We just need to follow a few steps that are readily available in their documentation for production deployment.
- R has integrations with various visual analytics and BI tools such as Tableau, Power BI, and Microstrategy. If you are creating an R model and plan on bringing advanced analytics capabilities for your BI dashboards, then deploy the R models using these integrations.
- If you use SAP HANA as your data warehouse or ERP backend, then deploying the R models using SAP HANA—R integration is a good idea.
- If you are already using advanced analytics tools such as KNIME, Rapid Miner, IBM SPSS, or SAS, but want to leverage the benefits of R capabilities, we can use the inbuilt integration mechanism that these tools offer.
- R models that use H2O’s algorithms can be converted to POJO classes and can be deployed in a Java environment.
- We can also create a shiny application to implement R as a web application. There is a live R web application demo at DZone. Check it out!
- You can also use Plumber to convert your R code into a web API efficiently using some individual one-line comments.
These are some of the possible ways through which we can deploy R models — and I understand that there are many more options! If you know any other techniques, please share in the comments section. It will help me and others to learn.