Deploy Personal Site Using AWS
October 19, 2018

In the previous post, it is illustrated how this website is built with Vue. For blogging, it is set up so that posts in Markdown are parsed by markdown-with-front-matter-loader. Also they are pre-generated by prerender-spa-plugin in production build. AWS has a comprehensive set of services for deploying a website and it'll be demonstrated how this site is deployed using them. Specifically the foll... READ MORE
Create Personal Site with Vue
October 10, 2018

I find it's interesting to share something that interests me with others. It's been for about 4 years since I started blogging. Being an R user, I tend to write posts using RMarkdown so that dynamic contents including outputs of code snippets can easily be converted into Markdown. The old blog is created by Jekyll and served via GitHub Pages. When I became interested in web development, I thought ... READ MORE
Shiny to Vue.js
May 26, 2018

In the last post, the async feature of Shiny was discussed. Although it is a remarkable step forward to web development in R, it is not to the full extent that a Javascript application can bring. In fact, (long running) requests of a user (or session) are not impacted by those of other users (or sessions) but, for a given user, all requests are handled sequentially. On the other hand, it is not th... READ MORE
Async Shiny and Its Limitation
May 19, 2018

A Shiny app is served by one (single-threaded blocking) process by Open Source Shiny Server. This causes a scalability issue because all requests are handled one by one in a queue. Recently the creator of Shiny introduced the promises package, which brings asynchronous programming capabilities to R. This is a remarkable step forward to web development in R.... READ MORE
API Development with R Part II
November 19, 2017

In Part I, it is discussed how to serve an R function with plumber, Rserve and rApache. In this post, the APIs are deployed in a Docker container and, after showing example requests, their performance is compared. The rocker/r-ver:3.4 is used as the base image and each of the APIs is added to it. For simplicity, the APIs are served by Supervisor. For performance testing, Locust is used.... READ MORE
API Development with R Part I
November 18, 2017

This is 2 part series in relation to API development with R. In this post, serving an R function with plumber, Rserve and rApache is discussed. OpenCPU is not discussed partly because it could be overkill for API. Also its performance may be similar to rApache with Prefork Multi-Processing Module enabled. Then deploying the APIs in a Docker container, making example HTTP requests and their perform... READ MORE
Serverless Data Product POC Frontend Part IV
April 17, 2017

In the previous posts, it is discussed how to package / deploy a R model with AWS Lambda and to expose the Lambda function via Amazon API Gateway. Main benefits of serverless architecture is cost-effectiveness and being hassle-free from provisioning/managing servers. While the API returns a predicted admission status value given GRE, GPA and Rank, there is an issue if it is served within a web app... READ MORE
Serverless Data Product POC Frontend Part III
April 13, 2017

In Part I of this series, R and necessary libraries/packages together with a Lambda function handler are packaged and saved to Amazon S3. Then, in Part II, the package is deployed at AWS Lambda after creating and assigning a role to the Lambda function. Although the Lambda function can be called via the Invoke API, it'll be much more useful if the function can be called as a web service (or API). ... READ MORE
Serverless Data Product POC Backend Part II
April 11, 2017

In the previous post, serverless event-driven application development is introduced. Also how to package R, necessary libraries/packages and a Lambda function handler is discussed. No need of provising/managing servers is one of the key benefits of the architecture. It is also a cost-effective way of delivering a data product as functions are executed on-demand rather than in servers that run 24/7... READ MORE
Serverless Data Product POC Backend Part I
April 8, 2017

This is the first post of Serverless Data Product POC series and I'm planning to introduce a data product in a serverless environment. For the backend, a simple logistic regression model is packaged and tested for AWS Lambda - R is not included in Lambda runtime so that it is packaged and run via the Python rpy2 package. Then the model is deployed at AWS Lambda and the Lambda function is exposed v... READ MORE