SlideShare a Scribd company logo
1 of 43
Globalcode – Open4education
Introdução ao Habitat
Igor Abade V. Leite
Microsoft MVP – Visual Studio ALM
Professional Scrum Trainer – Scrum.org
@IgorAbade
blog.lambda3.com.br/L3/IgorAbade
Globalcode – Open4education
Agenda
Globalcode – Open4education
O “milagre” dos containers
Globalcode – Open4education
A realidade das arquiteturas modernas
AWS ECS
Google Container
Engine
Para
containers
Para
aplicações
tradicionais
Globalcode – Open4education
Hora de ir para produção
Globalcode – Open4education
Coisas que o Docker não responde sozinho…
Minha aplicação está rodando?
Como eu monitoro minha aplicação?
Como eu faço deploy?
Como eu atualizo minha aplicação?
De preferência, sem downtime!
Como eu configure minha aplicação?
Como eu resolvo dependências?
Como sei se a aplicação está pronta para receber
tráfego?
Onde eu posso rodar minha aplicação?
Como eu escalono minha aplicação?
Globalcode – Open4education
Piece of cake! (ou não…)
Orquestração
Mesos
Docker Swarm
Kubernetes
Configuração & descoberta em run-time
Etcd
Consul
Zookeeper
Gestão de mudança
Chef
Puppet
Ansible
Globalcode – Open4education
Habitat
Definição “oficial”
Application automation that
enables modern application
teams to build, deploy, and
manage any application in
any environment - from
traditional data-centers to
containerized microservices.
www.habitat.sh
Globalcode – Open4education
Docker vs. Habitat
Docker
# Build an Image
$ docker build -t foo/helloworld .
# Run an Image
$ docker run foo/helloworld
Habitat
# Build an Image
$ hab build helloworld
# Run an Image
$ hab start foo/helloworld
Globalcode – Open4education
O que o Habitat faz
● Descreve como
construir o
software
● Resolução de
dependências
● Relaciona o que é
“configurável” na
aplicação
● Descoberta de
serviços
● Auto-organizado em
topologias
● Descoberta inter-
serviços via binding
(“DI para serviços”)
● Sem ponto único de
falha
BUILD DEPLOY MANAGE
● Configuração em run-
time criptografada e
autenticada
● Atualização
automática, segura e
atômica
● Atualizações
dinâmicas de
topologia
Globalcode – Open4education
Visão Geral
Código-
fonte
Artefato
Bare Metal
Container
Cloud Provider
VM
Repo de
Artefato
Globalcode – Open4education
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
USER ARTIFACT
Como funciona o Habitat
Empacotamento de Aplicações
Execução de Aplicações
PLAN DEPOT
DEPOT ARTIFACT
BARE METAL
CONTAINERS
AMI
VM
Globalcode – Open4education
Como funciona o Habitat
LEADER /
FOLLOWERS
STAND ALONE
Topologias Estratégias de
Atualização
Aplicações em Execução
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
“ALL AT
ONCE”
ARTIFACT DEPOT
SERVICE
SUPERVISOR
Globalcode – Open4education
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
Como funciona o Habitat
Segurança
PUB KEY
SYMMETRIC ENCRYPTION
LOAD BALANCER
Construção do Serviço
BUILD
SERVICE
USER
SECRET
PAYLOADS
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
ARTIFACTPLAN DEPOT
Globalcode – Open4education
Habitat Supervisor
Globalcode – Open4education
Habitat supervisor
Run-time
inteligente
Coordenação
de
deployments
Descoberta
de serviços
Globalcode – Open4education
Habitat supervisor
Permite que você execute uma aplicação…
Nativamente, no
hardware
(bare metal)
Em uma VM ou
em uma instância
na nuvem
Em um container
(Docker, Mesos,
etc.)
Globalcode – Open4education
Habitat supervisor
Gerenciador de processo
Carrega e monitora pacotes (aplicações)
Recebe e implementa mudanças na configuração
Executa os serviços
Globalcode – Open4education
Habitat supervisor
Serviço
Pacote Habitat rodando sob um supervisor
O mais simples – 1 supervisor rodando 1 serviço
SERVICE
SUPERVISOR
VM
Globalcode – Open4education
Demo
Globalcode – Open4education
Habitat supervisor
Serviço
Pacote Habitat rodando sob um supervisor
O mais simples – 1 supervisor rodando 1 serviço
Acima de um serviço, precisa de um anel (“ring”) de
supervisores
Globalcode – Open4education
SERVICE
SUPERVISOR
VM
Habitat supervisor: Supervisor Ring
ExecutandoMySQL
Globalcode – Open4education
SERVICE
SUPERVISOR
VM
Habitat supervisor: Supervisor Ring
Alsorunning
MySQL
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Globalcode – Open4education
SERVICE
SUPERVISOR
VM
Habitat supervisor: Supervisor Ring
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Globalcode – Open4education
SERVICE
SUPERVISOR
VM
Habitat supervisor: Supervisor Ring
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Let’selectaleader!
Globalcode – Open4education
SERVICE
SUPERVISOR
VM
Habitat supervisor: Supervisor Ring
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Leader–receives
writerequests
Globalcode – Open4education
SERVICE
SUPERVISOR
VM
Habitat supervisor: Supervisor Ring
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Followers–
receiveread
requests
Leader–receives
writerequests
Globalcode – Open4education
SERVICE
SUPERVISOR
VM
Habitat supervisor: Supervisor Ring
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Globalcode – Open4education
SERVICE
SUPERVISOR
VM
Habitat supervisor: Supervisor Ring
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Cannotconnect
Globalcode – Open4education
Habitat supervisor: Supervisor Ring
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Globalcode – Open4education
Habitat supervisor: Supervisor Ring
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Let’selectaleader!
Globalcode – Open4education
Habitat supervisor: Supervisor Ring
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Leader–receives
writerequests
Globalcode – Open4education
Habitat supervisor: Supervisor Ring
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Follower–
receivesread
requests
Globalcode – Open4education
Habitat supervisor
Supervisor trata as atualizações de pacotes
Detecta quando uma nova versão está disponível no depósito
Faz deploy de acordo com estratégia de atualização
Globalcode – Open4education
Habitat supervisor
Estratégias de atualização do Supervisor
All at once
Atualiza todos os nós ao mesmo tempo
Rollout
Atualiza um nó por vez
Globalcode – Open4education
Promovendo novas versões
Globalcode – Open4education
Habitat + Containers
● Os formatos de container recriam o
modelo tradicional de Infraestrutura e
aplicações.
● Limitado ao abstrair os aspectos de Build +
Run aspects das aplicações
● Habitat cria os containers partindo dos
aplicativos para baixo
● SO leve, pequeno incluso
● Supervisor embutido para gerenciamento
da aplicação
Libraries
Operating System
Application
Application &
Libraries
Application Libraries
OS
Globalcode – Open4education
Application Centric Containers
● Provê uma “DSL” para definer o ciclo
de vida de build da aplicação
● Ciclo de vida de execução definido
junto com o de build
● Containers são criados com base em
artefatos, dependências declaradas e
ciclo de vida de execução
● Containers recebem um supervisor
embutido para cuidar das
preocupações da aplicação:
o Configuration
o Service Discovery
o Clustering Topologies
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
CONTAINE
R
EXPORTS
CONTAINER
FORMATS
Globalcode – Open4education
Habitat + Container Orchestrators
● Desenvolva pacotes
reutilizáveis de
aplicação
● Exponha
configurações
ajustáveis
● Exporte para sua
plataforma predileta
de container
● Implante sua
aplicação num
formato escalável e
ciente da topologia
BUILD DEPLOY MANAGE
● Orquestre e
automatize suas
mudanças de
configuração
Globalcode – Open4education
Demo
Globalcode – Open4education
Para saber mais
Habitat Slack Team - http://slack.habitat.sh/
Tutorial - https://www.habitat.sh/tutorials/
Pacotes no Depot - https://app.habitat.sh/
Projetos Habitat - https://github.com/habitat-sh
Blogs - https://blog.chef.io/category/habitat/
Obrigado!
@IgorAbade
blog.lambda3.com.br/L3/IgorAbade

