Por Techopedia Staff, 31 de agosto de 2016
Resumo : A anfitriã Rebecca Jozwiak discute a solução de problemas e a eficiência dos bancos de dados com os analistas Eric Kavanagh e Dez Blanchfield, além de Bill Ellis, do IDERA.
No momento, você não está logado. Faça o login ou inscreva-se para ver o vídeo.
Rebecca Jozwiak: Senhoras e Senhores Deputados, olá, e sejam bem-vindos às Hot Technologies de 2016. O tópico de hoje, "Aplicativo em execução lenta? Hora de ser preciso". E todos nós não sabemos muito bem os problemas que podem acontecer quando as coisas estão correndo devagar? Esta é Rebecca Jozwiak, estou substituindo Eric, que está meio que fazendo um novo papel aqui, hoje. Sim, este ano está quente e, você sabe, quando se trata de tecnologia, como eu disse, a única coisa que você realmente não quer é uma execução lenta de qualquer coisa, qualquer parte do seu sistema. E apenas para usar um exemplo de consumidor, quero dizer, se você tem um restaurante, não importa o quão boa é a comida, se o serviço é lento, você provavelmente não vai voltar. Agora, é fácil, tipo, em um restaurante descobrir por que algo está correndo devagar. Talvez a cozinha tenha pouco pessoal ou houve um mau funcionamento de alguns equipamentos, ou talvez a equipe de garçons seja um pouco preguiçosa e seja fácil identificar e consertar isso.
Mas quando você pensa em um data center, é uma história completamente diferente. Pode ser um problema de rede, uma consulta incorreta que está atrapalhando o desempenho do aplicativo ou um cabo com defeito pode até causar alguns problemas. E a solução de problemas com esse tipo de complexidade pode ser, na melhor das hipóteses, difícil. É sobre isso que vamos falar hoje. E temos, como eu disse, Eric Kavanagh trabalhando como analista hoje. Temos Dez Blanchfield, nosso cientista de dados, e Bill Ellis, da IDERA, que vai falar sobre a solução de sua empresa que ajuda no gerenciamento de desempenho de aplicativos. E com isso, vou passar a bola para Eric. Eric, o andar é seu.
Eric Kavanagh: Tudo bem, parece bom, pessoal. E essa foi uma ótima analogia, na verdade, porque você falou sobre as dificuldades ou a facilidade com que a solução de problemas pode ser realizada e você se concentra nisso. Os problemas de desempenho sempre resultam de algum tipo de problema que está na rede. Quero dizer, poderia ser tão simples quanto o hardware antigo, por exemplo, mas o resultado final é qualquer situação como essa que exige solução de problemas. É sobre isso que vou falar hoje. E vamos em frente e pular nos slides aqui.
Aí vem problema. Solução de problemas - é divertido para quem gosta, é o que é legal. Se você encontrar alguém que goste de solucionar problemas, segure-a, pegue algumas ferramentas para fazer o trabalho, porque coisas realmente boas se você puder encontrar alguém que possa chegar ao fundo de alguma coisa e fazer as coisas. Mas o ponto principal é que a solução de problemas é problemática e sempre foi e sempre será, e se você começar a falar sobre a solução de problemas, o que realmente está fazendo é a análise da causa raiz. O que está causando o problema?
Bem, se você apenas se sentar e pensar por um segundo até nos dias de mainframe, havia todos os tipos de problemas que poderiam ocorrer. Naquela época, era necessário ter pessoas que realmente conheciam o material, porque não havia nem boas ferramentas para solucionar problemas; portanto, você realmente precisava conhecer o prompt de comando e falaremos sobre isso em um segundo. E eu realmente esqueci de colocar um dos meus slides favoritos, vou procurá-lo enquanto estivermos no show hoje, talvez durante a apresentação de Dez. Mas eu queria mostrar, para quem nunca viu, um dos programas de TV britânicos mais engraçados de todos os tempos, chamado "The IT Crowd". E em termos de solução de problemas, o irlandês, que é uma das duas pessoas de TI da a empresa inteira sempre diz a mesma coisa sempre que uma chamada começa: "Você tentou desligá-lo e ligá-lo novamente?" Então, tente desligá-lo e ligá-lo novamente. Você ficaria surpreso com a frequência com que essa coisa simples pode resolver alguns problemas.
Aqueles de vocês que resolveram problemas em casa talvez com seus pais ou amigos, provavelmente não com seus filhos, porque eles tendem a saber o que fazer, desligam e ligam novamente. Mas, independentemente disso, a solução de problemas não é fácil, nem sempre será fácil, mas hoje falaremos sobre algumas das coisas que você pode fazer para facilitar. Portanto, o prompt de comando - sim, de fato, tenho idade suficiente para lembrar os primeiros dias da computação, quando tudo o que você tinha era o prompt de comando para executar o DIR, Enter. Isso é o que isso veria, o diretório de arquivos e seria positivo que ele realmente executasse algum comando, certo? Dez, é claro, nosso cientista de dados, ele sabe como usar o prompt de comando. E se você pode usar o prompt de comando, isso é ótimo, porque a maioria de nós, mortais, usa algum tipo de GUI, uma interface gráfica de usuário, mas sempre há algo, sempre há alguma desconexão entre a GUI e a linha de comando abaixo. E apenas para dar um exemplo aleatório, se você quiser saber quanto código alguns dos programas básicos contêm nos documentos hoje em dia, acesse a versão mais recente do Microsoft Word, digite "olá mundo" e "salve como HTML. ”E abra o documento resultante em um editor de texto e você provavelmente verá páginas e páginas de tags. Isso se chama inchaço do código, e o inchaço do código não é realmente bom para solucionar problemas, apenas para ser franco.
Obviamente, o cliente-servidor apareceu e isso foi ótimo. De certa forma, estamos voltando nessa direção, mas pense na complexidade que veio com a situação: agora, onde está o problema, está no cliente, no servidor, na rede? Cadê? Esses sites que pensam apenas em vírus e quando um vírus pode entrar em um em uma rede, o que pode acontecer? Pode ir a qualquer lugar. Atualmente, as violações de dados são loucas. Eles causam problemas de desempenho. Tivemos hackers russos que podemos identificar pelo endereço IP. Temos certeza de que são russos, ou muito próximos, ou ucranianos muito inteligentes, poloneses ou mesmo americanos, usando proxies. Mas os hackers entraram no nosso pequeno e antigo site, Inside Analysis, ao longo dos anos e causaram todos os tipos de problemas. As coisas simplesmente param de funcionar, você não pode fazer as coisas. Coisas que costumavam funcionar não funcionam. Como você sabe? Como você sabe o que é isso? Assim como outro exemplo aqui, é um ambiente muito complexo, é muito difícil entrar no mato e entender realmente como as coisas estão acontecendo e funcionam para nós, especialmente se você tiver um monte de plug-ins. As coisas podem enlouquecer muito rapidamente. Estou meio que me adiantando.
Eu joguei aqui, sempre tenha cuidado com a atualização. As atualizações sempre me assustam as luzes do dia. Certamente sistemas operacionais. Lembro-me dos dias em que a Microsoft realmente sugeriu que sim, você poderia atualizar seu sistema operacional desta versão para essa versão. Bem, eu tentei algumas vezes, e isso nunca funcionou. Lembre-se, quanto maior, quanto mais complexo for o ambiente, mais difícil será a situação. E depois há virtualização. Pense no que a VMware fez com a TI. Ele revolucionou a TI, mas também criou essa camada de abstrações. Se você tem uma abstração de camada nesse nível fundamental, esse é um jogo totalmente novo, uma nova bola de cera e você realmente precisa reavaliar o que está fazendo, e todas as ferramentas antigas tiveram que mudar. E agora é claro que é a nuvem, certo? Para o cliente, a nuvem é ótima, porque é muito simples, a interface do usuário é bastante direta, mas é claro que você realmente não tem muito controle sobre a nuvem. Mas para as pessoas que estão nos bastidores, há muitas coisas que elas precisam saber e entender hoje em dia. O ambiente se tornou muito, muito mais complexo. E certamente com o comércio eletrônico, e você pensa em todo o dinheiro que é comercializado hoje em dia. É por isso que você não vai me encontrar a favor de uma sociedade sem dinheiro tão cedo. A linha inferior aqui é que a situação está ficando mais problemática a cada dia.
E manter o desempenho ideal sempre envolve algum elemento de solução de problemas. Não me importo com o que alguém lhe diz, não há ferramenta perfeita, não há uma bala de prata e nunca haverá porque - em outra perspectiva interessante aqui - ainda estamos aprendendo a falar de silício. Ainda estamos aprendendo a entender como as redes funcionam no nível básico. Se você olhar para o software de gerenciamento de sistemas, ele está ficando muito bom atualmente. Mas, ainda assim, você está olhando para as linhas subindo e descendo e olhando para as representações da realidade, será necessário uma pessoa que sabe o que está acontecendo para encaixar as pistas que você pode olhar para as ferramentas ideais para poder Entenda o que está funcionando e o que não está, e há muitas tentativas e erros, apenas para ser franco. Com isso, vou entregá-lo a Dez Blanchfield e depois ouviremos Bill Ellis da IDERA, que vai nos envergonhar com seu conhecimento. Com isso, Dez, leve embora.
Dez Blanchfield: Ei, obrigado Eric. Obrigado. Liderou agradavelmente meus pequenos passos. Meu título, “Performance Art”, eu acho que é extremamente adequado no contexto do que estamos conversando hoje, porque, de muitas maneiras, quando pensamos em performance, pensamos em dança, música e outras coisas criativas. E, francamente, mais frequentemente do que não, se estamos resolvendo problemas e em ambientes de TI e sistemas de negócios de escala muito grande, de fato há um elemento de arte e muitas vezes arte negra, porque a situação na minha experiência em mais de 25 anos é que o pilhas de aplicativos modernos, estão aumentando muito rapidamente a complexidade a uma taxa que nunca vimos antes. E estamos francamente lutando para acompanhar e existem organizações como a Uber, por exemplo, e o que for, e a equipe de desenvolvimento Pokémon Go, quero dizer que elas estão experimentando crescimento e complexidade e aumento de complexidade a taxas astronômicas. Não há nem livros escritos sobre isso porque não tínhamos concebido esse nível de crescimento. Minha opinião é que a definição principal de uma pilha de aplicativos se transformou exponencialmente e vou explicar por que acho que é esse o caso e, em seguida, levar ao desafio em mãos que meus bons amigos da IDERA parecem ter uma solução para resolver .
Muito brevemente, todos nós sabemos disso, mas apenas para recapitulá-los, você sabe, nos primeiros dias tínhamos o que eu chamo de arquitetura de aplicativos, versão 1.0. Era um computador servidor, neste caso o mainframe com vários terminais conectados, era relativamente fácil diagnosticar problemas se você não estivesse vendo coisas no terminal - era possível rastrear o cabo entre o terminal e o computador servidor, e era um cabo zero ou um conector ou algum problema, se não estivesse relacionado ao terminal, e você estiver vendo coisas na tela, era muito fácil descobrir que as coisas que estavam causando os problemas estavam no própria máquina. E você pode diagnosticar lentamente em que parte da pilha estava o hardware até a camada de software e a interface do usuário. No que chamo de versão 1.1, a tornamos um pouco mais complexa. Colocamos dispositivos no meio para podermos colocar mais terminais no lugar. E eles eram algum tipo de dispositivo de comunicação e frequentemente eram muxes ou multiplexadores e passavam por uma linha dedicada ou uma linha dial-up e, portanto, você tinha um mainframe em um local distante - poderia ser interestadual ou internacional - e algum dispositivo conectados por um link SMA ou algum tipo de conectividade WAN e esses terminais ainda operam da mesma maneira. Mas você tinha um pouco mais de complexidade porque tinha que descobrir se o problema estava entre os terminais e o dispositivo de comunicação ou o dispositivo de comunicação e o mainframe. Mas a pilha permaneceu relativamente semelhante no mainframe.
Versão 1.2, um pouco mais complexa novamente, porque agora adicionamos mais dispositivos, adicionamos impressoras e outras coisas, agrupamos essas coisas e penso em um processador front-end que lidaria com todos os problemas dos dispositivos localmente, impressoras e terminais e assim por diante com o mainframe que extremidade distante. Um pouco mais de complexidade. Porém, novamente, o tema consistente do mainframe foram os aplicativos em execução localmente, portanto a solução de problemas permaneceu bastante semelhante dentro da pilha de aplicativos. E então tínhamos pessoas com habilidades resolvendo problemas com terminais e impressoras e controladores de cluster. Mas então complicamos as coisas e construímos redes e, de repente, o mesmo tipo de arquitetura introduz uma camada de rede. De repente, tínhamos um comutador de rede e as estações de trabalho eram muito mais complexas. E nessa versão da arquitetura, muitas vezes tínhamos aplicativos de interface gráfica do usuário na estação de trabalho. Não só tínhamos um servidor executando a pilha de aplicativos, mas também tínhamos outra pilha de aplicativos executando localmente e, é claro, o mesmo modelo básico de dispositivos que se conectam a um servidor. Depois, demos um salto quântico para o modelo mais recente do que chamo de 2.1, que é o local em que pegamos a pilha de aplicativos e a tornamos muito mais complexa, muito mais difícil de diagnosticar. E introduzimos muito mais dispositivos no front-end, em navegadores da Web e PCs e dispositivos móveis, etc. E aqui a pilha de aplicativos começou a se aprofundar um pouco mais na integração como sistema operacional e hipervisor.
Nesta imagem, no lado direito, temos toda a pilha, incluindo infraestrutura de rede, servidores de armazenamento, máquinas virtuais, sistema operacional e, em seguida, as três camadas tradicionais de aplicativos de metalware de banco de dados, etc., na parte frontal direita. Diagnosticar problemas de aplicativos e problemas de desempenho nesse modelo tornou-se muito mais difícil. Existem muitas outras partes móveis e tentar detalhar essa pilha tornou-se um pesadelo e você teve que envolver conjuntos de habilidades e organização adicionais para lidar com isso. Não era mais apenas a sua equipe de aplicativos, de repente, agora você tinha pessoal de infraestrutura, especialistas em banco de dados, trabalhando apenas em bancos de dados e nada mais - em oposição a um programador de sistemas que conhecia bem os bancos de dados. Agora, temos um cenário em que os departamentos de TI precisam lidar com uma complexidade significativamente mais ampla de “como serviço” e foi aí que o mundo explodiu e nossos desafios de solução de problemas passaram de um pesadelo a algo quase intolerável em algumas formas.
E isso surgiu como uma escala resolvível, na qual estamos tentando fornecer serviços. Versão 3 do que considero a pilha de aplicativos - ela foi introduzida como um modelo de serviço, onde o modelo tradicional do lado esquerdo, a pilha de TI da empresa, onde tudo tinha que ser gerenciado no final, como consumidor e fornecedor de serviços - de banco de dados de segurança de aplicativos, sistemas operacionais, armazenamento de serviços de virtualização, datacenters de rede - tivemos que gerenciar tudo, mas tivemos acesso a tudo e, assim, pudemos ampliar nossa capacidade e conjuntos de habilidades técnicas, além de detalharmos detalhadamente através dessa pilha e poderíamos encontrar coisas. Mas, à medida que o serviço de infraestrutura e o serviço de plataforma e o modelo de serviço de software surgiram, de repente nosso acesso à infraestrutura de back-end, nosso acesso às plataformas e à ferramenta da qual fornecemos serviços foi meio que tirado de nós. Quando começamos a consumir o serviço de infraestrutura, só tínhamos disponíveis as quatro principais partes do sistema operacional, do banco de dados, da pilha de aplicativos ambientais de segurança e acima. Tudo embaixo disso era magia negra. E fica ainda mais interessante quando você muda para o serviço de plataforma, porque também está apenas gerenciando a pilha de aplicativos.
Quando você acessa o software como serviço, e um modelo tradicional disso é o webmail ou o Internet banking, tudo o que você tem é acesso a um navegador da web. Portanto, tentar diagnosticar definitivamente o que está por trás é intolerável. E eu dividi isso em fusos horários, em intervalos de tempo ou áreas de tempo, se você preferir ou em gerações, da esquerda para a direita, passamos do tipo pré-2000 e da pilha tradicional aonde tínhamos acesso para todo o ambiente e poderíamos detalhar isso. Mas com o tempo, tornou-se cada vez mais complexo. Do início dos anos 2000 a meados de 2000, do final de 2000 aos dias atuais, de onde passamos de serviço de infraestrutura, serviço de plataforma, serviço de software, até agora estamos nos referindo essencialmente a um serviço de negócios. E a complexidade aumentou dramaticamente. Existem muitas outras partes móveis. Mas a disponibilidade de habilidades se torna cada vez mais difícil e cada vez mais difícil de aproveitar. Encontrar pessoas com as habilidades certas, com o acesso certo às ferramentas certas, para entrar nesta pilha e descobrir onde está algo lento. É meu laptop ou área de trabalho, meu telefone ou tablet, minha conectividade acima de 3 ou 4G, ou meu link dedicado com ADSL ou ISDN, o que quer que seja? Ou mesmo dial-up, embora esse seja cada vez menos o caso hoje em dia. O servidor da web é finalizado, é algo dentro do servidor da web? É o servidor de aplicativos? Há algo em torno da memória e do disco da CPU e do desempenho da rede dentro do servidor de aplicativos? O banco de dados está sendo executado lá?
E você pode imaginar, você desenha muito rapidamente essa imagem da complexidade que começa a se expandir como uma imagem do big bang, dessa bolha cada vez maior em que estamos tentando nos abraçar e ter as habilidades necessárias para mergulhar e o conhecimento e os meios para dissecar e separar. E estamos muito agora na época em que, sabe, os seres humanos não conseguem lidar com a escala física, mesmo que você tenha a capacidade de separar o ambiente do banco de dados e separá-lo e mergulhar no detalhes dentro desse banco de dados. O número de bancos de dados que você precisa gerenciar agora está crescendo rapidamente. Tudo agora é alimentado por um banco de dados. Atualmente, muito poucas aplicações não são alimentadas por um banco de dados. E os tipos de bancos de dados também estão crescendo rapidamente. Não são mais apenas os bancos de dados SQL tradicionais, às vezes SQL, às vezes não SQL, às vezes é um banco de dados gráfico, às vezes é um banco de dados de documentos. E existem todos esses tipos diferentes de funções que esses tipos diferentes de bancos de dados possuem e, como resultado, cada um deles tem diferentes desafios de desempenho e diferentes critérios de desempenho. Os bancos de dados de log e os bancos de dados de documentos têm desempenho muito, muito diferente e desempenham uma função diferente de um banco de dados SQL tradicional, compatível com ACID e ANSI 92. E os tipos de coisas que armazenamos lá.
Estamos em um ponto, em minha mente, onde - e acho que Eric aludiu a isso - que os seres humanos estão lutando para acompanhar a complexidade do que estamos construindo e a velocidade com que estamos construindo. Agora, estamos no ponto em que a única maneira de gerenciar essa infraestrutura e a única maneira de monitorar e aprofundar os problemas que enfrentamos são as ferramentas e os tipos certos de ferramentas. E, invariavelmente, a geração certa de ferramentas. Ferramentas que realmente entendem a infraestrutura de back-end. Não é mais bom apenas lançar um monitor SQL ou uma ferramenta de consulta SQL em algo e começar a separar uma consulta e ver o que a faz funcionar. Na verdade, precisamos de uma ferramenta que entenda a formação de consultas e a maneira apropriada de formar consultas, e as maneiras apropriadas para as consultas falarem com a infraestrutura no back-end e como elas estão se saindo. E observar o momento dessas interações e a ordem em que elas ocorrem.
E esse é um desafio muito mais complexo e que me leva ao meu ponto de interrogação, ou seja, à medida que a complexidade do aplicativo aumenta, estamos desenvolvendo um aumento, as ferramentas de desempenho e as ferramentas que usamos para gerenciá-las, necessariamente precisam tornar-se cada vez mais inteligente e muito mais capaz de ver mais coisas. Mas também é muito mais inteligente sobre como eles se aprofundam no que está sendo executado no back-end e o que podem descobrir sobre isso e, potencialmente, algum tipo de análise sendo executada para entender que as interações e o desempenho estão sendo entregues, e por que está executando mais devagar ou mais rápido.
E então, vou passar para o nosso querido amigo da IDERA, Bill Ellis, e ver o que ele tem a dizer hoje sobre como eles resolvem esse problema. Bill, para você.
Bill Ellis: Tudo bem. Meu nome é Bill Ellis e muito obrigado. Vamos falar sobre meu aplicativo está sendo executado lentamente, na hora de obter o Precise. Vamos ver o que Precise, um produto IDERA, pode fazer e como ele pode ajudá-lo. Muitas vezes você só descobre que houve um problema de desempenho porque um usuário final ligou para você, e esse é realmente um grande problema. De todos os que trabalham com TI, ninguém sabia até o telefone tocar. Agora, o próximo grande problema é como ajudamos esse indivíduo em particular, e não é realmente um problema trivial. Há um argumento disso. Isso está acima e além deste slide, está acima e além dos outros. E eu quero que você veja se consegue entender o que é. Mas, como mencionamos, um aplicativo requer, depende de muitas tecnologias diferentes, a pilha de aplicativos é alta e crescente. E muitas pessoas acessam um aplicativo por meio de um navegador, e surpreendentemente há mais e mais processamento acontecendo no navegador com scripts etc. e, é claro, você tem a rede, o servidor da web, o código da lógica de negócios e o banco de dados. O que eu quero que você considere é que toda transação comercial significativa interage com o banco de dados, seja relatório de cartão de ponto, pesquisa de inventário, pedido de compra, o banco de dados está sendo atualizado. E assim, o banco de dados se torna realmente a base do desempenho. E o banco de dados, é claro, pode ser ativado ou depende do armazenamento posterior. Cada uma dessas tecnologias é fortemente acoplada e capaz de ver o que está acontecendo. Você precisa saber o que está acontecendo para poder medir é crítico.
Agora, uma coisa que descobrimos é que muitos de nossos clientes têm uma ferramenta, e eles têm uma ferramenta para cada tecnologia, mas o que eles não têm é o contexto. E o contexto é basicamente a capacidade de conectar os pontos entre todas as camadas da pilha de aplicativos, e isso é realmente relativamente simples. Costumávamos ter uma limitação de doze camadas, mas basicamente a alteramos, temos camadas ilimitadas e suportamos ambientes mistos para que possamos basicamente ficar extremamente complicados com uma solução Precise.
Agora, em um nível alto, é assim que resolvemos o problema e estamos focando na transação, a transação do usuário final do clique no disco, nos diz quais estão demorando, quais estão consumindo recursos, mas a chave é essa - permitimos que você escolha e identifique o local do usuário e não apenas o tempo inteiro da transação, mas quanto tempo é gasto em cada etapa individual. O tempo é a moeda do desempenho e também aparece onde os recursos estão sendo consumidos. Como não sabemos de antemão onde o problema vai estar, precisamos ter as métricas e análises adequadas em cada uma das camadas para poder diagnosticar qual é o problema, onde pode estar.
Agora, na apresentação de hoje, vou me concentrar nesta área. Quero que você tenha certeza de que basicamente fornecemos o mesmo nível de visibilidade em todas as camadas da pilha de aplicativos e o mais importante: isso nos dirá quem, o que, onde e depois esta parte, isso vai nos dizer o porquê. E é realmente por isso que isso é absolutamente crítico para resolver problemas, não apenas saber sobre eles. Agora, a outra coisa que saiu muito claramente na apresentação foi que é impossível fazer isso. Você precisa de automação. E a automação significa que você está alertando, você tem algo que diz, esperançosamente perante a comunidade de usuários finais, que você tem uma tendência em andamento, que se desvia do alerta de tendência. E então também oferecemos uma linha na areia, você realmente violou o SLA. Agora você oferece muitas informações diferentes - nem todo mundo precisa consumir o buffet, algumas pessoas só querem um lanche leve, isso é salada, e com isso, como oferecemos um portal, podemos enviar informações, apenas um usuário em particular ou as necessidades de informações de uma comunidade específica sobre desempenho. O aplicativo está sendo executado lentamente, é hora de obter o Precise. Nós realmente vamos nos concentrar em quatro coisas. Um é o local, inserindo o usuário final. Mais uma vez, esse contexto que conecta os pontos e a terceira parte da pesquisa mostra que quase 90% dos problemas de aplicativos estão no banco de dados e, portanto, é realmente uma farsa que a maioria das soluções de desempenho possa lhe dizer uma instrução SQL. Mas eles não dizem por que a instrução SQL está sendo executada lentamente.
E assim, o porquê é sempre crucial e o Precise é excelente para mostrar o porquê, para todas as camadas e em particular o banco de dados, e apenas para compartilhar um pouco sobre nossa matriz de suporte com você, com suporte para SQL Server, Sybase, DB2 e / ou em massa. A aparência da solução é muito semelhante; portanto, se você estiver olhando para vários aplicativos, mas com arquiteturas ligeiramente diferentes. As informações que estou compartilhando aqui têm a aparência e a abordagem, são as mesmas, independentemente das tecnologias subjacentes em uso. O Precise está ativado na Web. Entramos, autenticamos o Precise e, com isso, entramos e a primeira coisa que queremos examinar é o desempenho por local. E assim você pode ver aqui os diferentes locais onde as pessoas estão acessando suas execuções. Você pode ver se alguém abandonou uma página antes da renderização completa ou se há erros.
Agora, uma coisa com esses aplicativos é a rede ou a distância do servidor de aplicativos torna diferente. É muito fácil ver aqui que existe algum nível de rede. Eu posso ver quando as pessoas ficaram ocupadas e, em seguida, outra coisa interessante, falamos sobre como há processamento no navegador, elas percebem que alguns dos diferentes tipos de navegador fornecem um ambiente melhor para o processamento rápido. E, assim, sabendo se as pessoas estão acessando pelo Chrome ou IE, ou o que quer que seja, você pode descobrir com muita frequência que uma inversão de tipo de navegador é superior a outra. Agora, às vezes você enfrenta publicamente, não controla o navegador, às vezes os aplicativos são voltados para o interior, onde você pode recomendar às pessoas um tipo de navegador para sua comunidade de usuários finais e, portanto, esses são os tipos de visibilidade e análise aprofundadas que Precise é capaz de fornecer. Agora, analisamos um aplicativo.
Não sei se vocês podem ver meu ponteiro, mas eu queria descrever para vocês, o gráfico superior. O eixo y mostra o tempo médio de resposta. O eixo x é o tempo ao longo de um dia. E, na verdade, existe um gráfico de barras empilhadas e esse gráfico de barras empilhadas, o total mostra qual é o desempenho e, em seguida, mostra uma hierarquia de quanto tempo é gasto em cada etapa individual ou em cada camada individual do aplicativo. Do cliente, através do servidor web, o verde é o Java, neste lugar que estamos usando o Tuxedo e no banco de dados. Agora, a metade inferior da tela mostra os diferentes menus da web que estão sendo acessados e, em seguida, selecionamos apenas uma pequena seta verde apontando para baixo. Está em ordem decrescente e borbulha até o topo, o menu da Web começa a mostrá-lo. Na verdade, mostramos o tempo de execução, o tempo de resposta de cada tecnologia individual e, em seguida, há um gráfico de barras para cada um desses menus da web, e assim obtemos, começamos a ter uma idéia do que está acontecendo. Agora lembre-se de que classificamos tudo isso com um usuário final que chamaria, mas como localizo o usuário final? Eu venho aqui, abro um menu, que me permite filtrar um usuário em particular, então defino esse usuário como Alex Net, clique em OK e então estamos focados apenas na atividade de Alex Net. Agora, o que isso faz é que ele permite que a TI e o gerenciamento de TI respondam diretamente a um usuário final e, em particular, que eles estavam analisando o gerenciamento de conteúdo que tinha seis execuções com um tempo de resposta de pouco mais de três segundos. Bem, três segundos é muito bom, não é terrível, mas talvez seja mais lento.
O que posso fazer com isso é cortar e cortar essas informações de maneiras diferentes. Eu poderia dizer, bem, essa transação é lenta para todo mundo? Hoje é mais lento para Alex do que ontem? É lento para todos os usuários em um local específico? Ou, e o que isso faz é que me permite dividir os dados e ter uma idéia do que está acontecendo, quão universal é o problema e é muito importante poder identificar o usuário final, porque não se trata apenas do software, a infraestrutura, também é sobre como os usuários finais estão exercitando o aplicativo. Muitas vezes, você pode ter um novo funcionário ou alguém com uma nova função, e eles não estão familiarizados com certas telas SAP ou determinados painéis PeopleSoft e precisam de um ponteiro, talvez estejam deixando campos em branco ou colocando curingas e eles ' forçando grandes resultados a serem retornados do banco de dados. Mas, com o ID do usuário, você pode chamá-los antes que eles chamem você. A outra coisa que descobrimos é que, uma vez que a comunidade de usuários está ciente de que a TI sabe o que está fazendo, muitas vezes elas se comportam melhor e têm muitos problemas, muitas coisas que foram problemas, apenas uma espécie de evaporar, porque as pessoas se comportam, basta operar um pouco mais com cuidado. Eles usam o sistema com mais cuidado.
A identificação do usuário final é essencial. No final, é essencial que a TI seja capaz de ajudar um usuário final específico. Agora, o que fizemos aqui é que fomos à guia "Fluxo". Você pode ver isso no canto superior esquerdo. E nos concentramos em um componente específico do menu da web. E, no lado direito, há uma análise dessa transação específica e, na parte superior, na verdade, é o navegador e, em seguida, o View, apenas para se familiarizar com um pouco dos ícones na GUI e para o servidor da Web, então podemos ver o ponto do atributo. E então o "J" é para Java e o "T" é para Tuxedo e, naturalmente, o "Q" é SQL. Bem, esse valor em dinheiro é basicamente identifica uma instrução SQL específica. Considere o que isso faz. Identificamos um usuário para uma transação, para o código do aplicativo subjacente, incluindo as instruções SQL individuais. Agora, quando olho para essas instruções SQL individuais, percebo que, do tempo total de resposta, cada uma delas é responsável por cerca de seis por cento e, quando somam as quatro principais instruções SQL, levaram cerca de um quarto da transação Tempo.
Agora, frequentemente, o banco de dados é o mais fácil de manipular. Geralmente é mais fácil obter um desempenho barato e muito superior. Agora eu preciso ir um pouco mais fundo para descobrir o que está acontecendo e o que, quero que o exemplo seja capaz de realmente revelar a instrução SQL individual, e você sabe que eu posso garantir quase todas as ações da linha tinha algum tipo de ferramenta de banco de dados e o que a ferramenta faz, mas apenas olhando para uma tecnologia isoladamente, é que você olha para o foco na saúde dessa tecnologia. E muitas vezes as pessoas olham para uma lista dos dez melhores. Agora, essa instrução SQL é bem rápida, não estará na lista dos dez melhores, mas é na instrução SQL em que esta transação se baseia. E então, o que posso fazer com essa palavra, contexto, agora é que posso trazer isso à atenção profunda, mas no contexto da instrução SQL individual.
Agora, essa pessoa pode abrir o Precise no contexto da instrução SQL individual, e o Precise captura o plano de execução real que ele usa, o tempo de execução, que é um material importante para o DBA, será realmente exibido. Você pode ver que 50% dos é gasto tempo aguardando armazenamento. Cinquenta por cento do tempo é usado na CPU, então você começa a ter idéias de onde o tempo está sendo gasto, como eu poderia diminuir esse tempo e a idéia é oferecer às pessoas opções, porque respostas diferentes têm diferentes custos e riscos associados . Idealmente, buscamos a solução de baixo risco e baixo custo para um problema. Agora que a instrução SQL é rastreada por um valor de hash e, no lado esquerdo da tela, existe esse pequeno botão "Ajustar", e o que isso vai fazer é levá-lo a uma tarefa SQL. E essa tarefa SQL é uma espécie de ambiente de trabalho pré-construído e o que isso faz é que me permite realmente analisar especificamente o que está impactando a instrução SQL começando com o plano de execução. O plano de execução é escolhido pelo otimizador quando a instrução é analisada; de volta à analogia dos alimentos, é a receita que é seguida para resolver a instrução SQL.
E algumas receitas são mais complicadas que outras, e por isso fornecemos descobertas. E na verdade será mostrado aqui, ei, muito tempo fazendo E / S sequenciais em um índice específico. E veja agora, quando, voltando ao oxigênio, siga este índice. Esse índice foi desfragmentado recentemente, qual é a saúde? Em que espaço de tabela ele mora? O espaço de tabela é segregado da tabela a que faz referência? E assim começa a dar-lhe todo o tipo de idéias sobre como você pode resolver o problema. Agora, obviamente, você sabe, estamos construindo um índice. É um risco muito menor, muito mais fácil do que talvez mover um índice de um espaço de tabela para outro espaço de tabela, então o que queremos fazer é meio que criar opções, para que possamos implantar a opção de menor custo e menor risco para resolver o problema.
O Precise também pode fazer coisas como capturar variáveis de ligação que são convertidas em uma instrução SQL. Obviamente, as variáveis lançadas controlarão o tamanho do conjunto de resultados. E controlará quanto tempo a instrução SQL leva para executar e quantos dados devem ser passados e processados pelo aplicativo através do Java, através do .NET, no servidor da web convertido mais na rede, finalmente renderizados no navegador do usuário final . O que acontece no banco de dados afeta diretamente o tempo do navegador. E, portanto, será crucial ter esse nível de visibilidade para que possamos saber exatamente o que está acontecendo e dar ao DBA o máximo de opções para que ele possa escolher qual faz mais sentido, dada uma situação específica.
Agora, essas são algumas das citações e são de uma loja PeopleSoft que possui implementação global. O Precise suporta PeopleSoft e SAP, Siebel, Oracle, E-Business Suite, aplicativos Java e .NET domésticos. Damos suporte a isso. Se você fizer chamadas de serviço da web para várias JVMs, de Java a .NET e Java, poderemos acompanhar tudo isso. Pode ser no local, na nuvem. O crucial é que as coisas precisam ser instrumentadas.
Assim, apenas algumas citações de um de nossos clientes: "Antes do Precise, nossos DBAs estavam usando OEM" - essa é uma ferramenta apenas de banco de dados, e eles basicamente diziam: "Ei, as instâncias parecem ótimas". ajudar a identificar ou resolver um problema com uma transação específica. Precise forneceu a visibilidade para fazer isso. Portanto, ter essas informações sobre as instruções SQL foi fundamental para dar aos DBAs a visibilidade para extrair totalmente o desempenho do banco de dados. E isso foi muito bom. Acima e além de algumas das ferramentas que você pode estar procurando.
E, em seguida, o gerenciamento de TI realmente adorou o fato de o Precise poder converter uma URL complexa em um nome de painel. Dessa forma, se um usuário final ligar e dizer: "Ei, estou tendo problemas com isso", você poderá isolar e ver quem é esse usuário, o que ele está executando, que tipo de desempenho, na verdade, está medindo a renderização hora no navegador do usuário final. É uma verdadeira medida da experiência do usuário final. E também, ter esse ID do usuário é absolutamente essencial para ajudar uma pessoa em particular que liga.
Como o Precise faz isso? E assim, gostaríamos de compartilhar nossa arquitetura. O Precise deve viver em seu próprio servidor e em uma VM, ele pode viver na nuvem. No front-end, o Precise está ativado na Web, esteja você usando painéis, a interface de alerta ou a GUI Expert. No lado da coleta de dados, podemos realmente fazer sem agente para várias tecnologias diferentes. Muitas vezes, porém, exigiremos um agente, e há vantagens e desvantagens em ter um agente. Uma grande vantagem é que os dados coletados podem ser pré-processados antes de serem enviados pela LAN. E isso significa que podemos minimizar o impacto total da solução de monitoramento no ambiente de destino.
Agora, considere apenas uma alternativa: se você tem “sem agente”, ainda existe um coletor de dados, é apenas uma questão de onde ele mora e está fazendo chamadas e transmitindo dados brutos sobre o aplicativo de destino na sua LAN. E é realmente muito caro. E assim, através do pré-processamento, podemos realmente minimizar a área ocupada. Você poderá monitorar tanto físico quanto virtual. E uma coisa que eu queria dizer sobre a tecnologia virtual é que realmente se concentra na utilização. O que o Precise se concentra é na contenção. Quando a tecnologia VMware está realmente minimizando os recursos da sua VM convidada? E assim torna-se muito fácil. Se você estiver olhando apenas para uma VM convidada, terá apenas parte da imagem. Ser capaz de detectar e alertar automaticamente sobre a disputa é realmente essencial.
O Precise pode monitorar até 500 instâncias, portanto, implantações muito grandes basicamente têm vários servidores Precise. E para uma implantação global, normalmente será um servidor Preciso em cada data center. Aliás, para as implantações muito maiores, você pode realmente federá-las para que possa analisar amplamente o que está acontecendo e poder oferecer relatórios etc. Agora, como mencionei, temos muitas análises técnicas. Nem todo mundo precisa entrar na GUI especializada, por isso oferecemos um painel personalizável. E cada um desses portlets ou widgets são todos opcionais. E alguém pode apenas querer dizer: “Ei, como você pode acionar um alerta em qualquer camada do nosso ambiente? Como estão os grupos de uso final do ponto de vista de desempenho? ”Ou talvez você tenha uma pergunta sobre a infraestrutura, talvez até sobre o desempenho do Tuxedo. Ou mesmo balanceamento de carga. É meio interessante aqui nesta parte do balanceamento de carga. Estou olhando para o portlet no meio, no lado esquerdo. Você pode ver que o número de execuções é muito semelhante entre cada um dos servidores web. Mas o tempo de resposta é muito diferente no primeiro. Você pode realmente detalhar e descobrir exatamente o motivo pelo qual o tempo de resposta nesse servidor da Web foi muito mais lento que os outros.
Uma coisa sobre o balanceamento de carga é muito importante, e as políticas de balanceamento de carga, você sabe, nem todas as políticas de balanceamento de carga são apropriadas para todos os aplicativos. Na verdade, é realmente útil validar sua política de balanceamento de carga. Na verdade, estamos vendo alguns aplicativos como a nova GUI do PeopleSoft Fluid, na qual alguns servidores da Web ficam offline. E isso é algo realmente crítico. Se você estiver implementando a GUI do PeopleSoft Fluid, entre em contato conosco. Podemos fornecer muitas informações e conhecimentos sobre o que outros clientes enfrentaram com isso. Cada um desses portlets pode ser bem detalhado. Como o meio direito, com o azul e o verde, na verdade mostra o padrão da ponta da espada, isso meio que mostra que sua coleta de lixo na camada WebLogic está executando da maneira que você espera. Cada um desses portlets pode ser altamente focado ou pode ter um nível muito alto. E a razão pela qual isso é importante, ou pode ser importante, muitas vezes não é bom o suficiente apenas para ter essas informações dentro da TI; às vezes você precisa compartilhar essas informações com os proprietários dos aplicativos e, às vezes, com a gerência sênior, sobre o que está acontecendo .
Eu queria compartilhar com você algumas histórias, tipo "Sucesso no Datacenter". E essas são focadas em banco de dados e eu tenho outras que são focadas na camada intermediária. Mas hoje eu realmente quero me concentrar na camada de banco de dados. Vamos dar uma olhada nos congelamentos da tela. Agora, o que aconteceu aqui é que essa loja em particular tinha um SLA comercial, que, se um pedido for recebido até as 15h, o pedido será enviado naquele dia. E, portanto, o armazém fica extremamente ocupado durante esse período. E então, com o congelamento da tela, foi muito frustrante. E então o supervisor - esta é uma empresa menor - o supervisor realmente entrou na área de TI e, é claro, vai até o DBA e diz: "Agora, o que está acontecendo?" E o que fizemos, fomos capazes de mostrar exatamente o que estava acontecendo. Agora, esse é o JD Edwards, um aplicativo de várias camadas, essa é a tela do pedido de vendas. Você pode ter uma idéia do que era o negócio, basicamente um inventário just-in-time, e, portanto, está basicamente olhando para os aplicativos de armazém. E agora você está basicamente enviando para vários sites de clientes, lojas diferentes. E o que fizemos foi abrir o Precise.
Agora, neste caso, antes de analisarmos o Oracle, aqui estamos analisando o SQL Server e agora a metade superior mostra um gráfico de barras empilhadas de onde as instruções SQL passam seu tempo enquanto executam. Todo estado fraco é contabilizado no eixo y. O eixo x é claro ao longo do tempo e você pode ver que o gráfico de barras empilhadas muda a partir do intervalo de tempo, dependendo do que está sendo executado e como ele usa o sistema. Agora, neste caso em particular, focamos na terceira sequência SQL a partir do topo. Ele está com a mensagem SELECT FROM PS_PROD e você pode ver nessa coluna que capturamos o plano de execução real. E você pode ver todo o número de execuções. O fato de que essa instrução SQL específica foi responsável por 9, 77% do consumo de recursos durante esse período de tempo que estamos analisando - e esse é um ponto importante, o período de tempo que o Precise mantém um histórico contínuo - e, portanto, posso basicamente discar e descubra o que aconteceu em qualquer momento específico ou ao longo do tempo. Sou capaz de visualizar as tendências.
Agora, esta instrução SQL, você vê esse gráfico de barras empilhadas lá, é azul escuro. Isso diz que estamos usando toda a CPU. Vamos seguir em frente e focar clicando neste botão "TUNE" nessa instrução SQL específica. O que fazemos é levá-lo para esse workshop pré-construído, projetado para dizer: "Bem, o que o DBA vai saber sobre essa instrução SQL em particular?" E você pode ver, no lado direito, uma guia chamada " Histórico ”que foi selecionado. E o que eu gostaria que você fizesse agora é meio que mudar para o lado esquerdo, onde se lê "Alterações versus duração média", duração média. E cada um desses bares representa eventos por dia.
Você pode ver na quarta, quinta e sexta-feira, o tempo de execução, vou passar para o ponto dois. O eixo y mostra o ponto quatro segundos, então o ponto dois. Muito poucos congelamentos de tela, as operações estão indo muito bem no SLA. Infelizmente, em 27 de fevereiro, o plano de execução mudou e isso causou uma mudança imediata no tempo de execução. De repente, o tempo de execução está subindo, quatro X, talvez cinco X, e as coisas estão indo muito mal. Agora Precise, em seu repositório, na verdade, publica todas as alterações que podem impactar o comportamento. E você pode ver aqui que realmente capturamos alterações no plano do eixo. A do meio diz "Volume da tabela alterado". E, assim, as tabelas estão crescendo e estamos no limite, quando a instrução SQL é analisada, o otimizador escolhe um plano de execução ou um plano de execução diferente.
Agora, felizmente, nesta semana, aqui na segunda-feira, ele se revirou, então foi em um bom momento. Infelizmente, ele inverte novamente e, você sabe, os usuários finais começam a antecipar o congelamento da tela e começam a reenviá-la e aumentam a contagem de execuções. Temos uma quantidade enorme de detalhes, mas para resolver esse problema e evitá-lo no futuro, precisamos de mais uma informação. E isso me é mostrado na comparação desses planos de execução. No dia 5 de março, quando foi rápido e eficiente, no lado esquerdo mostra o plano de execução. Quando estava lento e ineficiente em 12 de março, você pode ver que está fazendo uma junção de filtro. A união do filtro apenas força muito mais o consumo da CPU, fazendo muito mais trabalho. O resultado é idêntico, está apenas fazendo muito mais trabalho. É como se você fosse buscar um ingrediente de cada vez, em vez de ir à despensa e comprar todos os ingredientes de uma só vez. E então existe esse tipo de maneira mais eficiente de fazer isso. Agora, geralmente sabendo disso, o DBA pôde usar o plano de consulta para evitar esse plano de execução lento e obter um desempenho rápido e alto.
Agora, o próximo tipo de história de guerra era "Os relatórios estão atrasados". Acho que muitas pessoas podem se identificar com esse cenário. Você pode ter relatórios ad hoc, pode usar uma ferramenta como NVISION, pode ter alguma ferramenta de relatórios de terceiros. E o que acontece é que a ferramenta desenvolve o SQL. E muitas vezes o SQL não é realmente codificado tão bem. E isso também pode se aplicar a uma situação em que, você sabe, você tem algum aplicativo de terceiros, certo, onde o SQL não foi gravado internamente e, portanto, como um DBA: “Eu não controlo o SQL, o que Eu vou fazer sobre isso? ”Bem, o Precise fornece algo que eu não conheço nenhuma outra ferramenta de banco de dados que fornece e que é uma exibição de objeto. Combinado com recomendações e modelagem. E então o que podemos fazer é realmente virar a visibilidade. Em vez de apenas olhar para a atividade, vamos investigar, bem, qual objeto é mais pesado no sistema? E na parte inferior da tela, você pode ver a linha de pedidos SQL e a coluna "no MS-SQL". E a tabela da linha de pedidos é dez vezes mais movimentada do que qualquer outra tabela do sistema. Acho que o que você também notará na metade superior, a alocação de espaço está crescendo e você também pode observar as especificações no servidor, qual versão do software estamos executando. O Precise verificará as alterações rastreadas nas configurações principais. Mais uma vez, causa e efeito.
Agora, focando na tabela de linhas de pedidos, o que posso fazer com meu repositório histórico detalhado é que posso correlacionar as instruções SQL que vão contra a tabela de linhas de pedidos. E você pode começar a olhar para a cláusula where nessas instruções SQL. E você começa a perceber que a cláusula where é bastante semelhante entre as diferentes instruções SQL. E eu sugiro a você que em seu sistema de gravação você encontrará a mesma coisa. Como os usuários de negócios, os analistas de negócios desejam realizar atividades agregadas de negócios no último dia, na última semana, no último mês, no último trimestre, no ano passado. Você verá cláusulas where muito semelhantes, ordenar por, agrupar por, e isso significa que haverá certos índices que farão sentido para essas instruções SQL.
E, portanto, a Precise possui um mecanismo de recomendação, você pode ver isso no canto superior direito, e o que podemos fazer é realmente obter recomendações. Diga: “Ei, eu estou executando todas as instruções SQL, quais índices as abordariam?” Os índices são apresentados a você e você pode realmente ver a DBL. Agora o Precise é somente leitura, não oferece a capacidade de clicar em um botão e criar o índice, mas isso é fácil de fazer fora do Precise. Mas aqui está a coisa crucial: o Precise permite avaliar e modelar as alterações, então existe esse botão Avaliar no canto inferior esquerdo da tela. E o que isso faz é mostrar as instruções SQL no antes e depois.
Vamos dar uma olhada nessas instruções SQL. Você vê esta coluna aqui que diz "no MS-SQL" e uma hora e quatro minutos? As principais instruções SQL executam ou consomem cerca de 64 minutos de recursos. E sua melhoria projetada é de 98%. Essas alterações economizarão horas de processamento. A próxima instrução SQL é de 27 minutos e basicamente salvará um terço. São cerca de dez minutos de processamento. Resumindo, você realmente economizará horas e horas de processamento por essas alterações propostas. E, portanto, poder saber isso com antecedência, ser capaz de modelar isso. Você também pode usar o recurso “what-if” para dizer “Bem, eu não quero criar esse índice, ou o que acontece se eu alterar a ordem da coluna?” E para que eu possa usar esse recurso de modelagem para descobrir exatamente o que está acontecendo.
A outra coisa crucial é que, quando faço a alteração, posso realmente medir uma instrução SQL individual. Você viu o histórico da instrução SQL no exemplo anterior e, na verdade, posso verificar se obtive as economias que foram modeladas. E para que o feedback, a conclusão do ciclo de feedback seja absolutamente crucial.
Tudo bem, aqui está o exemplo final que eu teria para você. Esta é uma loja da SAP e, você sabe, eles fizeram uma grande atualização, estavam fazendo algumas coisas com transações personalizadas e, basicamente, um usuário final não estava satisfeito com o desempenho. Então, o que fizemos foi que conseguimos focar no que o usuário final experimentou. E você pode ver no topo da lista, “CHOUSE” e o tempo de resposta é um pouco mais de 61 segundos. Essa coisa está demorando um minuto para ser executada. Agora você pode ver que temos um gráfico de barras empilhadas voltado para o SAP. No lado direito, mostra o tempo do cliente, o tempo na fila. O azul é o tempo de aplicação e em um ambiente SAP, que é o código ABAP e, em seguida, o banco de dados. E assim, o banco de dados, você sabe, poderia ser Oracle, poderia ser SQL, poderia ser HANA. Basicamente, somos capazes de mostrar isso.
Agora, o que fazemos com o Precise é focar, para essa transação e esse usuário, quais instruções SQL estavam sendo lançadas. Mais uma vez, esse contexto para conectar os pontos. Agora, essa instrução SQL superior, você pode ver que está circulada, é executada em dois milissegundos. Você realmente não pode culpar o banco de dados se estiver executando tão rapidamente. A contagem de execução é muito alta. Na verdade, podemos voltar ao codificador ABAP e dizer: "Ei, o que está acontecendo?" Na verdade, descobrimos que o código no banco de dados foi colocado no lugar errado, estava aninhado no lugar errado dentro do loop, fez o mudar e depois podemos medir depois. Você pode realmente ver o que é o desempenho depois. Não apenas no nível da instrução SQL, mas também no nível do código personalizado. E assim eles poderiam viver com um tempo de execução de quatro e meio segundos. Portanto, esses são apenas alguns exemplos de como o Precise pode ser aproveitado, você pode aproveitá-lo. Assim como uma rápida recapitulação, o Precise mostra o desempenho por local, pelo ID do usuário final, e fornece contexto através da pilha de aplicativos. Você pode detalhar a causa raiz. E acho que um dos grandes diferenciais é saber, não apenas a instrução SQL, mas por que a instrução SQL está sendo executada lentamente e identificar a contenção e basicamente oferecer mais opções para solucionar problemas. É isso que a Precise tem a oferecer e você pode nos consumir de maneira leve ou, se você tiver problemas muito profundos e muito desafiadores, adoramos enfrentá-los também.
Eric Kavanagh: Tudo bem, eu tenho que dizer que foram muitos detalhes fantásticos, Bill. Obrigado por mostrar todas essas capturas de tela. E, na minha perspectiva, você realmente cumpriu o que eu estava meio que explicando no início da hora, que é o número um, você precisa da ferramenta certa. Você deve ter uma ferramenta que permita a quantidade de contexto necessária para identificar todos os elementos da equação, como alguém disse em um filme uma vez, que foi meio engraçado. Mas deixe-me ir em frente e entregá-lo a Dez, porque eu aposto que ele tem algumas perguntas para você e eu quero empurrar mais um desses slides apenas para doces visuais, se você quiser. Na verdade, estou esperando, deixe-me levar isso de volta. Mas Dez, tenho certeza que você tem algumas perguntas, leve embora.
Dez Blanchfield: Sim, uau. Essa ferramenta percorreu um longo caminho desde que eu a conhecia originalmente, e eu não sabia que você realmente se aprofundara tanto na pilha agora. É apenas muito impressionante. Muito rapidamente, algumas coisas. O modelo de implantação, você pode rapidamente, em um ou dois minutos, apenas descrever o modelo de implantação tradicional ou típico. Você mencionou que estava disponível como uma máquina virtual. Pode ser executado na nuvem. E acho que uma das perguntas que provavelmente surgirá e acho que houve algumas perguntas que surgiram na seção de perguntas e respostas. Apenas para recapitulá-los em resumo, para que o modelo de implantação normal e o tipo de eixo necessário sejam tradicionalmente implantados no local ou hospedados ou na nuvem? Quais são os tipos de modelos de implantação que você normalmente vê? E que tipo de eixo é necessário para que isso funcione? Temos que mudar as coisas no nível de segurança em torno do acesso à rede e assim por diante? Ou isso pode se comportar como um usuário final?
Bill Ellis: Sim, atualmente a maioria das instalações é no local. Mais e mais pessoas estão colocando componentes da pilha de aplicativos na nuvem, para que possamos lidar com isso também. A implantação na qual precisamos de um servidor, atenderá a certas especificações. Precisamos ter um banco de dados para armazenar o repositório histórico, portanto, atender a esses pré-requisitos é o primeiro passo. O próximo passo é que definitivamente precisamos ter algum conhecimento do aplicativo em si e a instalação é orientada por assistente e basicamente preenche os espaços em branco. Devido à profundidade das informações que estamos obtendo, de um nível de processo da Web para o código que está sendo executado, precisamos ter alguns privilégios. Temos um modelo de dados seguro, ou modelo de segurança, preciso dizer, porque os agentes são executados sob credenciais totalmente separadas das pessoas que estão usando os metadados das transações, etc.? O Precise se comunica via TCP sobre IP e, portanto, exigimos que certas portas sejam abertas. Como um exemplo rápido, como nossa porta padrão é 2702. Esse tipo de material detalhado é algo que, se as pessoas estiverem interessadas, poderíamos entrar com mais detalhes. Mas normalmente temos um tempo de valorização muito rápido. Se alguém está enfrentando um grande problema, geralmente podemos instalar a coisa e iluminar uma situação em questão de horas.
Dez Blanchfield: Sim, eu definitivamente tenho esse sentido também. No modelo de implantação, você falou sobre uma escala muito grande e até 500 instâncias e como isso pode ser federado. No nível inicial, como é que alguém quer - porque eu sei que o IDERA é muito grande em dar acesso a testes gratuitos, demonstrações gratuitas e lembro-me de ver no site quase tudo que pode ser jogado. Para as pessoas aqui, e acho que perdi isso no início, mas acho que surgiu uma pergunta sobre como é um site típico e como as pessoas têm acesso a ele e começam a brincar com ele e esse tipo de experiência em que eles podem ver se têm uma maneira de resolver alguns problemas de desempenho? Eles podem baixar um ODS e ativá-lo em seu hypervisor, Hyper-V ou laptop ou precisam de uma máquina dedicada para executá-lo? Você descreveu a arquitetura antes, mas muito brevemente, em um ou dois minutos, como é a implantação no nível de entrada apenas para fazer uma prova de conceito, por exemplo?
Bill Ellis: Sim, então nosso modelo é um pouco diferente das ferramentas IDERA. Nós meio que nos encaixamos mais no cenário Embarcadero, onde você deseja entrar em contato com um de nossos representantes de vendas. Gostaríamos de discutir com você quais são os desafios e, em geral, normalmente, você sabe, um dos SEs seria designado e, basicamente, trabalharia na instalação com alguém. Normalmente você não executaria o Precise no seu laptop. Você gostaria de ter uma VM ou um servidor dentro do datacenter onde o aplicativo vive, para fazer as coleções. Mas nós o ajudaríamos em cada passo disso. Se alguém estiver interessado em fazer isso, você definitivamente deseja entrar em contato com a IDERA.
Dez Blanchfield: Uma das outras coisas que me impressionou foi que, quero dizer, muito do que abordamos hoje é sobre reagir a problemas de desempenho. Mas me pareceu que, e em ambientes ao vivo, como as pessoas os usam, como seu primeiro slide show, alguém atende o telefone e diz: "O aplicativo está lento, ajuda." Mas me ocorreu que durante o pré-lançamento de aplicativos ou atualizações ou novos patches e correções, você pode passar por vários planejamentos de capacidade e testes de estresse, fazer uma análise precisa do ambiente inteiro e encontrar problemas antes mesmo de colocar os usuários finais no ambiente. Esse é um caso de uso que você já viu antes ou as pessoas estão fazendo isso também, ou não é um caso de uso típico?
Bill Ellis: Absolutamente, gostaríamos de usar o Precise ao longo do ciclo de vida de desenvolvimento de aplicativos ou também no ciclo de atualização. O Precise oferece uma visão de escalabilidade, mostrando o número de execuções sobrepostas com o tempo de resposta. Obviamente, se o número de execuções e o tempo de resposta crescerem juntos, você não está escalando e precisa fazer alguma coisa. Esse tipo de coisa ajudou imensamente. Eu acho que é um pouco menos verdadeiro agora, mas quando as pessoas começaram a colocar aplicativos de produção no VMware, elas ficaram um pouco hesitantes e foi como, você sabe, na primeira coisa em que seriam: “Ah, precisamos mudar isso para físico. ”E o que realmente podemos fazer é mostrar qual é o consumo de recursos para que você possa tornar o aplicativo mais eficiente. Em todas as etapas do ciclo de vida do aplicativo, você definitivamente deseja usar o Precise. Mas devo dizer que a produção é realmente onde o desempenho é mais importante e o Precise é voltado para o monitoramento da produção 24 horas por dia, 7 dias por semana, por isso você realmente não deseja executar seus aplicativos de produção sem visibilidade.
Dez Blanchfield: Absolutamente. Uma outra pergunta rápida apenas sobre essa especificação - teste de profundidade, imigração, UAT e assim por diante - quer dizer, é ótimo ter essa ferramenta e imagino que os desenvolvedores de aplicativos adorariam ter acesso a isso através dos ciclos de vida do ciclo de vida do desenvolvimento . Com as arquiteturas mais complexas que você está vendo agora, passamos de um serviço dedicado para virtualizações e virtualização, agora estamos passando para uma espécie de adoção de terceirização para hospedagem em nuvem e também estamos vendo uma transição para contêiner. Você já viu muitas pessoas implementando isso e modelando o tipo de região ou zona, para que alguém possa ter - e na Austrália temos um grande problema de privacidade e sei que na Europa é a mesma coisa e acho que está se tornando mais um caso nos EUA, onde os dados capazes de me identificar pessoalmente geralmente precisam estar em um ambiente mais seguro para a camada de aplicativo real na camada da web. E agora temos essas implantações em que as pessoas podem manter internamente o banco de dados e os aplicativos, mas podem colocar a camada da Web, o fim e o aplicativo de entrega e assim por diante em um provedor de nuvem como Azure ou Amazon Web Services e software . Como isso funciona com sua implantação normal? É esse o caso de você ter outro conjunto de colecionadores na região e eles agregarem um pouco mais? Como isso se parece no mundo Precise, no tipo atual de abordagem bimodal de execução de TI de coisas antigas herdadas em um só lugar e, às vezes, seus produtos estão na nuvem?
Bill Ellis: Sim, então apoiamos um ambiente misto. Uma coisa a considerar é que existem contratos diferentes com os provedores de nuvem. Alguns deles não permitem nenhum tipo de agente ou monitoramento externo na nuvem. Para instalar e monitorar com o Precise, você precisa de um tipo de contrato que permita esse tipo de acesso. Definitivamente, existem algumas restrições que às vezes temos que resolver e, portanto, esses são critérios importantes que você considera quando assina primeiro os contratos e, em seguida, e / ou se precisa implantar o Precise.
Dez Blanchfield: Sim, eu já vi várias instâncias em que, mesmo com o ambiente tradicional de banco de dados, você está adquirindo isso como parte do serviço, principalmente com os gostos do Azure, como você está gostando do HDInsight ou SQL como um serviço, como plataforma, suas ferramentas habituais só podem mergulhar tão fundo porque não estão realmente tão interessadas em que você veja o que está por baixo. E assim você acaba com um certo nível ou profundidade que pode monitorar e, de repente, não consegue ver por trás da cortina mágica. O autoatendimento é uma coisa? Isso é tradicionalmente algo que seria executado dentro de um centro de operações de rede em que a equipe técnica, o pessoal do CIO teria acesso apenas ou também é algo que você pode fornecer um nível de acesso aos usuários finais? Talvez não necessariamente a recepção e o pessoal tradicional de RH e finanças, mas usuários mais experientes, como, por exemplo, cientistas de dados, atuários, estatísticos, pessoas que fazem cargas de trabalho muito pesadas. É possível que eles tenham acesso a algum tipo de acesso de autoatendimento para ver o que está acontecendo quando executam essas consultas pesadas e onde está ocorrendo a dor, para que possam ajustar a maneira como a carga de trabalho é executada?
Bill Ellis: Há uma segurança muito boa no Precise para que você possa configurar usuários com diferentes níveis de acesso. Em níveis muito básicos, apenas os painéis fornecem supervisão. E então, dentro da, você sabe, se alguém quisesse entrar na GUI Expert, você pode restringir o que eles podem ver e o que podem fazer. E meio que circulando de volta à sua pergunta anterior, você sabe, na área da saúde, você tem todas as leis da HIPAA e, portanto, definitivamente existem algumas considerações e, na verdade, existem algumas opções de implantação para que possamos trabalhar com ela nos dois ambientes. Uma coisa a considerar com os dados que você viu nesta apresentação é que são todos os metadados sobre desempenho, não o conteúdo das tabelas, você sabe, e por isso é realmente, não vai entrar nesse tipo de tipo de preocupações com a privacidade.
Dez Blanchfield: Sim, eu fiz isso. Eu tive um momento eureka sobre o seu quarto ou quinto slide da tela e percebi que você está apenas obtendo desempenho, bem não apenas, mas você está obtendo dados de desempenho, você está obtendo coisas, como disse, metadados de nos vários níveis da pilha, você não está realmente vendo o conteúdo. E acho isso interessante, pois é uma daquelas ferramentas em que você pode implantá-lo por um curto período e observar o que está acontecendo no ambiente, mas não precisa ter acesso aos dados em si. Você pode até ver como as equipes estão sendo dirigidas. A última coisa, eu acho, rapidamente, e depois devolverei a Eric, então se você tiver uma pergunta, faça Rebecca terminar, você mencionou antes que a sobrecarga é nominal, é um caso. mesmo uma sobrecarga perceptível do lado da monitoração das coisas e apenas observando o plano de fundo ou é uma quantidade tão insignificante de sobrecarga que simplesmente não vale a pena considerar?
Bill Ellis: Sim, acho que na camada de banco de dados, cada tecnologia é um pouco diferente. No nível do banco de dados, o Precise é bastante conhecido por superar a menor sobrecarga. No nível intermediário, existe um tipo de equilíbrio, você sabe, não é apenas o Precise, é aplicado a todos, em termos de visibilidade e custos indiretos. Então, uma das coisas é que oferecemos várias ferramentas sofisticadas para controlar qual é a sobrecarga. Nós fomos projetados para produção e, você sabe, é definitivamente útil reduzir tantos problemas pela raiz no desenvolvimento e no controle de qualidade, mas, você sabe, não há nada como saber o que está acontecendo na produção.
Dez Blanchfield: Eric, para você, você tem alguma pergunta final?
Eric Kavanagh: Sim, vou apenas dizer que acho que você fez um ótimo trabalho ao apontar que o contexto é realmente a chave e é quase como se avançarmos nesta era da Internet das coisas, você quer tudo instrumentado. E acho que o padrão agora na fabricação é fazer isso, o que é uma boa notícia, certo? Porque você deseja obter informações de todos esses ambientes diferentes e costurá-las. E acho que vou passar a você alguns comentários de acompanhamento. É nisso que vocês estão focados em fornecer uma interface visual por meio da qual algum analista, essencialmente um analista de TI, pode monitorar e analisar o que está acontecendo neste ambiente complexo e depois descobrir o que mudar. Porque não é apenas uma ferramenta. Você deve ter a ferramenta, mas precisa daquela pessoa que vai se aprofundar nos detalhes e encontrar as respostas, certo?
Bill Ellis: Sim, eu meio que vejo isso chegando ao topo e priorizando onde está a maior recompra, sabe? Se isso acontecer, é uma situação diferente, porque nem todos os problemas estão no banco de dados. Se o banco de dados estiver, você sabe, as coisas estão sendo executadas em um décimo de segundo, mas na camada do aplicativo as coisas estão levando três segundos, é aí que está a maior recompra. E, assim, ser capaz de isolar a camada do problema e o que está acontecendo dentro da camada para realmente focar onde está a recompra. Isso realmente acelera a resolução e a otimização do aplicativo e é muito mais rápido, muito melhor e muito mais divertido do que as pessoas reunidas em uma sala de conferência dizendo: "Bem, não sou eu, deve ser outra pessoa".
Eric Kavanagh: Isso mesmo. Outro dia, vi um grande meme que dizia algo como: "Seja informado, não apenas opinativo". Você entra em uma reunião, tem a informação, pode apontar para os dados. Essa é a chave e estamos chegando lá, graças a Deus. Ok, pessoal, vamos prosseguir e encerrar, mas arquivamos todos esses webcasts para visualização posterior. Sinta-se livre para conferir a qualquer momento. Listamos todos os nossos webcasts agora, a série Hot Tech e a série Briefing Room no Techopedia.com, então entre on-line e confira essas pessoas. Com isso, vamos dizer adeus. Obrigado pelo seu tempo hoje, Bill. Obrigado a você e todo o seu trabalho, Dez. E falaremos com você na próxima vez, pessoal. Cuidar. Tchau tchau.