成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[原]打造數(shù)據(jù)產(chǎn)品的快速原型:Shiny的Docker之旅

seal_de / 3095人閱讀

摘要:使得非傳統(tǒng)程序員的使用者不必依賴于前端后端工程師就可以自己依照業(yè)務(wù)完成一些簡單的數(shù)據(jù)可視化工作,快速驗證想法的可靠性。本文以上的的新主機為例。

概述

本文將介紹如何通過Docker+Shiny-Server技術(shù)極速打造Web開發(fā),并通過實戰(zhàn)案例進行演示。

為什么使用Shiny

Shiny是R中的一種Web開發(fā)框架,使得R的使用者不必太了解css、js只需要了解一些html的知識就可以快速完成web開發(fā),且shiny包集成了bootstrap、jquery、ajax等特性,極大解放了作為統(tǒng)計語言的R的生產(chǎn)力。使得非傳統(tǒng)程序員的R使用者不必依賴于前端、后端工程師就可以自己依照業(yè)務(wù)完成一些簡單的數(shù)據(jù)可視化工作,快速驗證想法的可靠性。

為什么使用Docker

如果說2年以前,你們沒有學(xué)習(xí)Git、GitHub你就落伍了?,F(xiàn)在,流行的方向則是Docker!Docker是一種類似于虛擬機的技術(shù),主要解決快速部署的問題,在Docker中安裝的軟件和主機中的軟件可以完全隔離,并通過Daocloud或者hub.docker.com等云服務(wù)快速建立Docker倉庫,快速復(fù)用Docker鏡像。Docker已經(jīng)不僅僅是DevOps人員手中的神器了,每一個開發(fā)者都應(yīng)該學(xué)會如何使用Docker。

由于Docker的標準交付特性使得 shiny 應(yīng)用在運維、部署、交付時都是標準化的,在大規(guī)模團隊協(xié)作時體現(xiàn)出了很大的價值,開發(fā)和運維人員不必再為環(huán)境配置擔(dān)心,提高了開發(fā)效率。而對于個人開發(fā)者,參加黑客馬拉松或者快速原型開發(fā),Docker也是不二之選,利用Docker線程級別的快速復(fù)用機制也使得一個上G的環(huán)境配置可以在很短的時間內(nèi)快速完成。

Docker的弊端在于對于個人開發(fā)者而言,想要構(gòu)建一個標準的Docker鏡像并提交到Docker Hub或自建的Docker Registery上需要按規(guī)定寫DockerFile, 有時候這反而會增加項目的復(fù)雜度。

準備

VPS或任意一臺 類Unix服務(wù)器,本文選用了AWS的Ubuntu服務(wù)器作為示例。實際使用中Windows或者Mac電腦下載DockerToolBox軟件安裝docker后也可以使用。

部署 步驟一:安裝Docker

首先,ssh進入linux主機。本文以AWS上的ubuntu14.04的新主機為例。
參考文獻1

ssh -i harryzhu.pem [email protected]

其次,安裝Docker相關(guān)的組件

sudo apt-get update
wget -qO- https://get.docker.com/ | sh
步驟二:安裝Shiny-Server

安裝完畢,從hub.docker.com拉去最新的shiny-server鏡像

docker run -d -p 3838:3838 quantumobject/docker-shiny

上面的中 docker run表示根據(jù)quantumobject/docker-shiny鏡像啟動一個新的容器。

-d表示以demon形式運行,掛在后臺運行。

-p 3838:3838表示將主機的3838端口和docker集群中的3838做端口映射

此外docker run在找不到鏡像時會先從docker hub中自動下載,下載完后自動再啟動容器。

訪問http://52.88.172.224:3838/

從登陸到部署,5行代碼搞定!

結(jié)束語

如果想要加入更多Shiny的Web應(yīng)用可以從GitHub上找到大量的Shiny實例,然后根據(jù)你的需求稍微改造即可!

示例一:數(shù)據(jù)可視化

下面舉一個例子,通過訪問Rstudio的官方shiny實例可以看到實例的目錄,在本地的R中執(zhí)行

if (!require(shiny))
  install.packages("shiny")
shiny::runGitHub("rstudio/shiny-examples", subdir="063-superzip-example")


你也可以訪問該網(wǎng)址http://shiny.rstudio.com/gallery/superzip-example.html看到在線的例子。

示例二:表單收集

你將可以看到這一實例,通過修改subdir參數(shù)可以查看其他實例。
比如

shiny::runGitHub("rstudio/shiny-examples", subdir="066-upload-file")

實例三:數(shù)據(jù)生成器

實例四:回歸模擬器

更多實例

現(xiàn)在,回到ubuntu主機上,進入剛才生成的docker容器中

docker exec -it docker-shiny /bin/bash