More Related Content

What's hot

What's hot (20)

Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
Desenvolvendo Aplicações .NET Core em Linux - CEUNSP - Outubro-2019
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
É fácil ser ágil usando .NET
É fácil ser ágil usando .NETÉ fácil ser ágil usando .NET
É fácil ser ágil usando .NET
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
Docker: Introdução e Primeiros Passos - CEUNSP - Outubro-2018
 
Deployment no Azure
Deployment no AzureDeployment no Azure
Deployment no Azure
 
Entrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineresEntrega contínua fica mais fácil com contêineres
Entrega contínua fica mais fácil com contêineres
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
 
Docker para Desenvolvedores .NET - .NET SP - Abril-2018
Docker para Desenvolvedores .NET - .NET SP - Abril-2018Docker para Desenvolvedores .NET - .NET SP - Abril-2018
Docker para Desenvolvedores .NET - .NET SP - Abril-2018
 
Desenvolvimento multiplataforma em .NET Core utilizando SQL Server 2019, Dock...
Desenvolvimento multiplataforma em .NET Core utilizando SQL Server 2019, Dock...Desenvolvimento multiplataforma em .NET Core utilizando SQL Server 2019, Dock...
Desenvolvimento multiplataforma em .NET Core utilizando SQL Server 2019, Dock...
 
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
Docker: introdução e primeiros passos - Baixada NERD - Junho-2018
 
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
 
