46. Case – Cheetos
DATA CENTER
TRADICIONAL
Investimento de Despesa de
R$ 100 mil R$ 3 mil /mês
Setup Demorado Rápido Setup
Sub-utilização
em 80% do tempo Pagamento por uso
- Apresentacao pessoal - Estou aqui para apresentar como adotamos a nuvem para suprir as variaveis demandas que temos da emprsa onde trabalho - Entao - vamos la
Vamos comecar falando de infraestrutura, mostrando as dificuldades do mundo antigo e o ideal
Infraestrutura tradicional: - Alto custo para aquisicao de servidores - Implementacoes demoradas pois depende da TI para isso - baixa utilizacao dos recursos - manutencao do recursos, vai que estraga uma peca ate comprar outra demora hein... - Burocracia para aquisicao - tendo que passar por varios setores da empresa - ter que ficar debatendo contratos com diversos fornecedores
Infraestrutura Ideal: - Pagar apenas que uso e escalavel- tipo assim, preciso de mais hardware vou la e adiciono e pago - preciso retirar hardware retiro e nao pago mais por isso - Agil - que essa troca seja muito rapida, sem passar por toda burocracia de aquisicao ou outros - Gerir facilmente o ambiente - etc etc....
Complicou entao!!???
Calma galera, sempre tem uma luz no fim do tunel...
Entao vou comecar no case que da Dextra onde temos o seguinte cenario: - A dextra e uma empresa focada em treinamento, consultoria e desenvolvimento de software - mas o carro chefe e o desenvolvimento sob demanda onde o cliente solicita uma X demanda e nos desenvolvemos. - E no desenvolvimento de software primapos pelos seguintes itens: agilidade, reducao de disperdicio, entregar valor ao negocio, entre outrs
Neste cenario a TI encontra alguns problemas a serem resolvidos, como: - Aquisicao de equipamentos que como a gente sabe servidores nao sao baratos - Alem de comprar, e necessario manter esta infraestrutura funcionando para o desenvolvimento e tempo e dinheiro - outro ponto e caso ocorra algum problema grave com o equipamento, assim, manter a infraestrutura acaba tendo um alto custo - Baixa utilizacao de recursos - exemplo: comprei um servidor gigantesco e so uso parte destes recursos - para que tive esse custo? - Na questao de recursos compartilhado, lembro que tinhamos servidores VMWARES e ai ja viu - cada projeto precisava de + e + recurso - ate chegar a um ponto de nao conseguirmos suportar mais um ambiente - Gerenciar cresciment - vamos ficar pendurando servidores....complicado - E quando acabar o projeto??? o que eu faco com a maquina?? - Os desenvolvedores falavam assim para mim: ah, usa ai para outros servicos.... entao para mim virava sucata!!
Mas os problemas nao estavam somente do lado da TI - o pessoal de desenvolvimento tinha entregas a serem realizadas....e esbarravam exatamente no setor de TI, aqui segue uma breve lista de problemas que eles encontravam: - Muito tempo para planejar aquisicao de servidores - planejar ou chutar - Demora para as novas implementacoes - Processo era burocratico para aquisicao - tinha que passar por varios setores ate efetivar a compra - depois esperar chegar - configurar....nossa era complicado - Todos esses pontos bloqueavam a inovacao que era um dos pontos fortes em que a Dextra buscava e busca sempre Assim, tinhamos um cenario como este:
Os setores de TI e desenvolvimento brigando constantemente devido a questao de recursos - vou dizer que a briga era feia viu!!! Entao - o que realmente a empresa precisava para termos um bom funcionamento?
- Poder computacional para o desenvolvimento de software
- Agilidade para ter este poder computacional
- Escalabilidade - preciso de mais processamento/memoria - preciso disso para ontem ou para ja!!!
- Ter um ambiente seguro
- Ter confianca no que estava sendo fornecido
- E claro - com um custo razoavel para realizarmos testes, expansoes, entre outros...
Complicado mesmo - estavamos meio que sem saida na epoca....estudamos varias saidas ate que achamos o CLoud da AWS
Ufa, muita briga ate chegarmos em um "consenso"
Olha so o descritivo do servico da Amazon EC2: - Ler frase... - Nossa, era tudo que precisavamos nao?!?! vamos ver o que mais eles falavam
- Elastico - permitindo que vc aumente ou diminua seu poder computacional a qualquer momento
- ambiente controlado: voce tem controle total das suas maquinas....instala ou desisntala o que vc quiser - configura da forma que achar melhor
- Flexivel - rodando qualquer tipo de plataforma - suprindo demandas variadas ...
- A Aws fornece um SLA de 99.95% de disponibilidade em cada regiao....ta otimo
- Seguro: alem de fornecer firewall temos alguns servicos como VPC que da para criar uma VPN com a infraestruitura e manter uma subrede na nuvem. Outra, vc instala o que vc quiser na maquina - um iptables e outros....
Economico - eu pago so pelo que uso - enquanto a maquina esta ligada ela e cobrada e e muito barata - A AWS faz analogia a uma conta de luz, onde quando vc precisa vc acende a luz e paga por isso. quando vc desliga obviamente para de pagar!
Facil utilizacao - simples para iniciar uma instancia e utiliza-la
- Entao ta.....vc acha que acabou....rsrs
Mais problemas a vista....a questao das maquinas disponivei para testes estavam 100% porem esbarramos em alguns problemas em nossa infra interna que complicava as coisas para gente - sao eles:
- Uso desordenado - no comeco todas as maquinas eram ligadas e desligadas pela TI - muitas vezes esqueciamos de desligar a maquina....processo era custoso de entrar em uma interface e fazer isso diariamente
- Com isso....os custos aumentaram....chegamos a dizer que a nuvem era mais caro do que manter servidores.....nao nao....fomos insitentes
- Reconfiguracao de servicos....nao sabiamos usar todos os poderes da nuvem....o que acarretava em termos a toda hora que reconfigurar servicos para os desenvolvedores nas maquinas....era complicado para gente - A aws tem uma questao que o disco onde esta o SO nao e permanente....quando vc desliga/termina uma maquina vc perde tudo que esta no volume raiz
- A questao de todos os dias a TI ter que manter a infraestrutura das equipes de desenvolvimento irritavam os usuarios....alem da TI passar o dia todo modificando itens no painel da AWS... - Era muito complicado isso - pois eles tinham os orcamentos e se estava dentro do orcamento - pq a TI teria que cuidar?
Assim, a TI achou mais desafios mas agora em um ambiente menos hostil digamos assim....... mas o desafio era grande e comecamos a destrinchar as ferramentas da AWS...
Primeiro ponto para dar autonomia, era conseguir transferir os custos de uso para cada projeto. Para isso, criamos uma conta para cada projeto e para melhorar a gestao dos custos usamos uma ferramenta chamada consolidated for billing fornecido pela a AWS. o que e o faturamento consolidado: - Vc cria uma conta mae e vincula as outras contas a esta - com isso, o pagamento era realizado todos na conta de TI sendo que a AWS descrimina o valor por projeto atraves do seu painel Menos um....
Para a questao de reconfiguracao de servicos "descobrimos" o EBS (Elastic block store).... que sao discos persistentes ... mesmo que vc desligue ou termine uma maquina os dados alocados nestes discos serao mantidos....com isso conseguiamos manter as configuracoes e dados nao estaticos de forma saudavel - Para usar os discos era necessario ligar a maquina e vincula-los a maquina -como se fosse um "hd externo" - digamos que o SO estrague - mas seus dados estao armazenados em um disco externo
Autonomia - esse era complicado, pois diariamente vinham as perguntas: - Porque dependo da TI para criar estrutura ja que temos - Como automtizar start/stop para otimizar os custos - via interface e muito demorada todo dia tenho que acessar la....iniciar sair E agora o maior dos desafios - dar autonomia para os desenvolvedores sem que eles tenham acessem o painel da AWS para iniciar - vincular discos.....e outros...
Para falar como montamos a estrutura e necessario entender como que e a estrutura da Dextra - qual o ambiente que rodamos.... - Todos os desktops de desenvolvedores sao linux....que facilitou muito para automatizarmos o ambiente - Com isso instalamos a API de comando da AWS - E realizamos o desenvolvimento de alguns comandos atraves de export de variaveis para suprir as premissas para utilizacao da API - Com isso - os usuarios poderiam criar maquinas....ligar / desligar / vincular discos EBS / vincular IP Publico / acessar ....entre outros - isso tudo atraves de linhas de comando.....
Louco ne - deixa eu mostrar para vc como ficou facil para subir uma maquina.....
Escolher a AMI - a AMI nada mais e que o SO que vc vai escolher - linux / windows / ,.... Criar discos EBS - Configurar 1 arquivo chamado machine.conf adicionando a AMI escolhida, os id's dos discos EBS e executar 1 comando...
- aws_run projeto –m machine start o que esse comando faz: - vincula os discos EBS a maquina - executa scripts configurando automaticamente instalando os servicos - realiza a conexao atraves do nosso proxy Com isso, conseguimos agendar start/stops atraves do crontab de um dos nossos servidores - com isso nao precisavamos mais acessar o painel de controle da AWS e quando o desenvolvedor chegava - a maquina ja estava ligada - lindo nao?rsrsrs...
Com isso - a TI disponibilizou um ambiente onde os desenvolvedores cuidavam da infraestrutura do projeto sem muito custo e tempo - e como consequencia aumentando a produtividade e a qualidade na entrega de softwares.
Entao o cenario mudou.....lembram da encarada....agora todos somos amigos e andamos juntos.... Cara - isso e muito bom.....hoje a TI praticamente atua como consultores de solucoes em nuvem para os projetos....melhorou bastante a relacao....
Mas nao paramos por ai nao.....hoje utilizamos varias solucoes em nuvem, como: - S3 - servico de storage na nuvem - RDS - servico de banco de dados - Auto scalling - Load Ballancing - entre outros...
Aqui sao algumas das ferramentas toda a empresa utiliza que mantemos na nuvem: - Redmine que e ferramenta para gestao de projetos - Software de controle de horas para projetos - Software de base de curriculos - Software de avaliacao de treinamentos - Git para repositorios Hoje diminuimos bastante a quantidade de servidores em nosso CPD.....e essa e a nossa direcao.... retirar da infra interna e levar para a nuvem.....
Neste slide mostro cliente onde utilizamos fortemente a AWS para o desenvolvimento de software... - Abril - bicbanco - FAB - Globosat - entre outros....
O case da cheetos foi um dos mais complexos que colocamos na nuvem...... o software foi desenvolvido para uma promocao em mais de 12 paises na europa.... A promocao era, vem um codigo no pacote e o cliente cadastrava no site da cheetos.... eram premios legais, desde iphone ate pendrive.,..rs... Aqui e apresentado um paradigma de uma infraestrutura tradicional e a da nuvem que utilizamos... - na tradiciona ........ - na Amazon ,,,,,,,
Aqui mostro o escopo e as ferramentas que utilizamos.... - EC2 com EBS....backup em S3....load balancing entre servidores....e cloudwatch para monitoramente..... Foi complicado montar toda esta infra para suprir a demanda que o software tinha.....mas essa foi a estrutura
- Aqui a tela que rodou na russia.....onde tivemos varias tentativas de ataque na estrutura - os premios eram bons - lembra...rs...
- A tela de israel...
Um pouco de dados de uso desde o inicio do uso na nuvem. - temos mais de 64 mil horas de maquinas funcionando na nuvem - Isso e quase 7 anos e meio de uma maquina funcionando - Isso com pelo menos 10 projetos usando em paralelo. Quando a gente para para ver tudo que ja usamos e que nos damos conta……. Nunca tivemos algo grave com o fornecedor, assim a confiabildiade e muito grande.
e a pergunta que fica - onde vamos parar? hoje a AWS lanca muita coisa a todo momento..... na semana passada teve um baita evento em SP onde eles mostraram a quantidade de lancamentos.....muita coisa bate com a necessidade crescente que o mercado precisa para TI .
- Era isso.....muito obrigado a todos.....fique a vontade para fazer perguntas....