SlideShare une entreprise Scribd logo
1  sur  98
Télécharger pour lire hors ligne
Giovanni Kenji Shiroma
DESENVOLVEDOR FULL-STACK
  SENAI DE INFORMÁTICA
Criando webservice REST
com NodeJS, NoSQL & Docker
Competidor da na modalidade de
WebDesign & Development 2015
TREINAMENTO PARA
OS COMPETIDORES RUSSOS
E o que vamos
fazer neste
curso?
Back-End de uma TodoList!
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Para comprar no mercado
5 pacotes de pipocas
2 óreos
12 Maçãs
12 batatas
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Para comprar no mercado
5 pacotes de pipocas
2 óreos
12 Maçãs
12 batatas
Front-End Back-End
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
TODOLIST
Mas primeiro...
Qual a diferença entre o
front-end e back-end?
Front-End Interface da sua aplicação, responsável por interações, faz os pedidos
para o backend, transforma os dados que vem em forma de UI
Back-End Recebe os pedidos do front-end, responsável pelo
tratamento de dados e regras de negócios
Eu quero Mulheres
com máximo de 10 km
de distancia
entre 23 a 42 anos!
Olha ai as Mulheres
com máximo de 10 km
de distancia
entre 23 a 42 anos!
Back-End Recebe os pedidos do front-end, responsável pelo
tratamento de dados e regras de negócios
FRONT-END sem o BACK-END seria tipo:
---- --
VAMOS FAZER ESSE CARA
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
TODOLIST
NodeJS
NodeJS Hapi.js
NodeJS
Typescript
Hapi.js
NodeJS
Typescript
Hapi.js
PREPARAÇÕES
PARA COMEÇAR
A DESENVOLVER
https://nodejs.org/en/
SERVIDOR JAVASCRIPTNodeJS
SERVIDOR JAVASCRIPTNodeJS
No MAC PODE instalar pelo BREW!
brew install node
https://yarnpkg.com/en/
git clone https://github.com/kenjishiromajp/typescript_serverside_starterkit.git
Clona este projeto aqui para começar!
Vamos neste passo...
• Estrutura geral do projeto
• Configurar o Typescript
• Comandos básicos do node e yarn
• Como fazer o import de outros arquivos js
Mão na massa!
REVISÃO
Estrutura do package.json
Para instalarmos dependencias
npm i <dependencia> -S
yarn add <dependencia>
Montando um ambiente para debug
1. Instalamos o nodemon
2. executamos ele com uns parâmetros para utilizar o nodemon com ts-node
3. Adicionamos uma configuração no debug no visual studio de attach
4. Podemos executar o debug
yarn add nodemon -D
Funcionamento dos imports
sem o ‘./’ ele pega do node_modules
(dependencia que instalou com yarn add)
com o ‘./’ ele pega um arquivo relativo
a pasta desse arquivo
as dependências estão na nuvem,
podemos ver as dependências
que existem no site da
tsconfig.json
Define como serão feito os módulos
Array de pastas que devemos tirar da compilação.
no nosso caso o "node_modules"
Define que utilizamos
as features do Ecma Script 6
Onde vamos gerar os arquivos
de build.
Especificação de uma linguagem
Onde o javascript é baseado
ES6
ES7
ES2016 ou
ES2015 ou
• Default parameters
• Arrow functions
• Template literal
• multiline string
• destructuring assignment
• Promises
• Classes
• ...
• Array.includes
• Exponentiation Operator
• ...
NOVASFUNCIONA-LIDADES!
NOVASFUNCIONA-LIDADES!
AGORA, VAMOS DEFINIR
OS NOSSOS OBJETIVOS
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Para comprar no mercado
5 pacotes de pipocas
2 óreos
12 Maçãs
12 batatas
ao pensar na todolist
Quais são as operações que
são possíveis em uma todolist?
• Pegar todas as TodoLists
• Criar uma TodoList
• Criar uma Todo
• Marcar uma Todo como feito
• Atualizar uma TodoList
• Deletar uma TodoList
• Deletar uma Todo
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
TODOLIST
Front-End Back-End
quero pegar todas as todolists
Pegaê todas as todolists!
através de requisições http!
em alguma URL!
Email
Password
headers
body
Estrutura de uma requisição HTTP
Email
Password
headers
body
Armazena os dados
que serão enviados
Estrutura de uma requisição
Define o método
da requisição e URL
Email
Password
headers
body
Request Structure
https://facebook.com/signin
POST
email:
kenjishiromajp@gmail.com
password:
myverysecretpassword
WebService
E como decido
essas URLs?
GET - /criartodolists
PATCH - /PEGARtodolists
POST - /LISTARtodolists
GET - /BATATA
POST - /DELETAtodolist
REST vai nos dar a resposta!
REST
Representational
State
Transfer
{
“create” : “POST”,
“read” : “GET”,
“update” : “PUT”,
“partial_update” : “PATCH”,
“delete” : “DELETE”
}
Verbo/Métodos
Status Code
• Pegar todas as TodoLists
• Criar uma TodoList
• Criar uma Todo
• Marcar uma Todo como feito
• Atualizar uma TodoList
• Deletar uma TodoList
• Deletar uma Todo
Como ficaria nossos endpoints?
Como ficaria nossos endpoints?
• Pegar todas as TodoLists GET /todolists
• Criar uma TodoList POST /todolists
• Criar uma Todo POST /todos
• Marcar uma Todo como feito PUT/PATCH /todos/{id}
• Atualizar uma TodoList PUT/PATCH /todolists/{id}
• Deletar uma TodoList DELETE /todolists/{id}
• Deletar uma Todo DELETE /todos/{id}
AGORA TEMOS UM OBJETIVO
MAIS CONCRETO!
CRIAR TODOS ESTES ENDPOINTS!
OBJETIVO:
• Pegar todas as TodoLists GET /todolists
• Criar uma TodoList POST /todolists
• Criar uma Todo POST /todos
• Marcar uma Todo como feito PUT/PATCH /todos/{id}
• Atualizar uma TodoList PUT/PATCH /todolists/{id}
• Deletar uma TodoList DELETE /todolists/{id}
• Deletar uma Todo DELETE /todos/{id}
Linguagens para aprender
Swift
Closure
Javascript
C#
Quais as propriedades
você enxerga nesta todolist?
Linguagens para aprender
Swift
Closure
Javascript
C#
Linguagens para aprender
Swift
Closure
Javascript
C#
Titulo
Tarefas
Titulo
Se está feito
Vamos neste passo...
• Levantar um serviço http
• Criar uma rota para nossa aplicação
• Definir tipos na aplicação
• Como mandar response para o client
Mão na massa!
REVISÃO
Hap.Server
yarn add hapi
yarn add @types/hapi -D
Define a porta que vai subir o serviço http
Cross-Origin Resource Sharing
para aceitar de qualquer origem
Pacote para sabermos os tipos dos parâmetros
e acesso a algumas documentações direto da IDE
Definindo Rota
url da rota
EX: “http://localhost/todolists”
Verbo/Método da Requisição
passa o corpo da response
passa o statusCode
da response
sobe o serviço http
Tipando os parâmetros
Esse é o parâmetro : Esse é o tipo
Arrow function
Versão
antiga
Versão
com arrow
function
Versão
antiga
Versão
com arrow
function
Agora vamos fazer o retorno
dos dados com MongoDB
Para isso teria que instalar o mongo,
baixar o client... (mais configurações)
Por isso vamos usar o Docker compose!
O QUE É
Docker?
O QUE É
Docker?
Docker é uma série de
ferramentas que utiliza-se
de containers
para ajudar na criação de
um ambientes isolados
O que é Container? é tipo máquina virtual?
HARDWARE
SISTEMA OPERACIONAL
HYPERVISOR
MÁQUINA VIRTUAL
APP
SISTEMA OPERACIONAL
MÁQUINA VIRTUAL
APP
SISTEMA OPERACIONAL
MÁQUINA VIRTUAL
APP
SISTEMA OPERACIONAL
SISTEMA OPERACIONAL
HYPERVISOR
MÁQUINA VIRTUAL
APP
S.O 1GB DE RAM 10GB DE HD % DE PROCESSAMENTO
MÁQUINA VIRTUAL
APP
S.O 1GB DE RAM 10GB DE HD % DE PROCESSAMENTO
MÁQUINA VIRTUAL
APP
S.O 1GB DE RAM 10GB DE HD % DE PROCESSAMENTO
HARDWARE
O que é Container? é tipo máquina virtual?
SISTEMA OPERACIONAL
HYPERVISOR
MÁQUINA VIRTUAL
APP
S.O 1GB DE RAM 10GB DE HD % DE PROCESSAMENTO
MÁQUINA VIRTUAL
APP
S.O 1GB DE RAM 10GB DE HD % DE PROCESSAMENTO
MÁQUINA VIRTUAL
APP
S.O 1GB DE RAM 10GB DE HD % DE PROCESSAMENTO
HARDWARE
SISTEMA OPERACIONAL
DOCKER
CONTAINER
APP
CONTAINER
APP
CONTAINER
APP
O que é Container? é tipo máquina virtual?
Vamos usar dois carinhas do Docker
Docker Compose
Vamos usar dois carinhas do Docker
Docker HUBDocker Compose
Vamos usar dois carinhas do Docker
Docker Compose
Vamos usar dois carinhas do Docker
• Container com MongoDb
• Container com o
versão interface para
acessar o mongodb
MongoDb
Client
Docker HUB
Vamos usar dois carinhas do Docker
Repositório de imagens
Vamos neste passo...
• Como criar um container a partir de
um docker-compose
• Como podemos utilizar o serviço dos
containers
• Aprender o que é volume para que serve
Mão na massa!
REVISÃO
docker ps Lista todos os containers ligados
docker ps -a Lista todos os containers ligados e desligados
docker stop <id> Desliga o container com este id
docker container prune
Remove todos os container parados
docker-compose up
docker-compose.yml
imagem que achamos no docker hub
para reiniciar toda vez que monta
[porta_do_host]:[porta_do_container]
Sincroniza a porta do container para
a máquina host
Sincroniza a pasta db do host com a pasta
/data/db do container
[pasta_do_host]:[pasta_do_container]
Diz que só iniciará quando o mongo iniciar
VAMOS MANIPULAR
OS DADOS DO BANCO!
Vamos neste passo...
• Vamos conectar com o banco mongodb
• Vamos criar os Schemas
• Vamos criar os modelos
• Pegar os dados que estão no banco e jogar
na response
Mão na massa!
REVISÃO
Mongoose.connect()
Conectando com o nosso banco
string de conexão conectando localhost
na porta 27017 no banco todolists
Mongoose.connect()
string de conexão conectando localhost
na porta 27017 no banco todolists
Nome do meu Modelo
Nome da minha collection
Interface
Obriga o objeto ou classe que implementa a mesma
ter essas propriedades com esses tipos
Model.find()
async await
Indica que neste método
possui algum método assíncrono
sendo resolvido com await
Indica que vamos esperar o método
assíncrono completar para continuar
a execução
CRIAR TODOS ESTES ENDPOINTS!
OBJETIVO:
• Pegar todas as TodoLists GET /todolists
• Criar uma TodoList POST /todolists
• Criar uma Todo POST /todos
• Marcar uma Todo como feito PUT/PATCH /todos/{id}
• Atualizar uma TodoList PUT/PATCH /todolists/{id}
• Deletar uma TodoList DELETE /todolists/{id}
• Deletar uma Todo DELETE /todos/{id}
title
todos
headers
body
Estrutura de uma requisição HTTP
POSTMAN
Vamos neste passo...
• Organizar o conteúdo
• Como cadastrar uma todolist
• Como pegar o corpo de um requisição
Mão na massa!
REVISÃO
Minha database
Interface da Database
Interfae da todo
Parte lógica de cada rota
onde fazemos o registro das rotas
interface da Todolist
Modelo e Schema do Todolist
Inicializa a aplicação e registra todas as rotas
Instancia o servidor com configurações da mesma
Pega o corpo da requisição
Cadastra a partir do
model que criamos
Se der erro na hora de criar
podemos mandar um erro