#4 - Git - Stash
#4 - Git - Stash#4 - Git - Stash
#4 - Git - Stash
 
Dia 01 - Workshop ASP.NET CORE 1.1
Dia 01 - Workshop ASP.NET CORE 1.1Dia 01 - Workshop ASP.NET CORE 1.1
Dia 01 - Workshop ASP.NET CORE 1.1
 
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
Docker no Back e no Front - um exemplo com .NET Core e Angular - Campus Party...
 
Azure DevOps Pipeline
Azure DevOps PipelineAzure DevOps Pipeline
Azure DevOps Pipeline
 
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
Docker + Bancos de Dados: isto é possível? - Databases SP - Março-2018
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 
Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...
Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...
Desenvolvimento Web multiplataforma com ASP.NET Core 2.2 e Docker - Open Sour...
 

Similar to Introdução ao Habitat

Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
tdc-globalcode
 

Similar to Introdução ao Habitat (20)

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 ...
 
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
 
Utilização de DevOps
Utilização de DevOpsUtilização de DevOps
Utilização de DevOps
 
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
 
Internet das coisas - A revolução já começou
Internet das coisas - A revolução já começouInternet das coisas - A revolução já começou
Internet das coisas - A revolução já começou
 
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
 
Java e uma visão sobre PaaS
Java e uma visão sobre PaaSJava e uma visão sobre PaaS
Java e uma visão sobre PaaS
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
 
A Revolução já começou
A Revolução já começouA Revolução já começou
A Revolução já começou
 
TDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Dos requisitos à implantação em uma palestraTDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Dos requisitos à implantação em uma palestra
 
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
TDC2018SP | Trilha Blockchain - Criando minha Primeira Blockchain Privada (DL...
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Latinoware 2019 - Kubernetes a plataforma de grandes ideias
Latinoware 2019 - Kubernetes a plataforma de grandes ideiasLatinoware 2019 - Kubernetes a plataforma de grandes ideias
Latinoware 2019 - Kubernetes a plataforma de grandes ideias
 
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
Cloud Native Microservices - Rumo a uma Arquitetura de Microsserviços Nativos...
 
Spring + Cloud Computing
Spring + Cloud ComputingSpring + Cloud Computing
Spring + Cloud Computing
 
Microservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud NetflixMicroservices com Spring Boot e Spring Cloud Netflix
Microservices com Spring Boot e Spring Cloud Netflix
 
Internet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começouInternet das coisas - A Revolução já começou
Internet das coisas - A Revolução já começou
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
 

More from Igor Abade

More from Igor Abade (20)

Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
 
DevOps em grandes empresas - Mito ou Realidade?
DevOps em grandes empresas - Mito ou Realidade?DevOps em grandes empresas - Mito ou Realidade?
DevOps em grandes empresas - Mito ou Realidade?
 
Serverless Computing no Microsoft Azure
Serverless Computing no Microsoft AzureServerless Computing no Microsoft Azure
Serverless Computing no Microsoft Azure
 
Chega de receita de bolo: gerenciando infraestrutura como código
Chega de receita de bolo: gerenciando infraestrutura como códigoChega de receita de bolo: gerenciando infraestrutura como código
Chega de receita de bolo: gerenciando infraestrutura como código
 
Microsserviços .NET no Azure
Microsserviços .NET no AzureMicrosserviços .NET no Azure
Microsserviços .NET no Azure
 
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abadeAcelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
 
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTSProvisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
 
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
 
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
 
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows StoreDesktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
 
Acelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidos
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShell
 
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
 
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
 
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
 
Além do pen-drive: empacotando seu software para distribuição e implantação (...
Além do pen-drive: empacotando seu software para distribuição e implantação (...Além do pen-drive: empacotando seu software para distribuição e implantação (...
Além do pen-drive: empacotando seu software para distribuição e implantação (...
 
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
 
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
 
Muito além das startups: Build-Measure-Learn em sistemas corporativos
Muito além das startups: Build-Measure-Learn em sistemas corporativosMuito além das startups: Build-Measure-Learn em sistemas corporativos
Muito além das startups: Build-Measure-Learn em sistemas corporativos
 

Introdução ao Habitat