根據(jù)參考文獻2
進入網(wǎng)站顯示的文檔的根目錄,下載rstudio的shiny-server實例

cd /srv/shiny-server
wget https://github.com/rstudio/shiny-examples/archive/master.zip
unzip master.zip

現(xiàn)在重新訪問 http://52.88.172.224:3838/shiny-examples-master/ 你便可以任意選擇一個實例進行復(fù)用了。

實戰(zhàn)案例:

在Segmentfault 2015 北京站的黑客馬拉松上,由幾名之前搞生物、基因的R語言使用者組成的基飯團隊(15組),基于shiny完成了一次漂亮的逆襲,最終獲得了大賽的優(yōu)勝獎一枚。

大賽報道傳送門

項目源代碼

Docker中文教程

參考資料

Shinyproxy:deploy Shiny apps in an enterprise context

Shiny https: Securing Shiny Open Source with SSL

Password protect Shiny Apps

Shiny Database App (CRUD)

Shiny

Web Application Development with R and Apache

Persistent data storage in Shiny apps

Share data across sessions with shinyapps.io

Building Interactive Web Apps with Shiny

showmeshiny

Introducing shinyjs: perform common JavaScript operations in Shiny apps using plain R code

如何解決Shiny輸出的中文問題

shiny server deployment

shiny conference 2016

作為分享主義者(sharism),本人所有互聯(lián)網(wǎng)發(fā)布的圖文均遵從CC版權(quán),轉(zhuǎn)載請保留作者信息并注明作者 Harry Zhu 的 FinanceR專欄:https://segmentfault.com/blog...,如果涉及源代碼請注明GitHub地址:https://github.com/harryprince。微信號: harryzhustudio
商業(yè)使用請聯(lián)系作者。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26487.html

相關(guān)文章

  • []打造數(shù)據(jù)產(chǎn)品快速型:DjangoDocker之旅

    摘要:而大多數(shù)數(shù)據(jù)科學(xué)研究的場景下,更快的速度也意味著更早地發(fā)現(xiàn)問題和完成檢驗假設(shè)的閉環(huán)。通常,數(shù)據(jù)科學(xué)被認為研究成果立即應(yīng)用到生產(chǎn)環(huán)境都是比較緩慢的一個過程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在數(shù)據(jù)科學(xué)研究中,快速驗證想法是非常關(guān)鍵的一環(huán),而如何快速開發(fā)出數(shù)據(jù)產(chǎn)品則可以有效推動整個數(shù)據(jù)科學(xué)項...

    zhoutao 評論0 收藏0
  • []打造數(shù)據(jù)產(chǎn)品快速型:DjangoDocker之旅

    摘要:而大多數(shù)數(shù)據(jù)科學(xué)研究的場景下,更快的速度也意味著更早地發(fā)現(xiàn)問題和完成檢驗假設(shè)的閉環(huán)。通常,數(shù)據(jù)科學(xué)被認為研究成果立即應(yīng)用到生產(chǎn)環(huán)境都是比較緩慢的一個過程。 showImg(https://segmentfault.com/img/remote/1460000005771293); 概述 在數(shù)據(jù)科學(xué)研究中,快速驗證想法是非常關(guān)鍵的一環(huán),而如何快速開發(fā)出數(shù)據(jù)產(chǎn)品則可以有效推動整個數(shù)據(jù)科學(xué)項...

    zhangqh 評論0 收藏0
  • []海納百川 有容乃大:SparkR與Docker機器學(xué)習(xí)實戰(zhàn)

    摘要:類似包中的功能這很好的解決了的大數(shù)據(jù)級瓶頸問題。也支持分布式的機器學(xué)習(xí)算法,比如使用機器學(xué)習(xí)庫。部署本文將通過講解如何快速部署容器,并通過一些簡單的機器學(xué)習(xí)例子展示如何使用這個航母級別的組合拳。 showImg(https://segmentfault.com/img/remote/1460000004838121); 題圖為美國尼米茲核動力航空母艦 介紹 大數(shù)據(jù)時代,我們常常面對海量...

    CHENGKANG 評論0 收藏0
  • []文檔定義應(yīng)用:數(shù)據(jù)科學(xué)文檔革命

    摘要:對于數(shù)據(jù)科學(xué)的研究可以說已經(jīng)是本文我將介紹如何以文檔定義應(yīng)用的方式成為數(shù)據(jù)科學(xué)中的標準交付。參考前文解密的數(shù)據(jù)科學(xué)部門如果構(gòu)建知識倉庫,作為一個謝大大的死忠,我很自然選擇了作為我文檔輸出的首選工具。 showImg(https://segmentfault.com/img/remote/1460000006760433?w=423&h=426); 概述 隨著近年來,Rstudio 通過...

    wh469012917 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<