Contenu connexe

Tendances

Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVinícius Krolow
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web ServicesDorneles Treméa
 
DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015 DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015 Eduardo Bregaida
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com pythonBruno Rocha
 
Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php Michael Douglas
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017Vitor Mattos
 
Introdução ao Python - FTEC
Introdução ao Python - FTECIntrodução ao Python - FTEC
Introdução ao Python - FTECDorneles Treméa
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013Giovanni Bassi
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalAdriano Petrich
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Erik Cruz
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017Vitor Mattos
 
Grails, o que isso quer dizer?
Grails, o que isso quer dizer?Grails, o que isso quer dizer?
Grails, o que isso quer dizer?Gilliard Cordeiro
 
Segurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHPSegurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHPGedvan Dias
 

Tendances (19)

Groovy stack
Groovy stackGroovy stack
Groovy stack
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Introdução ao Python & Web Services
Introdução ao Python & Web ServicesIntrodução ao Python & Web Services
Introdução ao Python & Web Services
 
Curso de Grails
Curso de GrailsCurso de Grails
Curso de Grails
 
DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015 DDD + BDD + TDD - RF 2015
DDD + BDD + TDD - RF 2015
 
Desenvolvendo mvp com python
Desenvolvendo mvp com pythonDesenvolvendo mvp com python
Desenvolvendo mvp com python
 
Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php Por que jenkins se posso usar deployer php
Por que jenkins se posso usar deployer php
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
 
