Infraestrutura Imutável. André Midea Jasiskis Rodrigo Flores
|
|
- Nathalia Brezinski Gusmão
- 8 Há anos
- Visualizações:
Transcrição
1 Infraestrutura Imutável André Midea Jasiskis Rodrigo Flores
2 André Midea Jasiskis Engenheiro de Software 5+ anos de experiência sendo 4 com projetos na Cloud. Trabalhou 1 ano na construção e melhoria da arquitetura de serviços, pipelines de build e automação de tudo no Nubank 2
3 Rodrigo Flores Engenheiro de Software 5+ anos de experiência com desenvolvimento de software (4 anos com Ruby e quase 2 com Clojure) Lida aplicações no Cloud a 3 no twitter rodrigoflores no github rodrigo.flores@nubank.com.br 3
4
5 Nubank ~20k requests por minuto ~15k Messages intra-services por minuto 40+ Serviços GROWING! FASSSST! de 50 funcionários para 350 em 1 ano. 5
6 MOVE FAST BREAK THINGS
7 MAS COM O MINIMO DE RISCO
8 moving fast ssh apt-get install oraclejdk8 mvn nginx jetty scp myproject.war ssh mv /projeto /opt/jetty/webapps curl localhost:8080 WORKS! DONE. 8
9 moving fast Preciso subir o serviço de novo e agora? > @root: history > @root: history > @root: history > @root: fuck!!!! 9
10 Scripts, Chef, Ansible, whatever! > automation-tool install-myserver ruby_server > Installing ruby > Installing Gems > Installing lots of things > Copying project > Extracting project > Starting Project > Project Started!!! You are lucky today, aren t you? Go play some poker. Melhor :) por algumas horas :( 10
11 mas. Error executing action `install` on resource chef_gem[nokogiri]' ---- Begin output of /opt/chef/embedded/bin/gem install nokogiri -q --no-rdoc --no-ri -v "1.6.5" ---- STDOUT: Building native extensions. This could take a while... STDERR: ERROR: Error installing nokogiri: ERROR: Failed to build gem native extension. Running 'compile' for libxml ERROR, review '/opt/chef/ embedded/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.5/ext/nokogiri/ tmp/x86_64-unknown-linux-gnu/ports/libxml2/2.9.2/compile.log' to see what happened. 11
12 MUTABLE STATE IS THE ROOT OF ALL EVIL!
13 sad devopper Heartbleed zero-day Atualizar SO Atualizar Java, Spark, Python, Ruby Coordenar mudanças envolvendo varios serviços
14 MAJOR OUTAGE!!!! PRECISAMOS ROTACIONAR NOSSAS CHAVES DE CRYPTO E SUBIR TODOS OS SERVIÇOS O MAIS RAPIDO POSSÍVEL!
15
16 Diminuir o Risco Controle total do estado Saber as versões que estão rodando, tanto de componentes de sistemas quanto dos nossos serviços Não ficar a mercê do estado de todos os componentes do sistema Possibilidade de subir um novo Nubank a hora que quisermos Atualizações Centralizadas em poucos lugares
17 Diminuir o Risco Uniformidade Mudanças sem medo Adição de novos componentes a infra-estrutura ser extremamente simples. Disaster Recovery Escalabilidade Horizontal, Vertical, Sharding
18 THE IMMUTABLE PATH
19 Imutabilidade: um objeto imutável é um objeto cujo estado não pode ser alterado depois de criado 19
20 20
21 $ git commit -am "a commit" [master c5c5e27] a commit 1 file changed, 1 insertion(+), 1 deletion(-) 21
22 E se o commit c5c5e27 tiver adicionado um bug? 22
23 Um commit é um passo a frente, mantendo o passo atrás fácil de voltar 23
24 Um deploy de uma nova versão é um passo a frente, mantendo a versão anterior fácil de voltar 24
25 Tudo pode ser imutável? 25
26 Artigo da TW 3 camadas de infraestrutura 26
27 Camada Visível: DNS Entries, Load Balancers, CDNs 27
28 Camada volátil: sua aplicação 28
29 Camada persistente: tudo que guarda estado: DB, Mensageria, 29
30 Camadas visíveis e persistente: tendem a ter baixo churn: não são alteradas muitas vezes 30
31 Camada Volátil: alto churn, múltiplos deploys por dia, scale up e scale down 31
32 O que faz sentido ser imutável? * * * * Visível e persistente tendem a ser pouco alteradas Persistente guarda dados Volátil Novas máquinas a cada Deploy Chance de rollback ou de scale up ou down maior 32
33 Versão antiga só morre quando a versão nova está de pé e funcionando 33
34 34
35 Alguma versão deu ruim depois de um tempo? Só voltar a versão antiga 35
36 Mínimo recovery time 36
37 Máquinas são descartáveis 37
38 Servidores voláteis não devem guardar nada que não possa ser re-calculado 38
39 Logs devem ser agregados continuamente 39
40 HOW TO DO IT?
41 2 Fases distintas
42 IMMUTABLE STACK
43 ZK DB MUTABLE SERVICES S3 SERVICE 5 SERVICE 6 SERVICE 7 SERVICE 4 STACK A SERVICE 3 SERVICE 1 SERVICE 2 stack-a.nubank.com.br nubank.com.br
44 Contexto da Stack Configurações dos Serviços Configurações de Infra Vínculos entre Imutável e Mutável 44
45 DEPLOY de uma stack
46 S3 ZK DB MUTABLE SERVICES SERVICE 5 SERVICE 5 SERVICE 6 SERVICE 6 SERVICE 4 SERVICE 4 SERVICE 7 SERVICE 7 STACK A STACK B SERVICE 3 SERVICE 3 SERVICE 1 SERVICE 2 SERVICE 1 SERVICE 2 stack-a.nubank.com.br stack-b.nubank.com.br nubank.com.br
47 S3 ZK DB MUTABLE SERVICES SERVICE 5 SERVICE 5 SERVICE 6 SERVICE 6 SERVICE 4 SERVICE 4 SERVICE 7 SERVICE 7 STACK A STACK B SERVICE 3 STACK B está OK. SERVICE 3 SERVICE 1 SERVICE 2 SERVICE 1 SERVICE 2 stack-a.nubank.com.br stack-b.nubank.com.br nubank.com.br
48 S3 ZK DB MUTABLE SERVICES SERVICE 5 SERVICE 5 SERVICE 6 SERVICE 6 SERVICE 4 SERVICE 4 SERVICE 7 SERVICE 7 STACK A STACK B SERVICE 3 SERVICE 3 SERVICE 1 X nubank.com.br SERVICE 2 SERVICE 1 SERVICE 2 stack-a.nubank.com.br stack-b.nubank.com.br
49 ZK DB MUTABLE SERVICES S3 SERVICE 5 SERVICE 6 SERVICE 7 SERVICE 4 STACK B SERVICE 3 SERVICE 1 SERVICE 2 stack-b.nubank.com.br nubank.com.br
50 IMMUTABLe DEPLOY
51 Contexto de um deploy Exclusivamente para troca de versão 51
52 CODE BUILD CONTAINER Versão: d59eku2 BLUE/GREEN TERMINATE OLD EC2 UPDATE STACK Alterar 1 Unico Parametro HEALTH-CHECKING
53 transforme partes mutáveis em imutáveis
54 Instances Construa Imagens para suas máquinas com o que você precisa.
55 Operational System Use um sistema operacional que preza pela imutabilidade 55
56 Cloud Init - User Data com Super Poderes! 1 write_files: 2 - path: /opt/local/etc/service.env 3 permissions: owner: root 5 content: coreos: 9 units: 10 - name: etcd.service 11 enable: false 12 command: stop name: fleet.service 15 enable: false 16 command: stop name: update-engine.service 19 enable: false 20 command: stop name: format-ephemeral.service 23 command: start name: var-lib-docker.mount 26 command: start name: ec2-metadata.service 1 - name: spark-jobserver.service 2 enable: true 3 command: start 4 content: 5 [Unit] 6 Description=nu-spark-jobserver 7 After=docker.service 8 Requires=docker.service name: farm-lion.service 11 enable: true 12 command: start 13 content: [Install] 17 WantedBy=multi-user.target 18 - name: riemann-health.service 19 command: stop name: riemann-ops-health.service 22 command: stop name: splunk.service 25 command: stop name: logfiles.service 28 command: start 56
57 Dockerize Tenha seus serviços como containers imutáveis e versionados 57
58 DEPLOY scripts!
59 Configurações em um Unico Lugar 1 2 "service" => {:type => :jetty, 3 :java_mem => "-Xms2500M -Xmx2500M", 4 :ec2_type => "c3.large", 5 :squad => "acq-feed", 6 :size => '2', 7 :min_size => '2', 8 :max_size => '8', 9 :scaling_policies => [:cpu_high_alarm, :cpu_very_high_alarm, :cpu_low_alarm], 10 :policies => ["read_secrets", "datomic_peer", "notification_datomic_peer", "sns_endpoints", "read_ s", "read_bills"], 11 :elb => {:visibility => "internet-facing"}, 12 :alarms => HIGH_VOLUME_CLOUDWATCH_ALARMS, 13 :port => 8012, 14 :sgs => [kafka_sg, datomic_sg] + service_group_sgs("notification"), 15 :java_properties => datomic_peer_java_props, 16 :datomic_databases => [{:config_key => "datomic_uri", 17 :transactor => "notification", 18 :database_name => "notification"}], 19 :config => {"ratelimit_redis_host" => rl_redis_host, 20 "s3_surrender_bucket" => "nu-surrender-{{env}}"}} 59
60 Sério, tudo em um único = = = = = [:a, = = = [Amazon::VPN::GVT.new, = { public: { a: { cidr: ' /20', id: 'subnet-1234'}, c: { cidr: ' /20', id: 'subnet-12345'}}, prod: { a: { cidr: ' /24', id: 'subnet-12345'}, c: { cidr: ' /24', id: = { a: { cidr: ' /20', id: 'subnet-1234', nat_eip: ' '}, c: { cidr: ' /20', id: 'subnet-1234', nat_eip: ' '}} 60
61 Receitas Centralizadas e Baseadas na Mesma Abstração \ _ \ _ \ / _ \ '_ \ / _ \ \ _ _ / _) (_) _ _ \_ \,_ / \. / _ \ / \, _ /./console staging Loading environment for deploy... Skipping config: No such file or rb_sysopen -./config/deploy_config.json Skipping config: No such file or rb_sysopen -./config/deploy_secret_config.json Skipping config: No such file or rb_sysopen - /etc/deploy_config.json Skipping config: No such file or rb_sysopen - /etc/deploy_secret_config.json LOCAL is true Current environment is staging on us-east-1 >> 61
62 Receitas Centralizadas e Baseadas na Mesma Abstração irb: MesosCluster.create!( b ) Cloud Formation Template UserData(MesosDefinition) AutoScaling + Launch Configuration Ec2 MESOS USERDATA ELB MESOS CONTAINER 62
63 Receitas Centralizadas e Baseadas na Mesma Abstração Design View 63
64 Receitas Centralizadas e Baseadas na Mesma Abstração 64
65 IMMUTABLE MONITORING
66 Immutable Monitoring Servidores individuais não importam mais Como monitorar performance ao longo do tempo? 66
67 EVENT STREAm PROCESSING
68 Event Stream Processing Receba eventos importantes de todos os servidores, processe e armazene. 68
69 SERVICE 1 HOST 1 CPU S1 LOAD S1 CPU S1 LOAD S1 SERVICE 1 HOST 2 CPU S1 HEALTH S1 STREAM PROCESSOR SERVICE 1 HOST 3 MEM S1 LOAD S1 HEALTH S1
70 CPU S1 HEALTH S1 CPU HEALTH S1 LOAD S1 S1 LOAD S1 CPU S1 MEM S1 LOAD S1 STREAM PROCESSOR HEATLH S1 LOAD S1 CPU S1 MEM S1 TIMESERIES DATABASE
71 RIEMANN Stream Processor com muitos poderes! 71
72 COMMON TASKS
73 Instance LAYER Update
74 Atualizar SO SERVICE 5 SERVICE 6 SERVICE 4 SERVICE 7 1 def coreos 2 stable_835 = ami-f4 3 end STACK B SERVICE 3 SERVICE 1 SERVICE 2 Construa nova AMI Altere UMA linha de código Nova Stack 74
75 DONE!
76 HAPPY DEVOPPER 76
77 UPDATING persistent component
78 Novo Zookeeper ZK MUTABLE SERVICES ZK2 1 Zookeeper.create!( green ) SERVICE 5 SERVICE 5 SERVICE 6 SERVICE 6 SERVICE 4 SERVICE 4 SERVICE 7 Novo Zookeeper (UMA LINHA) SERVICE 7 STACK A SERVICE 3 STACK B SERVICE 3 SERVICE 1 SERVICE 2 SERVICE 1 SERVICE 2 Nova Stack apontando para o novo ZK 78
79 Parallel stacks
80 SERVICE 5 SERVICE 6 SERVICE 4 SERVICE 7 TEST SERVICE 3 SERVICE 5 SERVICE 6 SERVICE 1 SERVICE 4 SERVICE 2 SERVICE 7 STAGING SERVICE 3 SERVICE 1 SERVICE 2 Ter uma copia exata do que roda em produção
81 SERVICE 5 SERVICE 5 SERVICE 6 SERVICE 6 SERVICE 4 SERVICE 4 SERVICE 7 MESOS A SERVICE 7 MESOS B SERVICE 3 SERVICE 3 SERVICE 1 SERVICE 2 Workstreams Paralelos SERVICE 1 SERVICE 2 Sem interferir um ao outro
82 SHARDING
83 MUTABLE SERVICES MUTABLE SERVICES SERVICE 6 SERVICE 5 SERVICE 4 MUTABLE SERVICES SERVICE 6 SERVICE 5 SERVICE 4 MUTABLE SERVICES SERVICE 7 STACK B SERVICE 7 STACK C SERVICE 3 SERVICE 3 SERVICE 1 SERVICE 2 SERVICE 6 SERVICE 5 SERVICE 1 SERVICE 2 SERVICE 6 SERVICE 5 SERVICE 4 SERVICE 4 SERVICE 7 STACK A SERVICE 7 STACK D SERVICE 3 SERVICE 3 SERVICE 1 SERVICE 2 SERVICE 1 SERVICE 2 ROUTER nubank.com.br
84 CULTURAL CHALLENGE
85 85
86 CLI Tools
87 $ nu services scale prod notification 10 87
88 Qualquer pessoa consegue fazer alterações 88
89 89
90 Empowerment para qualquer engenheiro para mexer na infraestrutura 90
91 Melhor tipo de documentação 91
92 Não precisa chamar o guru de infraestrutura 92
93 Autoscaling Policies
94 IFTTT: só que para sua infra estrutura 94
95 Se a média de uso CPU nos últimos 5 min for maior que 70%, então suba mais uma máquina 95
96 Se a média de uso CPU nos últimos 5 min for menor que 10%, então termine uma máquina 96
97 Embrace Chaos
98
99 Alarmes, Mensagens claras de erro 99
100 Infraestrutura inquebrável? 100
101 Post-mortems FTW! 101
102 Não resolver somente o problema, mas sim melhorar também os alarmes 102
103 Conclusão
104 Vale a pena? 104
105 Sabendo que você pode dar um passo atrás a qualquer momento, vai fazer você avançar sem medo 105
106 改 善 106
107 Fortalecimento da cultura Devops 107
108 Dúvidas? Obrigado! Estamos contratando! nubank.workable.com
ARQUITETANDO E EVOLUINDO. um erp para a nuvem
ARQUITETANDO E EVOLUINDO um erp para a nuvem @andremidea @mvlbarcelos @andremidea André Midea Dev focado em Ops na Bluesoft. www.andremidea.com @mvlbarcelos Marcus Barcelos Arquiteto de soluções. Objetivo
Leia maisOrquestrando Docker Containers
Orquestrando Docker Containers Machine, Swarm e Compose Roberto G. Hashioka - @rhashioka 2015-06-10 São Paulo/SP! Informações Pessoais Roberto Gandolfo Hashioka @rogaha (Github) e @rhashioka (Twitter)!
Leia maisDevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% de uptime
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% de uptime Sobre a Rivendel Fundada em Maio/2013 Especialistas em Cloud/DevOps Empresa mais qualificada em Amazon Web Services
Leia maisManual de Instalação
Análise de Custos Análise da Sinistralidade e Rentabilidade Estatísticas Cadastrais Meta Referencial Performance da Rede Credenciada Atenção à Saúde Manual de Instalação Sumário Sumário... 2 1. Configurações
Leia maisConfigurando NFS + NIS Ubuntu Linux
Configurando NFS + NIS Ubuntu Linux Introdução Este tutorial tem por objetivo ensinar a configurar o NFS + NIS no Ubuntu de forma rápida e simples, mas sem deixar de transmitir os conceitos necessários
Leia maisDocker do básico à orquestração de containers. Meetup de Laravel em São Paulo #3
Docker do básico à orquestração de containers Meetup de Laravel em São Paulo #3 Sobre $nome = 'Wellington F. Silva'; $nick = ['_wsilva, 'tom', 'boina', 'fisi', 'iéié']; $work = 'developer'; $background
Leia maisInstalando e Configurando o DNS Server
Instalando e Configurando o DNS Server Seg, 27 de Outubro de 2008 18:02 Escrito por Daniel Donda Tw eetar 0 Like 0 A instalação do serviço DNS no Windows Server 2008 é bem simples e de extrema importancia
Leia maisInstalando e Configurando o DNS Server
Instalando e Configurando o DNS Server Seg, 27 de Outubro de 2008 18:02 Escrito por Daniel Donda A instalação do serviço DNS no Windows Server 2008 é bem simples e de extrema importância para uma rede.
Leia maisLaboratório 3. Configurando o Serviço DNS
Neste laboratório iremos falar sobre o serviço DNS (Domain Name System). O DNS é um sistema de gerenciamento de nomes hierárquico e distríbuido visando resolver nomes de domínio em endereços de rede IP.
Leia maisConfigure seu Linux pela Web! Instalação à partir de um.tar.gz. Autor: Carlos Eduardo Ribeiro de Melo <eduardo at unisulma.edu.br> Data: 05/10/2004
1 de 6 27/3/2007 10:03 Configure seu Linux pela Web! Autor: Carlos Eduardo Ribeiro de Melo Data: 05/10/2004 Introdução O Webmin é um software de configuração de servidores
Leia maisActive Directory - Criação de seu primeiro domínio Windows 2003
Active Directory - Criação de seu primeiro domínio Windows 2003 O Active Directory é o serviço de diretório utilizado em uma rede Windows 2003. O AD, sendo um serviço de diretório, serve à nossa rede como
Leia maisConfiguração de DNS em Windows Servidor 2008
Reflexão Turma S-12-ano lectivo-2010-1011 Formador-João Afonso Formando-Pedro Gonçalves 14 Unidade: 14 Configuração de DNS em Windows Servidor 2008 Instalar o DNS 1. Abra o Servidor Manager Start\Administrative
Leia maisCasa do Código Livros para o programador Rua Vergueiro, 3185-8º andar 04101-300 Vila Mariana São Paulo SP Brasil
Casa do Código Todos os direitos reservados e protegidos pela Lei nº9.610, de 10/02/1998. Nenhuma parte deste livro poderá ser reproduzida, nem transmitida, sem autorização prévia por escrito da editora,
Leia maisMigrando seu site para o Azure utilizando
Migrando seu site para o Azure utilizando Plataforma como serviço. DEV210 Migrando seu site para o Azure utilizando Plataforma como serviço. Quem é o palestrante? Vinícius Souza Evangelista Técnico @vbs_br
Leia maisO essencial do comando mysqladmin, através de 18 exemplos
O essencial do comando mysqladmin, através de 18 exemplos Elias Praciano O mysqladmin é uma ferramenta de linha de comando que vem junto com a instalação do servidor MySQL e é usada por administradores
Leia maisManual de Instalação. Instalação via apt-get
Manual de Instalação Instalação via apt-get Índice de capítulos 1 - Pré-requisitos para instalação............................ 01 2 - Instalando o SIGA-ADM................................. 01 2.1 - Preparando
Leia maisManual de Instalação. Instalação via apt-get. SIGA-ADM versão 12.06
Manual de Instalação Instalação via apt-get SIGA-ADM versão 12.06 Introdução Projeto SIGA-EPCT Manual de Instalação via apt-get O SIGA-ADM é um subsistema do SIGA-EPT (Sistema Integrado de Gestão Acadêmica
Leia maisHands On para (web)developers: Docker vs Vagrant
Hands On para (web)developers: Docker vs Vagrant Trilha Web Florianopólis, 13/04/2015 Gustavo Maestri & Ingo Gerhard Jauch Globalcode Open4education Sobre os palestrantes Gustavo Maestri Software Developer
Leia maisTema: Oracle Weblogic Administration 11g
3ª Edição 16 a 18 de Maio Angola Tema: Oracle Weblogic Administration 11g Orador: Gilberto Calunga Agenda Introdução Topologia do Servidor Weblogic 11g Domain Server Admin Server Managed Server Cluster
Leia maisINSTALANDO O LAM-MPI NO DEBIAN
INSTALANDO O LAM-MPI NO DEBIAN Brivaldo Junior 25 de Março de 2006 1 Introdução A comunicação de processos por troca de mensagens é muito utilizada em programação paralela, especialmente em máquinas parelelas
Leia maisSistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,
Leia maisApós salvar, execute o comando testparm e ele deverá exibir a mensagem Server role: ROLE_DOMAIN_PDC".
Samba como Servidor de Domínio Ubuntu Server 14.04 1. Passo - Instalação do pacote: #apt-get install samba 2. Passo - Edição do smb.conf Após instalar o samba delete o arquivo padrão smb.conf. #rm /etc/samba/smb.conf
Leia mais*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.
Arquitetura Oracle e seus componentes Hoje irei explicar de uma forma geral a arquitetura oracle e seus componentes. Algo que todos os DBA s, obrigatoriamente, devem saber de cabo a rabo. Vamos lá, e boa
Leia maisAula 06 Servidor de Arquivos e Impressora (SaMBa)
Aula 06 Servidor de Arquivos e Impressora (SaMBa) Prof. Roitier Campos Gonçalves Introdução O servidor de arquivos fornece um ponto centralizado na rede para armazenamento e compartilhamento de arquivos
Leia maisManual de instruções
RELATÓRIO DE PROJETO versão 2.1 Manual de instruções 1.Termo de Referência Esse relatório diz respeito ao edital número 46, OBJ-REL - Camada de Persistência Objeto-Relacional, publicado entre os dias 04
Leia maisEscrito por Daniel Donda Qui, 06 de Novembro de 2008 18:21 - Última atualização Qui, 06 de Novembro de 2008 18:47
Conhecendo o Event Viewer Muito importante na manutenção e monitoramento de servidores o Event Viewer é uma ferramenta que gera logs de eventos tudo o que ocorre no servidor. Como o sistema nunca para
Leia maisMétodos Formais em Engenharia de Software. VDMToolTutorial
Métodos Formais em Engenharia de Software VDMToolTutorial Ana Paiva apaiva@fe.up.pt www.fe.up.pt/~apaiva Agenda Install Start Create a project Write a specification Add a file to a project Check syntax
Leia maisMÉTRICAS DE REDE NO ZABBIX
IMPLEMENTAÇÃO DE MÉTRICAS DE REDE NO ZABBIX Universidade Federal de Minas Gerais Departamento de Ciência da Computação Laboratório de Software Livre 22 de janeiro de 2010 1 Sumário 1 Introdução 3 2 Pré-requisitos
Leia maisIntrodução ao Git. Laboratório de Programação. Luísa Lima, Pedro Vasconcelos, DCC/FCUP. Março 2015
Introdução ao Git Laboratório de Programação Luísa Lima, Pedro Vasconcelos, DCC/FCUP Março 2015 Porquê controlo de versões? Um sistema de controlo de versões (VCS) é um ferramenta integrada que possibilita
Leia maisResolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite
Resolução de Problemas de Rede Disciplina: Suporte Remoto Prof. Etelvira Leite Ferramentas para manter o desempenho do sistema Desfragmentador de disco: Consolida arquivos e pastas fragmentados Aumenta
Leia maisIntrodução ao Android
Introdução ao Android André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida Parte 1 Conhecendo o Sistema e Primeiro Programa Roteiro Pré-requisitos Conceitos Básicos Configurando o Ambiente
Leia maisArte em ASCII. Introdução: Python
Python 1 Arte em ASCII All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introdução:
Leia maisTipos Menos Comuns de Travamento de Sistema
Tipos Menos Comuns de Travamento de Sistema Interativo: Este documento oferece uma análise personalizada do seu dispositivo Cisco. Índice Introdução Pré-requisitos Requisitos Componentes Usados Convenções
Leia maisTelefonia IP MOT. Prática 1
Prática 1 Instalando o proxy SIP Kamailio, configurando os usuários e interligando proxies. Objetivo: Criar um ambiente VoIP básico utilizando o proxy SIP Kamailio que terá suas informações de usuário
Leia maisTransações Seguras em Bancos de Dados (MySQL)
Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o
Leia maisIntrodução à Engenharia ENG1000
Introdução à Engenharia ENG1000 Aula Extra - Projetos e Controle de Versões 2016.1 Prof. Augusto Baffa Armazenando seu projeto Como armazenar versões? Não se preocupar Acumular
Leia maisInstalação e utilização do Eclipse / Fortran em Windows
Computação e Programação Instalação e utilização do Eclipse / Fortran em Windows Nalgumas versões recentes do Windows o instalador referido na página da disciplina não consegue instalar corretamente o
Leia maisAGENDA. Alta Disponibilidade com CICS Web Support - SIPON
AGENDA NOSSA MISSÃO Promover a melhoria contínua da qualidade de vida da sociedade, intermediando recursos e negócios financeiros de qualquer natureza, atuando, prioritariamente, no fomento ao desenvolvimento
Leia maisAdicionando Propriedades e Funcionalidades aos Componentes Parte II
Adicionando Propriedades e Funcionalidades aos Componentes Parte II Quantas vezes eu não lamentei por este componente não ter uma propriedade que guardasse uma lista paralela a lista que é mostrada em
Leia maisTrilha Agile TDD e 20 coisas que você precisa saber
Trilha Agile TDD e 20 coisas que você precisa saber Camilo Lopes Quem sou eu?! Trabalha com desenvolvimento de software desde 2003. Atualmente Desenvolvedor de Software na ADP Labs, escritor do livro "Guia
Leia maisFAM - Monitorar alteração de arquivos
1 of 5 23/6/2010 22:38 FAM - Monitorar alteração de arquivos Autor: Paulo Roberto Junior - WoLF Data: 09/02/2010 Introdução Neste artigo, o foco não será estilo receita de bolo,
Leia maisManual de Instalação Versão 1.0
Análise de Custos Análise da Sinistralidade e Rentabilidade Estatísticas Cadastrais Meta Referencial Performance da Rede Credenciada Atenção à Saúde Manual de Instalação Versão 1.0 Centro Empresarial das
Leia maisSISTEMA LOGS May 20 11:37:47 felipe-virtualbox sudo: pam_unix(sudo:session): session opened for user root by felipe(uid=0)
Faculdade de Tecnologia Senac Goiás Projeto Integrador GTI 2 Matutino Alunos: Diego Guimarães Vaz, Geovane Alves, Lucas Magalhães, Gabriel Napolis Mascarenhas. SISTEMA LOGS Um arquivo de log armazena mensagens
Leia maisCurso PHP Aula 06. Bruno Falcão brunogfalcao@gmail.com
+ Curso PHP Aula 06 Bruno Falcão brunogfalcao@gmail.com + Upload de Arquivos Upload de arquivos Copiar um arquivo de uma máquina local para o servidor web. Exemplos: Imagens, videos, documentos, etc. +
Leia maisTutorial de instalação do ambiente Ruby, Ruby on Rails e MySQL no Ubuntu 10.04.
Tutorial de instalação do ambiente Ruby, Ruby on Rails e MySQL no Ubuntu 10.04. Neste tutorial vamos instalar um ambiente completo para desenvolvimento Ruby, Rails e MySQL no Ubuntu 10.04. É necessário
Leia maisTUTORIAL PRÁTICO SOBRE Git. Versão 1.1
TUTORIAL PRÁTICO SOBRE Git por Djalma Oliveira Versão 1.1 "Git é um sistema de controle de revisão distribuida, rápido e escalável" (tradução rápida do manual). Basicamente é
Leia maisCurso CP100A - Google Cloud Platform Fundamentals (8h)
Curso CP100A - Google Cloud Platform Fundamentals (8h) Este curso virtual liderado por um instrutor, com 8 horas de duração, introduz os participantes aos produtos e serviços do Google Cloud Platform.
Leia maisInstalando o MySQL 5.6 no Windows
Instalando o MySQL 5.6 no Windows Digite mysql no google e selecione a primeira opção. No site do MySQL, clique na aba Downloads. Após clicar na aba Downloads, desça o cursor do mouse até o fim da página.
Leia maisEscrito por Júlio Oliveira Ter, 30 de Junho de 2009 20:06 - Última atualização Seg, 17 de Agosto de 2009 17:25
SendEmail - O que é No Linux temos algumas opções para enviar e-mails. Uma das mais conhecidas é o SendMail (isso mesmo, sem o E de SendEmail). O problema do SendMail é que ele é um servidor completo de
Leia maisLinux System Administration 455
Linux System Administration 455 Nome do curso que é modificado no Slide Mestre Slide 1 2 Nome do curso que é modificado no Slide Mestre Slide 1 3 Os serviços de rede podem ser divididos em três tipos básicos:
Leia maisAdministração de Usuários e Privilégios no Banco de Dados
Administração de Usuários e Privilégios no Banco de Dados Todo agrupamento de bancos de dados possui um conjunto de usuários de banco de dados. Estes usuários são distintos dos usuários gerenciados pelo
Leia maisCapítulo 2. VARIÁVEIS DO TIPO INTEIRO
Capítulo 2. VARIÁVEIS DO TIPO INTEIRO OBJETIVOS DO CAPÍTULO Conceitos de: variáveis do tipo inteiro, atribuição, avisos e erros de compilação, erros de execução, comentários dentro do programa-fonte Operadores
Leia maisQCON 2015 Uma abordagem prática ao LXC. UOLHOST Marcus Vinícius Soares mvc_msoares@uolinc.com
QCON 2015 Uma abordagem prática ao LXC UOLHOST Marcus Vinícius Soares mvc_msoares@uolinc.com Agenda Motivação LXC GO Dicas Perguntas e Respostas Complexidade Atual Complexidade atual (e crescendo) CAOS
Leia maisConfigurando servidor de DNS no CentOS O Domain Name System Sistema de Nomes de Domínio é de fundamental importância em uma rede.
Configurando servidor de DNS no CentOS O Domain Name System Sistema de Nomes de Domínio é de fundamental importância em uma rede. O DNS é um sistema hierárquico em árvore invertida. Tem como origem o ponto
Leia maisPuppet. Automatizando e Gerênciando Con!gurações. <Guto Carvalho>
Puppet Automatizando e Gerênciando Con!gurações whoami Consultor/SysAdmin (LPIC-3) na 4Linux Doze anos de experiência com tecnologias FOSS Blogueiro de TI há 6 anos no site gutocarvalho.net
Leia maisInstalando o Root Management Server (RMS)
Instalando o Root Management Server (RMS) Última revisão feita em 07 de Abril de 2008. Objetivo Depois de instalarmos a base de dados do SCOM 2007 é hora de implementar o Root Management Server (RMS) e
Leia maisAdministração de Sistemas (ASIST)
Administração de Sistemas (ASIST) Funções do Administrador de Sistemas Centros de Processamento de Dados Virtualização de Servidores Setembro de 2014 1 As funções do Administrador de Sistemas Abrangem
Leia maisCrash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.
Recover no Oracle O backup e recuperação de dados em um SGBD é de grande importância para a manutenção dos dados. Dando continuidade a nossos artigos, apresentamos abaixo formas diferentes de se fazer
Leia maisProgramação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API
Programação Na Web Servlets: Como usar as Servlets 1 António Gonçalves Agenda Template genérico para criar Servlets Servlet 2.4 API Exemplo: Hello World Output: Texto, HTML e hora local. Compilar uma Servlets
Leia maisII Semana de Tecnologia da Informação. Rails Framework
II Semana de Tecnologia da Informação Rails Framework Rails Instalação Ruby versão 1.8.7 Linux: ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz ou apt-get install ruby (Debian/Ubuntu) Windows:
Leia maisManual de Instalação e Configuração MySQL
Manual de Instalação e Configuração MySQL Data alteração: 19/07/11 Pré Requisitos: 1. Baixar os seguintes arquivos no através do link http://ip.sysfar.com.br/install/ mysql-essential-5.1.46-win32.msi mysql-gui-tools-5.0-r17-win32.msi
Leia maisDesafios na implantação de nuvens públicas
INFORME TÉCNICO Garantia de serviços de rede de nível empresarial para AWS O Infoblox DDI for AWS aumenta a agilidade na nuvem, oferece suporte a políticas de rede consistentes em implantações híbridas
Leia maisAgendamento de tarefas
Introdução O que é o cron? Nada mais é do que a agenda do sistema para determinar tarefas a serem executadas em horários específicos. No caso do cron, podemos agendar diversas tarefas administrativas,
Leia maisNo Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:
Instalando o MySQL O MySQL é um banco de dados extremamente versátil, usado para os mais diversos fins. Você pode acessar o banco de dados a partir de um script em PHP, através de um aplicativo desenvolvido
Leia maisVersão 0.1. Manual FoRc. Última Atualização: Maio/2007. Daniel Schmitz danieljfa@gmail.com
Versão 0.1 Manual FoRc Última Atualização: Maio/2007 Daniel Schmitz danieljfa@gmail.com Sumário 1. O que é FoRc?... 3 2. O que é Adobe Flex?... 3 3. O que é Ruby on Rails?... 3 4. Flex + Ruby on Rails?...
Leia maisMTM00008 - MANUAL DE INSTALAÇÃO DE ADEMPIERE NO LINUX DEBIAN
Processo de instalação: 1-Adicionar ao arquivo /etc/apt/sources.list os pacotes não livres: deb http://http.us.debian.org/debian/ etch main contrib non-free ou algum outro de sua escolha. 2-Instalar o
Leia maisMANUAL DE INSTALAÇÃO DAS TECNOLOGIAS USADAS. Abrir o eclipse e ir em: help > software updates > find and install;
MANUAL DE INSTALAÇÃO DAS TECNOLOGIAS USADAS 1. PLUGINS DO ECLIPSE EUROPA a. Subclipse 1.2.4 Baixar a versão 1.2.4; Abrir o eclipse e ir em: help > software updates > find and install; Selecionar: Search
Leia maisCA Nimsoft Monitor Snap
CA Nimsoft Monitor Snap Guia de Configuração do Monitoramento do WebSphere websphere série 1.6 Aviso de copyright do CA Nimsoft Monitor Snap Este sistema de ajuda online (o Sistema ) destina-se somente
Leia maisRuby. Simplicidade e produtividade
Ruby Simplicidade e produtividade Ruby é... Uma linguagem de tipagem dinâmica e forte, com gerenciamento de memória automático, open source com foco na simplicidade e na produtividade. Tem uma sintaxe
Leia maisPasso a Passo. WebSphere Message Broker. Fluxo como WebService
Passo a Passo WebSphere Message Broker Fluxo como WebService Alexandre José Batista ajbatist@ibest.com.br Criado em: 07/11/08 Página 1 de 38 Índice 1. OBJETIVOS DO DOCUMENTO... 4 2. CRIANDO UM FLUXO NO
Leia maisPolítica Gestão de Configuração e Mudança
Política Gestão de Configuração Histórico de Alteração Data Versão Descrição Autor 20/08/2011 1 Versão Inicial Danilo Costa Versão 1 Pág. 2 de 7 Índice 1. POLÍTICA 4 1.1 Aplicabilidade 4 2. CONCEITUAÇÃO
Leia maisO Manual do ssc. Peter H. Grasch
Peter H. Grasch 2 Conteúdo 1 Introdução 6 2 Usar o ssc 7 2.1 Gerir os utilizadores.................................... 7 2.1.1 Adicionar um utilizador.............................. 8 2.1.1.1 Associar-se
Leia maisDisciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho
Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho Obs: Não há necessidade de entregar a lista Questões do livro base (Kurose) Questões Problemas
Leia maisPPTPCONFIG. Altamir Dias. 29 de junho de 2005. 1 Instalando o Programa pptpconfig
PPTPCONFIG Altamir Dias 29 de junho de 2005 1 Instalando o Programa pptpconfig Este roteiro foi desenvolvido usando a distribuição Debian. Para as demais distribuições, basta procurar pelos pacotes nos
Leia maisPrimeiros passos com Watson Explorer Enterprise Edition 11.0: Instalação, configuração e testes em máquina virtual Windows 7.
Primeiros passos com Watson Explorer Enterprise Edition 11.0: Instalação, configuração e testes em máquina virtual Windows 7. Resumo: Este artigo mostra detalhadamente quais recursos são necessários para
Leia maisMA001. 01 de 28. Responsável. Revisão Q de 26/06/2015. Cantú & Stange Software. Página
Manual de instalação do Zada 5 MA001 Responsável Revisão Q de 26/06/2015 FL Página 01 de 28 Página 1 de 33 Revisão Q de 26/06/2015 MA001 Responsável: FL Manual de instalação do Zada 5 Este manual consiste
Leia maisCriando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google
Criando uma plataforma mundial para engajamento de usuários para a Copa do Mundo 2014 na nuvem da Google Daniel Viveiros - Head of Technology Twitter: @dviveiros Site: http://www.ciandt.com/u/viveiros
Leia maisProf. Samuel Henrique Bucke Brito
- Mobilidade IP em Telefonia Celular www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Introdução Quando as idéias acerca da Internet foram concebidas em 1960-70, o objetivo
Leia maisLaboratório 1 SQL Server Integration Services
Laboratório 1 SQL Server Integration Services Cenário: Você deseja construir um processo que irá realizar relatório sobre vendas. O relatório é um sumario das vendas anuais, mas poderia ser aplicado para
Leia maisSISTEMAS OPERACIONAIS LIVRES (LINUX) Professor Carlos Muniz
SISTEMAS OPERACIONAIS LIVRES (LINUX) Agendador de Tarefas Ocron é um ótimo agendador de tarefas, com ele você pode agendar para um determinado momento um programa qualquer a ser executado. Sua aplicação
Leia maisServidor Apache - Instalação
Servidor - Instalação João Medeiros (joao.fatern@gmail.com) 1 / 24 relendo 2 / 24 relendo Um dos servidores mais utilizados do mundo Desenvolvimento iniciado em 1995 pela NCSA (National Center for Computer
Leia maisponto P terá as projecções P 1 e P 2. E o eixo X passa para X. Vamos ver o que acontece no plano do
Mudança de planos 1- Introdução As projecções de uma figura só representam as suas verdadeiras grandezas se essa figura está contida num plano paralelo aos planos de projecção. Caso contrário as projecções
Leia mais1º passo: Instalando a rvm.
Tutorial de instalação de múltiplos ambientes Ruby 1.8.7 e 1.9.2, Ruby on Rails 2.3.11 e 3.0.7 e MySQL no Ubuntu 10.04. Nem sempre é fácil a preparação de um ambiente de desenvolvimento web completo. Às
Leia maisIBM Software Demos Tivoli Business Service Management
Independentemente do setor, do mercado, do tamanho ou da complexidade, as organizações de hoje precisam oferecer serviços completos. Cada vez mais, as empresas dependem da infra-estrutura tecnológica para
Leia maisPROTOCOLOS DE COMUNICAÇÃO
PROTOCOLOS DE COMUNICAÇÃO 3º ANO / 2º SEMESTRE 2014 INFORMÁTICA avumo@up.ac.mz Ambrósio Patricio Vumo Computer Networks & Distribution System Group Descrição do File Transfer Protocol - FTP FTP significa
Leia mais35% GARTNER. Despesas com tecnologia ocorrem fora da T.I. Fazem uso de tecnologias não aprovadas pela T.I.
DEVOPS E PAAS - ABORDAGENS E FERRAMENTAS PARA ATENDER AS NOVAS DEMANDAS DE MERCADO Rodrigo Ramalho da Silva - Solutions Architect rramalho@redhat.com INOVAR NÃO É UMA ESCOLHA Organizações de T.I. que não
Leia maisGestix. Instalar em Linux. Gestix.com. Instalar em Linux...2 Pré-requisitos para instalar o Gestix em Linux...2
Gestix Instalar em Linux Instalar em Linux...2 Pré-requisitos para instalar o Gestix em Linux...2 Instalar o Gestix em Debian ou Ubuntu...3 Instalar o Gestix Net em servidor partilhado...4 Gestix.com Pré-requisitos
Leia maisINTRODUÇÃO À TRIDIMENSIONALIDADE Step by step Maja`s House 16 11 2015
INTRODUÇÃO À TRIDIMENSIONALIDADE Step by step Maja`s House 16 11 2015 PARTE II: luminação. Visualizações realistas (renders). ILUMINAÇÃO Por omissão, o AutoCAD ilumina o desenho 3D com duas luzes distantes
Leia maisDiretrizes de Qualidade de Projetos
Diretrizes de Qualidade de Projetos Versão 1.5 MAPA/SE/SPOA/CGTI, 2012 Página 1 Histórico de Revisão Data Versão Descrição Autor 15/01/2012 1.0 Criação do Artefato Pérsio Mairon 10/03/2012 1.1 Inclusão
Leia maisWeather Search System
Weather Search System PROJECTO DE COMPUTAÇÃO EM NUVEM RELATÓRIO Grupo 2 Gonçalo Carito - Nº57701 Bernardo Simões - Nº63503 Guilherme Vale - Nº64029 Índice Weather Search System...1 1. A Solução Implementada...3
Leia maisSTK (Start Kit DARUMA) Conectando-se diretamente a sua aplicação via TS com o MT1000 Daruma
STK (Start Kit DARUMA) Conectando-se diretamente a sua aplicação via TS com o MT1000 Daruma Neste STK apresentaremos como configurar seu servidor Windows 2008 R2 para abrir diretamente sua aplicação ao
Leia maisJadson Santos Analista TI UFRN Amador Pahim Eng. Red Hat / Pesquisador SINFO
Jadson Santos Amador Pahim 1 Analista TI UFRN Eng. Red Hat / Pesquisador SINFO Jadson Santos Amador Pahim 2 Analista TI UFRN Eng. Red Hat / Pesquisador SINFO Aperfeiçoando o Processo de Desenvolvimento
Leia maisCom este tutorial, temos por objetivo determinar a distância entre duas localidades.
Tutorial 2 Introdução Para determinar a distância entre duas localidades, basta simplesmente selecionar um recurso de medida de distância (Measure tool) e clicar sobre cada uma das localidades. Entretanto,
Leia maisControle de Versão com GIT
Controle de Versão com GIT Túlio Toffolo tulio@toffolo.com.br http://www.toffolo.com.br Conteúdo Extra Algoritmos e Estruturas de Dados História do GIT Linus usa BitKeeper para gerenciar o código de suas
Leia maisInfraestrutura == código. Projetando servidores Debian com Chef e Vagrant. Antonio Terceiro
Infraestrutura == código Projetando servidores Debian com Chef e Vagrant Antonio Terceiro Infraestrutura == código Projetando servidores Debian com Chef e Vagrant Antonio Terceiro Infraestrutura == código
Leia mais@georgeguimaraes. Integração Discreta. melhorando a Integração Contínua e ganhando em colaboração
@georgeguimaraes Integração Discreta melhorando a Integração Contínua e ganhando em colaboração @georgeguimaraes George Guimarães co-fundador da Plataformatec entrega de projetos Posicionamento único
Leia maisSistemas Distribuídos Modelo Cliente-Servidor
Sistemas Distribuídos Modelo Cliente-Servidor Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de
Leia mais