mas não precisa ser assim. acreditamos que a tecnologia ... · um contêiner do docker é um...
TRANSCRIPT
![Page 1: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/1.jpg)
Mas não precisa ser assim. acreditamos que a tecnologia pode entregar cada vez mais conveniência sem comprometer a nossa privacidade.
![Page 2: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/2.jpg)
Desenvolvimento de aplicações web com R ShinyComo escalar produtos de dados de forma rápida e confiável
![Page 3: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/3.jpg)
Gabriel Teotonio
EstatísticaUniversidade Federal de Pernambuco.
Cientista de Dados.
![Page 4: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/4.jpg)
> 60Mde smartphones no Brasil
> 16TBde dados processados
diariamente
> 28Mde lugares mapeados
![Page 5: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/5.jpg)
Privacidade
Fluidez RelevânciaConveniência
Anonimidade Personalizaçãoconsentida
Entregar conveniência para as pessoas garantindo sua
privacidade.
Nosso propósito
![Page 6: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/6.jpg)
Sessão
1.O que é Shiny?
2.Lidando com banco de dados
3.Testando sua aplicação
4.Deploy
Conhecendo o framework de R que nos ajuda a criar aplicações
Entendo a comunicação com bancos e boas práticas
Buscando gargalos e melhorando a performance
Como disponibilizar sua aplicação de forma segura
![Page 7: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/7.jpg)
![Page 8: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/8.jpg)
O que é Shiny?
![Page 9: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/9.jpg)
Um pacote em R para desenvolvimento de aplicações web.
![Page 10: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/10.jpg)
Todo aplicativo Shiny possui uma página da web que o usuário visita e, por trás dessa página, há um computador que serve essa página executando R.
![Page 11: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/11.jpg)
![Page 12: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/12.jpg)
Instruções do Server Interface do usuário
![Page 13: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/13.jpg)
Interface do usuárioControla o layout e aparência do app
Função serverContém as instruções
necessárias para construir o app
Anatomia de uma aplicação Shiny
![Page 14: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/14.jpg)
![Page 15: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/15.jpg)
server.R ui.R
![Page 16: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/16.jpg)
server.R ui.R
global.R
![Page 17: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/17.jpg)
Lidando com banco de dados
![Page 18: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/18.jpg)
Esses formatos compactam seu arquivo de maneira que você tenha um alto desempenho de leitura dentro do aplicativo:
● .feather
● .RDS
Mas antes...
![Page 19: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/19.jpg)
Conectando-se a um grande volume de dados.
![Page 20: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/20.jpg)
sum(column_x)
sum(column_x[a, b-1])
sum(column_x[b, c-1])
sum(column_x[c, d])
Result
R é single-threaded
![Page 21: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/21.jpg)
![Page 22: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/22.jpg)
Consulta
Dados processados
![Page 23: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/23.jpg)
Podemos continuar usando o maravilhoso pacote dplyr para realizar as consultas ao banco de dados, a partir da versão dbplyr.
![Page 24: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/24.jpg)
![Page 25: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/25.jpg)
Pontos importantes
● Ao trabalhar com bancos de dados, o dplyr tenta ser o mais lazy possível;
● Podemos usar o comando collect() para retornar a tabela resultante para o ambiente local;
● O comando pull() também é útil quando a consulta retorna um vetor, e não uma tibble.
![Page 26: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/26.jpg)
Cuidando das credenciais
● Criptografar credenciais com o pacote keyring;
● Use o arquivo de configuração;
● Variáveis de ambiente usando o arquivo .Renviron;
● Usando as opções de comando do R base;
● Solicite credenciais usando o RStudio IDE.
![Page 27: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/27.jpg)
Testando sua aplicação
![Page 28: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/28.jpg)
![Page 29: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/29.jpg)
Está rápida suficiente?
O que está causando
isso?Otimização
Não
Repita
shinyloadtest profvis
![Page 30: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/30.jpg)
shinyloadtest
O processo para testar a carga de um aplicativo Shiny consiste em três etapas:
1. Grave uma sessão típica do usuário para o aplicativo;
2. Repita a sessão em paralelo, simulando muitos; usuários simultâneos acessando o aplicativo;
3. Analise os resultados do teste de carga e determine se o aplicativo teve bom desempenho.
![Page 31: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/31.jpg)
1.
2.
3.
![Page 32: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/32.jpg)
Voltando...
![Page 33: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/33.jpg)
● Dados em um .csv;
● Lendo os dados sempre que for realizar um filtro.
● Dados em um .feather;
● Múltiplos arquivos para cada combinação
Cenário 1 Cenário 2
![Page 34: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/34.jpg)
![Page 35: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/35.jpg)
Cenário 1
![Page 36: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/36.jpg)
Cenário 2
![Page 37: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/37.jpg)
profvis
O profvis é uma ferramenta para ajudar você a entender como o R gasta seu tempo.
![Page 38: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/38.jpg)
![Page 39: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/39.jpg)
![Page 40: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/40.jpg)
Faça o trabalho fora da aplicação
Spark etls/jobs
![Page 41: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/41.jpg)
Deploy
![Page 42: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/42.jpg)
![Page 43: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/43.jpg)
Dependências
Pacotes
Sistema operacional
Versão do R
![Page 44: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/44.jpg)
Algumas opções:
● Shinyapps.io;
● Shiny server (open source);
● Shiny server pro.
Compartilhando ou disponibilizando sua aplicação
![Page 45: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/45.jpg)
![Page 46: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/46.jpg)
O Docker é uma ferramenta projetada para facilitar a criação, implantação e execução de aplicativos usando contêineres. De certa forma, o Docker é um pouco como uma máquina virtual.
O que é Docker?
![Page 47: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/47.jpg)
Imagem Contêiner
Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código específico do aplicativo.
Eles são "modelos prontos para uso com instruções para criar um contêiner Docker".Define o código do contêiner, bibliotecas, variáveis de ambiente, arquivos de configuração e muito mais.
![Page 48: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/48.jpg)
![Page 49: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/49.jpg)
![Page 50: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/50.jpg)
Imagem base com o Shiny server instalado
Instalando algumas dependências
Instalando os pacotes que vamos utilizar em R
Copiando a pasta que contém meu app
Iniciando a aplicação
![Page 51: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/51.jpg)
![Page 52: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/52.jpg)
![Page 53: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/53.jpg)
Spark etls/jobs ?
![Page 54: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/54.jpg)
Criando APIs
Um pacote que converte seu código em uma REST API simplesmente decorando seu código existente em R com comentários especiais.
![Page 55: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/55.jpg)
Arquivo kmeans.R
![Page 56: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/56.jpg)
![Page 57: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/57.jpg)
Imagem base do R
Instalando o plumber e criando um diretório
Copiando nosso arquivo para o diretório criado
![Page 58: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/58.jpg)
Spark etls/jobs
![Page 59: Mas não precisa ser assim. acreditamos que a tecnologia ... · Um contêiner do Docker é um ambiente isolado em execução no kernel de uma máquina host que permite executar código](https://reader035.vdocuments.us/reader035/viewer/2022070801/5f02679b7e708231d4041ce8/html5/thumbnails/59.jpg)
Vá mais longe!
● Banco:○ SQL injections attack.
● Autenticação:○ Pacote auth0 (Curso-R).
● Teste:○ shinytest;○ plotCaching.
● Deploy:○ kubernetes.