DDD - Linguagem Ubíqua
DDD - Linguagem UbíquaDDD - Linguagem Ubíqua
DDD - Linguagem Ubíqua
 
Introdução ao Python - FTEC
Introdução ao Python - FTECIntrodução ao Python - FTEC
Introdução ao Python - FTEC
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao final
 
Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021Usando Git na Unity - Gaming For All 2021
Usando Git na Unity - Gaming For All 2021
 
Groovy grails
Groovy grailsGroovy grails
Groovy grails
 
Visão geral type script
Visão geral type scriptVisão geral type script
Visão geral type script
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
 
Grails, o que isso quer dizer?
Grails, o que isso quer dizer?Grails, o que isso quer dizer?
Grails, o que isso quer dizer?
 
Segurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHPSegurança em Aplicações Web com PHP
Segurança em Aplicações Web com PHP
 

Similaire à Criando Webservice REST com NodeJS, NoSQL & Docker

12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com DockerWellington Silva
 
Docker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekDocker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekLuiz Carlos Faria
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014Giovanni Bassi
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)Wellington Silva
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimentamichel adriano medeiros
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros PassosJackson F. de A. Mafra
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerWellington Silva
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDextra Sistemas / Etec Itu
 
TDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhereTDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywheretdc-globalcode
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 
Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechRafael Gomes
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linhamatheuscmpm
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 

Similaire à Criando Webservice REST com NodeJS, NoSQL & Docker (20)

12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Docker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekDocker Everywhere - MTAC Week
Docker Everywhere - MTAC Week
 
ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014ASP.NET vNext no .NET Architects Days 2014
ASP.NET vNext no .NET Architects Days 2014
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)O poder do Docker (7º meetup de Docker SP)
O poder do Docker (7º meetup de Docker SP)
 
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando PimentaIniciando com Ruby on Rails - Luiz Fernando Pimenta
Iniciando com Ruby on Rails - Luiz Fernando Pimenta
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
TDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhereTDC2018SP | Trilha Mobile - Learn once, code anywhere
TDC2018SP | Trilha Mobile - Learn once, code anywhere
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 
Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma Fintech
 
Orchestrando na linha
Orchestrando na linhaOrchestrando na linha
Orchestrando na linha
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 

Criando Webservice REST com NodeJS, NoSQL & Docker