Limpar filtro
Artigo
Murray Oldfield · jan 18, 2021
Na última postagem, agendamos a coleta de métricas de desempenho durante 24 horas usando pButtons. Nesta postagem, vamos ver algumas métricas essenciais que estão sendo coletadas e como elas estão ligadas ao hardware do sistema. Também começaremos a explorar a ligação entre as métricas do Caché (ou de qualquer plataforma de dados InterSystems) e as métricas do sistema. Além disso, veremos como você pode usar essas métricas para entender a integridade diária de seus sistemas e diagnosticar problemas no desempenho.
[Veja aqui uma lista de outras postagens do autor na comunidade em inglês](https://community.intersystems.com/post/capacity-planning-and-performance-series-index)
# Grupos alimentares de hardware

Como você verá a medida que avançarmos por esta série de postagens, os componentes do servidor que afetam o desempenho podem ser categorizados como:
- CPU
- Memória
- E/S de armazenamento
- E/S de rede
Se algum desses componentes estiver sobrecarregado, o desempenho do sistema e a experiência do usuário serão prejudicados. Todos esses componentes estão inter-relacionados, e mudanças em um deles pode afetar os outros, às vezes com consequências inesperadas. Já vi um caso em que corrigir um problema de gargalo de E/S em uma matriz de armazenamento fez o uso de CPU subir para 100%, e a consequência foi uma experiência do usuário ainda pior, pois o sistema ficou livre de repente para fazer mais trabalho, mas não tinha os recursos de CPU necessários devido ao aumento da atividade e taxa de transferência dos usuários.
Também veremos como a atividade do sistema do Caché tem impacto direto nos componentes do sistema. Se houver recursos de E/S de armazenamento limitados, uma mudança positiva que pode ser feita é o aumento da memória do sistema e o aumento da memória dos __buffers globais do Caché__, o que pode diminuir a __E/S de leitura de armazenamento do sistema__ (mas talvez aumente o uso de CPU!).
Uma das métricas de sistema mais óbvias que deve ser monitorada regularmente ou verificada se os usuários relatarem problemas é o uso de CPU. Pode-se verificar utilizando o _top_ ou _nmon_ no Linux e AIX, ou _Monitor de Desempenho do Windows_. Como a maioria dos administradores de sistema verificam os dados de CPU regularmente, ainda mais quando são apresentados em gráficos, uma olhada rápida fornece uma boa compreensão da integridade atual do sistema: o que está normal, ou um surto repentino de atividade, que pode ser anormal ou indicar um problema. Nesta postagem, vamos dar uma olhada rápida nas métricas de CPU, mas nos concentraremos nas métricas do Caché. Começaremos verificando os dados do _mgstat_ e como ver os dados em gráficos pode dar uma boa compreensão da integridade do sistema rapidamente.
# Introdução ao mgstat
O mgstat é um dos comandos do Caché incluídos e executados no pButtons. O mgstat é uma ferramenta excelente para coletar métricas básicas de desempenho para ajudar a entender a integridade dos sistemas. Veremos os dados do mgstat coletados durante 24 horas em um pButtons, mas, se você quiser capturar dados além do pButtons, o mgstat também pode ser executado sob demanda de forma interativa ou como um trabalho em segundo plano pelo terminal do Caché.
Para executar o mgstat sob demanda pelo namespace %SYS, o formato geral é:
do mgstat(sample_time,number_of_samples,"/caminho_do_arquivo/arquivo.csv",page_length)
Por exemplo, veja abaixo o comando para executar em uma tarefa em segundo plano por uma hora com um período de amostragem de 5 segundos e salvar a saída em um arquivo csv:
job ^mgstat(5,720,"/data/mgstat_data_e_hora_de_hoje.csv")
Por exemplo, para exibir na tela sem algumas colunas, chame a rotina através do label dsp132: Deixarei como tarefa para vocês a verificação da saída para que vocês entendam melhor a diferença.
do dsp132^mgstat(5,720,"",60)
> As informações detalhadas das colunas do mgstat estão disponíveis no _Guia de monitoramento do Caché_ na documentação mais recente do Caché: [Documentação online da InterSystems](https://docs.intersystems.com)
# Sobre os dados do mgstat
O pButtons agrupa os dados em um único arquivo HTML, facilitando a navegação e empacotando os dados para envio aos especialistas de suporte da Central de Suporte (WRC) para diagnosticar problemas no desempenho. Entretanto, quando você executa o pButtons por conta própria e deseja exibir os dados em gráficos, eles podem ser separados novamente em um arquivo csv para processamento em gráficos, por exemplo, com o Excel, usando um script de linha de comando ou apenas cortando e colando os dados.
Nesta postagem analisaremos algumas métricas do mgstat para mostrar como somente uma visão rápida dos dados pode indicar se o sistema está com bom desempenho ou se há problemas atuais ou potenciais que afetarão a experiência do usuário.
## Glorefs e CPU
O gráfico abaixo mostra o uso de CPU do servidor de banco de dados em um local que executa uma aplicação de hospital com uma alta taxa de transações. Note o pico de atividade durante a manhã, quando há vários ambulatórios, com uma queda durante o almoço, diminuindo então à tarde e à noite. Neste caso, os dados vêm de _(_Total)\% Tempo do Processador_ do Monitor de Desempenho do Windows. O formato do gráfico corresponde ao perfil diário de trabalho, sem picos ou depressões incomuns, o que é normal para esse local. Fazendo o mesmo em seu local, você pode começar a estabelecer uma linha de base do que é "normal". Um grande pico, especialmente um de longa duração, pode ser um indicador de problema. Uma postagem futura se concentrará na CPU.

Como referência, este banco de dados está em um servidor Dell R720 com dois processadores E5-2670 de 8 núcleos. O servidor tem 128 GB de memória e 48 GB de buffers de globais.
O próximo gráfico mostra mais dados do mgstat: Glorefs (referências globais) ou acessos ao banco de dados no mesmo dia que o gráfico de CPU. As glorefs indicam a quantidade de trabalho ocorrendo durante a carga de trabalho atual. Embora as referências a globais consumam tempo de CPU, nem sempre elas consomem outros recursos do sistema, como leituras físicas, devido à maneira como o Caché usa o pool global de buffers de memória.

Nas aplicações típicas do Caché, há uma correlação muito forte entre as glorefs e o uso de CPU.
> Outro modo de olhar esses dados de CPU e glorefs é dizendo que _a redução das glorefs reduz o uso de CPU_, permitindo a implantação em servidores com menos núcleos ou a escalabilidade de sistemas existentes. É possível reduzir as referências globais tornando uma aplicação mais eficiente. Voltaremos a esse conceito em postagens futuras.
## PhyRds e Rdratio
O formato da representação gráfica dos dados _PhyRds_ (leituras físicas) e _Rdratio_ (proporção de leituras) do mgstat também pode fornecer informações do que se esperar do desempenho do sistema e ajudar a planejar a capacidade. Vamos analisar com mais detalhes a E/S de armazenamento no Caché em postagens futuras.
_PhyRds_ são simplesmente Operações de Entrada e Saída por Segundo (IOPS) de leitura nos bancos de dados do Caché. Você deverá ver os mesmos valores nas métricas do sistema operacional para discos lógicos e físicos. Lembre-se de que, ao verificar as Operações de Entrada e Saída por Segundo (IOPS) do sistema operacional, também podem estar sendo exibidos dados de outras aplicações que não o Caché. Dimensionar o armazenamento sem levar em conta as Operações de Entrada e Saída por Segundo (IOPS) esperadas é uma receita para o desastre. Você precisa saber as IOPS de seu sistema em horários de pico para planejar a capacidade corretamente. O gráfico abaixo mostra _PhyRds_ entre meia-noite e 15h30.

Observe o grande salto de leituras entre 5h30 e 10h. Também há picos menores às 11h e um pouco antes das 14h. Qual você acha que é a causa desses picos? Você também vê esse tipo de picos em seus servidores?
_Rdratio_ é um pouco mais interessante: é a proporção de leituras de blocos lógicos em comparação a leituras de blocos físicos. Portanto, é a proporção de quantas leituras são de buffers de globais (lógicos) da memória e quantas são do disco, que são algumas ordens de grandeza mais lentas. Uma _Rdratio_ alta é uma boa coisa, e chegar perto de zero por longos períodos não é bom.

Observe que, quando as leituras físicas estão altas, _Rdratio_ cai para perto de zero. Nesse local, me pediram para investigar quando o departamento de TI começou a receber ligações de usuários informando que o sistema estava lento por longos períodos. Isso estava acontecendo de maneira aparentemente aleatória durante várias semanas quando me pediram para verificar o sistema.
> _**Como o pButtons havia sido agendado para execução diária de 24 horas, foi relativamente simples analisar os dados de várias semanas passadas para começar a ver um padrão de _PhyRds_ alta e _Rdratio_ baixa, com uma correlação com as ligações de suporte.***
Após uma análise mais detalhada, descobriu-se que a causa era um novo funcionário que executava diversos relatórios com parâmetros ruins, além de consultas mal escritas sem índices apropriados, o que causava muitas leituras no banco de dados. Essa era a causa da lentidão aparentemente aleatória. Como esses relatórios de longa execução lêem dados dos buffers de globais, a consequência é que os dados interativos dos usuários estavam sendo obtidos do armazenamento físico, em vez da memória, e o armazenamento estava sendo sobrecarregado para atender às solicitações de leitura.
O monitoramento das métricas _PhyRds_ e _Rdratio_ dará uma ideia da integridade de seus sistemas e talvez permitirá que você descubra relatórios ou consultas ruins. Pode haver um motivo válido para uma _PhyRds_ alta: talvez um relatório precise ser executado em determinada hora. Com os sistemas operacionais modernos de 64 bits e servidores com alta capacidade de memória física, você deverá conseguir minimizar a _PhyRds_ em seus sistemas de produção.
> Caso a _PhyRds_ esteja alta em seu sistema, você pode considerar algumas estratégias: - Melhorar o desempenho aumentando o número de buffers (globais) de banco de dados (e a memória do sistema). - Relatórios ou extrações de longa duração podem ser feitos fora do horário comercial. - Relatórios somente leitura de longa duração, trabalhos em lote ou extrações de dados podem ser feitos em um servidor Shadow ou um membro de espelhamento assíncrono para minimizar o impacto nos usuários interativos e para diminuir a carga de recursos do sistema, como CPU e Operações de Entrada e Saída por Segundo (IOPS).
Geralmente, é bom ter uma _PhyRds_ baixa, e é nossa meta ao dimensionar os sistemas. Entretanto, se a _PhyRds_ estiver baixa e os usuários estiverem reclamando do desempenho, você pode verificar outros fatores para confirmar que o armazenamento não é o gargalo. A quantidade de leituras pode estar baixa porque o sistema não consegue mais atender à demanda. Veremos o armazenamento com mais detalhas em uma postagem futura.
# Resumo
Nesta postagem, verificamos como olhar graficamente as métricas coletadas no pButtons pode fornecer uma compreensão da integridade rapidamente. Em postagens futuras, analisarei com mais detalhes a ligação entre as métricas de sistema e do Caché e como você pode usá-las para se planejar para o futuro.
Artigo
Murray Oldfield · Dez. 8, 2020
Sua aplicação está implantada e tudo está funcionando bem. Ótimo, bate aqui! Então, do nada, o telefone começa a tocar sem parar – são os usuários reclamando que, às vezes, a aplicação está "lenta". Mas o que isso significa? Às vezes? Quais ferramentas você tem e quais estatísticas você deve examinar para encontrar e resolver essa lentidão? A infraestrutura do seu sistema está à altura da tarefa de carga do usuário? Que perguntas de design de infraestrutura você deveria ter feito antes de entrar em produção? Como você pode planejar a capacidade de um novo hardware com confiança sem excesso de especificações? Como você pode parar o telefone de tocar? Como você poderia ter impedido o telefone de tocar em primeiro lugar?
* * *
[Veja aqui uma lista das outras postagens desta série](https://community.intersystems.com/post/capacity-planning-and-performance-series-index)
* * *
## Esta será uma jornada
Este é a primeira postagem de uma série que explorará as ferramentas e métricas disponíveis para monitorar, revisar e solucionar problemas de desempenho de sistemas, bem como considerações de design e arquitetura de sistema que afetam o desempenho. Ao longo do caminho, iremos percorrer algumas trilhas para entender o desempenho do Caché, sistemas operacionais, hardware, virtualização e outras áreas que se tornam tópicos a partir de seu feedback nos comentários.
Seguiremos o ciclo de feedback fornecido pelos dados de desempenho para visualizar as vantagens e limitações das aplicações e da infraestrutura implantadas e, em seguida, voltar para uma melhor concepção e planejamento de capacidade.
Não é preciso dizer que você deve revisar as métricas de desempenho constantemente. É lamentável o número de vezes que os clientes são surpreendidos por problemas de desempenho que estavam visíveis por um longo tempo, se eles tivessem olhando os dados. Mas, é claro, que a questão é: quais dados? Começaremos a jornada coletando algumas métricas básicas do Caché e do sistema para que possamos ter uma ideia da integridade do seus sistema atual. Em postagens posteriores, mergulharemos no significado das principais métricas.
Há muitas opções disponíveis para o monitoramento do sistema – internamente do Caché e externamente. Vamos explorar um monte deles nesta série.
Para começar, veremos minha ferramenta favorita para coleta contínua de dados que já está instalada em todos os sistemas Caché – o ^pButtons.
Para ter certeza de que você tem a última cópia do pButtons, reveja a seguinte postagem:
## Coletando métricas de desempenho do sistema – ^pButtons
O utilitário Caché pButtons gera um relatório de desempenho em HTML legível a partir dos arquivos de log que ele cria. A saída das métricas de desempenho pelo pButtons pode ser facilmente extraída, mapeada e revisada.
Os dados coletados no arquivo HTML pelo pButtons incluem:
* Configuração do Caché: com configuração, mapeamentos de unidades, etc.
* mgstat: Métricas de desempenho do Caché – a maioria dos valores são médios por segundo.
* Unix: vmstat e iostat – recursos do sistema operacional e métricas de desempenho.
* Windows: monitor de desempenho – recursos do Windows e métricas de desempenho.
* Outras métricas que serão úteis.
A coleta de dados do pButtons tem muito pouco impacto no desempenho do sistema, as métricas já estão sendo coletadas pelo sistema, o pButtons simplesmente as empacota para facilitar o arquivamento e transporte.
Para manter uma linha de base, para análise de tendências e solução de problemas, é uma boa prática realizar uma coleta com o pButtons de 24 horas (meia-noite à meia-noite) todos os dias, para um ciclo de negócios completo. Um ciclo de negócios pode durar um mês ou mais, por exemplo, para capturar dados de processamento no final do mês. Se você não tiver nenhum outro monitoramento de desempenho externo ou coleta, você pode executar o pButtons durante o ano todo.
Os seguintes pontos-chave devem ser observados:
* Mude o diretório de log para um local longe dos dados de produção para armazenar arquivos de saída acumulados e evitar problemas de disco cheio!
* Execute um script do sistema operacional ou compacte e arquive o arquivo pButtons regularmente. Isso é especialmente importante no Windows, pois os arquivos podem ser grandes.
* Revise os dados regularmente!
No caso de um problema que necessite de análise imediata, os dados do pButtons podem ser visualizados (coletados imediatamente) enquanto as métricas continuam a ser armazenadas para a coleta no final dos dias de execução.
Para obter mais informações sobre pButtons, incluindo visualização, interrupção de uma execução e adição de coleta de dados personalizados, veja o _Guia de Monitoramento Caché_ na documentação mais recente do Caché:
http://docs.intersystems.com
Os dados do arquivo HTML pButtons podem ser separados e extraídos (para arquivos CSV, por exemplo) para processamento em gráficos ou outra análise por script ou simplesmente recortar e colar. Veremos exemplos da saída em gráficos posteriormente na próxima postagem.
É claro que, se você tiver problemas urgentes de desempenho, entre em contato com a Central de Suporte (WRC).
### Agende a coleta de dados de 24 horas do pButtons
O ^pButtons pode ser iniciado manualmente a partir do prompt do terminal ou agendado. Para agendar uma coleta diária de 24 horas:
1. Inicie o terminal Caché, mude para o %SYS namespace e execute o pButtons manualmente uma vez para configurar as estruturas de arquivo do pButtons:
%SYS>d ^pButtons Current log directory: /db/backup/benchout/pButtonsOut/ Available profiles: 1 12hours - 12 hour run sampling every 10 seconds 2 24hours - 24 hour run sampling every 10 seconds 3 30mins - 30 minute run sampling every 1 second 4 4hours - 4 hour run sampling every 5 seconds 5 8hours - 8 hour run sampling every 10 seconds 6 test - A 5 minute TEST run sampling every 30 seconds
Selecione a opção 6. para teste, amostragem de execução de TESTE de 5 minutos a cada 30 segundos. Observe que sua numeração pode ser diferente, mas o teste deve ser óbvio.
Durante a execução, execute Collect^pButtons (conforme mostrado abaixo), você verá informações incluindo o runid. Neste caso, “20160303\_1851\_test”.
%SYS>d Collect^pButtons
Current Performance runs:
<strong>20160303_1851_test</strong> ready in 6 minutes 48 seconds nothing available to collect at the moment.
%SYS>
Observou que esta execução de 5 minutos leva 6 minutos e 48 segundos para finalizar? O pButtons adiciona um período de carência de 2 minutos a todas as execuções permitindo um tempo para a coleta e ordenação dos logs no formato HTML.
2. IMPORTANTE! Altere o diretório de saída do log pButtons - o local de saída padrão é a pasta /mgr. Por exemplo, no Unix, o caminho para o diretório de log pode ser assim:
do setlogdir^pButtons("/algum_lugar_com_muito_espaço/perflogs/")
Certifique-se de que o Caché tenha permissões de gravação para o diretório e que haja espaço em disco suficiente disponível para acumular os arquivos de saída.
3. Crie um novo perfil de 24 horas com intervalos de 30 segundos executando o seguinte:
write $$addprofile^pButtons("My_24hours_30sec","24 hours 30 sec interval",30,2880)
Verifique se o perfil foi adicionado ao pButtons:
%SYS>d ^pButtons
Current log directory: /db/backup/benchout/pButtonsOut/
Available profiles:
1 12hours - 12 hour run sampling every 10 seconds
2 24hours - 24 hour run sampling every 10 seconds
3 30mins - 30 minute run sampling every 1 second
4 4hours - 4 hour run sampling every 5 seconds
5 8hours - 8 hour run sampling every 10 seconds
6 My_24hours_30sec- 24 hours 30 sec interval
7 test - A 5 minute TEST run sampling every 30 seconds
select profile number to run:
Nota: Você pode variar o intervalo de coleta - 30 segundos é bom para monitoramento de rotina. Eu não usaria menos de 5 segundos para uma execução de rotina de 24 horas (…”,5,17280), pois os arquivos de saída podem se tornar muito grandes à medida que pButtons coleta dados a cada tique do intervalo. Se você está resolvendo problemas em um determinado momento do dia e deseja dados mais granulares, use um dos perfis padrão ou crie um novo perfil personalizado com um período de tempo mais curto, por exemplo, 1 hora com intervalo de 5 segundos (…”,5,720). Vários pButtons podem ser executados ao mesmo tempo, portanto, você pode ter pButtons curtos com intervalo de 5 segundos em execução ao mesmo tempo que os pButtons de 24 horas.
4. Dica Para sites UNIX, revise o comando disk. Os parâmetros padrão usados com o comando 'iostat' podem não incluir os tempos de resposta do disco. Primeiro exiba quais comandos de disco estão configurados atualmente:
%SYS>zw ^pButtons("cmds","disk")
^pButtons("cmds","disk")=2
^pButtons("cmds","disk",1)=$lb("iostat","iostat ","interval"," ","count"," > ")
^pButtons("cmds","disk",2)=$lb("sar -d","sar -d ","interval"," ","count"," > ")
Para coletar estatísticas de disco, use o comando apropriado para editar a sintaxe de sua instalação do UNIX. Observe o espaço à direita. Aqui estão alguns exemplos:
LINUX: set $li(^pButtons("cmds","disk",1),2)="iostat -xt "
AIX: set $li(^pButtons("cmds","disk",1),2)="iostat -sadD "
VxFS: set ^pButtons("cmds","disk",3)=$lb("vxstat","vxstat -g DISKGROUP -i ","interval"," -c ","count"," > ")
Você pode criar arquivos HTML pButtons muito grandes, executando os comandos iostat e sar. Para avaliações regulares de desempenho, geralmente uso apenas o iostat. Para configurá-lo há apenas um comando:
set ^pButtons("cmds","disk")=1
Mais detalhes sobre como configurar pButtons estão na documentação on-line.
5. Programe o pButtons para iniciar à meia-noite no Portal de Gerenciamento > Operação de Sistema > Gerenciado de Tarefas:
Namespace: %SYS
Task Type: RunLegacyTask
ExecuteCode: Do run^pButtons("My_24hours_30sec")
Task Priority: Normal
User: superuser
How often: Once daily at 00:00:01
### Coletando dados com pButtons
O pButtons disponível em versões mais recentes das Plataformas de Dados InterSystems incluem a coleta automática. Para coletar e ordenar manualmente os dados em um arquivo HTML no %SYS namespace, execute o seguinte comando para gerar quaisquer arquivos de saída HTML pButtons pendentes:
do Collect^pButtons
O arquivo HTML estará no logdir que você configurou no passo 2 (se você não configurou, vá e **faça agora!**). Caso contrário, o local padrão é
Os arquivos são nomeados como Ex. vsan-tc-db1\_H2015\_20160218\_0255_test.html
### Considerações sobre o Monitor de Desempenho do Windows
Se o sistema operacional for Windows, o Monitor de Desempenho do Windows (perfmon) pode ser usado para coletar dados em sincronia com as outras métricas coletadas. Em distribuições Caché mais antigas do pButtons, o perfmon do Windows precisa ser configurado manualmente. Se houver uma demanda nos comentários da postagem, escreverei uma postagem sobre a criação de um template perfmon para definir os contadores de desempenho a serem monitorados e agendar a execução para o mesmo período e intervalo que o pButtons.
### Resumo
Esta postagem nos fez começar a coletar alguns dados para analisar. No final da semana, começarei a examinar alguns dados de amostra e o que isso significa. Você pode acompanhar os dados coletados em seus próprios sistemas. Vejo você então.
Anúncio
Angelo Bruno Braga · Nov. 3, 2020
Olá Desenvolvedores!
Aqui estão os bônus tecnológicos do Concurso de Interoperabilidade InterSystems que irão lhe dar pontos extras durante a votação:
Uso do Business Process BPL ou Business Rule DTL
Uso de Adaptadores de Interoperabilidade Customizados
Uso da Production EXtension(PEX) Java ou .NET
Uso do Workflow
Implantação usando o pacote ZPM
Uso de contêiner Docker
Vejam os detalhes abaixo.
Uso do Business Process BPL ou de Business Rules - 1 ponto
Uma das funcionalidades principais das Produções de Interoperabilidade IRIS são os Business Processes, que podem ser definidos através do uso de BPL (Business Process Language).
Aprenda mais sobre Business Processes na documentação.
As Business Rules são uma abordagem sem/pouco código para gerenciar a lógica de processamento de uma produção de interoperabilidade. Na plataforma de dados InterSystems IRIS você pode criar uma business rule através do editor gráfico ou usando representação em ObjectScript.
Você conseguirá ganhar o bônus Business Process/Business Rule se você criar e usar business processes ou business rules em sua produção de interoperabilidade.
Exemplo de Business Rule
Aprenda mais sobre Business Rules na documentação.
Uso de Adaptadores de Interoperabilidade Customizados - 1 ponto
Produções de Interoperabilidade da InterSystems podem conter adaptadores de entrada (Inbound) ou de saída (Outbound) que são utilizados para comunicação com sistemas externos pelos business services e business operation da produção. Você pode utilizar os adaptadores nativos da plataforma(lcomo File, Email,etc) ou desenvolver o seu próprio.
Você ganhará este bônus de você desenvolver o seu próprio adaptador (de entrada ou de saída) e usá-lo em sua produção de interoperabilidade.
Examplo de um adaptador.
Aprenda mais sobre adaptadores.
Uso de Production EXtension (PEX) - 2 pontos
PEX é uma extensão Java ou .NET de produções de interoperabilidade.
Você ganhará este bônus se utilizar PEX com JAVA ou .NET em sua produção de interoperabilidade.
Demonstração PEX.
Aprenda mais sobre PEX na documentação.
Uso do Workflow - 1 ponto
O Workflow é uma funcionalidade da plataforma de dados IRIS que permite a distribuição automática de tarefas entre usuários em uma produção de interoperabilidade.
Você ganhará este bônus se incluir o uso de Workflow em sua produção de interoperabilidade.
Aprenda mais sobre Workflows na documentação.
Existem os módulos da comunidade WorkflowAPI e WorkflowUI-ngx que disponibilizam uma bela camada de IU em Angular para o Workflow.
Implantação usando o pacote ZPM - 1 ponto
Você ganhará este bônus se você construir e publicar o pacote ZPM para sua aplicação Full Stack de forma que ela possa ser implantada com o comando:
zpm "install your-full-stack-solution-name"
na plataforma de dados IRIS com o cliente ZPM instalado.
Documentação cliente ZPM.
Uso de contêiner Docker - 1 ponto
A aplicação ganhará o bônus 'Docker contêiner' se utilizar a plataforma de dados InterSystems IRIS rodando em um contêiner docker.
Você pode obter o bônus se utilizar um dos seguintes modelos docker:
Modelo de Interoperabilidade IRIS
Sinta-se a vontade para realizar qualquer pergunta sobre o uso das tecnologias listadas e,
Boa sorte na competição !!!
Anúncio
Angelo Bruno Braga · Nov. 16, 2020
Olá Desenvolvedores,
Esta semana é a semana de votação para o Concurso de Interoperabilidade InterSystems Interoperability! Então, é a hora de você dar o seu voto para a melhor solução de interoperabilidade desenvolvida com a plataforma de dados IRIS.
🔥 Você decide: VOTE AQUI 🔥
Como votar? É fácil: você tem direito a um voto, e seu voto vai ou para a Nominação pelos Experts ou para a Nominação pela Comundade.
Nominação pelos Experts
Se você é um Gerente de Produtos InterSystems, Moderador da Comunidade ou Especialista ou níveis acima no Global Masters seu voto vai para a Nominação pelos Experts.
Nominação pela Comunidade
Se você já contribuiu para a comunidade (postando ou respondendo) e não foi considerado como spam, vocÊ pode votar pela Nominação pela Comunidade.
Votando
A votação é realizada na Página de Concursos Open Exchange e você precisará se logar no Open Exchange – você pode fazer isso com suas credenciais da conta da Comunidade de Desenvolvedores.
Se vocÊ mudar de ideia, cancele sua escolha e dê seu voto para outra aplicação - você tem 7 dias para escolher !
Participantes do Concurso podem corrigir problemas e fazer melhorias em suas aplicações durante a semana de votação então, não perca a oportunidade e mantenha sua aplicação atualizada.
➡️ Não se esqueçam também de verificar as Regras de julgamento e votação para o Concurso aqui.
Anúncio
Angelo Bruno Braga · Nov. 23, 2020
Olá Comunidade,
É um prazer convidá-los para o encontro online com os ganhadores do Concurso de Interoperabilidade da InterSystems!
Dia e horário: Sexta-feira, 27 de Novembro de 2020 – 12:00 horário de Brasília
O que lhe aguarda neste encontro virtual ?
A biografia de nossos ganhadores.
Demonstrações de suas aplicações.
Uma discussão aberta sobre as tecnologias utilizadas, bônus, dúvidas e planos para os próximos concursos.
Nossos palestrantes:
@Yuri.Gomes, Arquiteto de Software na YM Consulting
@Lorenzo.Scalese, Arquiteto de Soluções na Xperthis s.a.
@José.Pereira, Desenvolvedor BI na Shift Consultoria e Sistemas Ltda
@Henrique.GonçalvesDias, Especialista em Gerenciamento de Sistemas / Administrador de Bancos de Dados, Tribunal Regional Federal, Sao Paulo
@Evgeny.Shvarov, Gestor do Ecosistema InterSystems para Desenvolvedores.
Você também terá a oportunidade de realizar perguntas para nossos desenvolvedores através do bate-papo de nosso webinar.
Ficaremos felizes em conversar com vocês em nosso Encontro Virtual!
➡️ JUNTE-SE A NÓS NO ENCONTRO ONLINE!
Anúncio
Tatiana Krupenya · Dez. 2, 2020
É um prazer anunciar que o DBeaver suporta a plataforma de dados InterSystems IRIS nativamente desde a versão 7.2.4. Você não precisa realizar uma configuração manual mais, basta identificar o ícone do IRIS na lista de conexões.
Todos os campos necessários já vem preenchidos mas, não se esqueça de colocar seu usuário e senha !!!!
Por padrão o driver do InterSystems IRIS não é incluído na instalação do DBeaver. Para realizar a primeira conexão o DBeaver sugere que seja feito o download do driver do repositório GitHub oficial da InterSystems. Este driver será então usado para todas as conexões posteriores.
A versão atual não contém funcionalidades específicas do IRIS mas, todas as funções principais do DBeaver funcionam para nossa plataforma. Se você julga importante adicionar algo a mais, nos avise por favor !!!!!
Anúncio
Angelo Bruno Braga · Dez. 4, 2020
Olá Desenvolvedores!
Aqui estão os bônus tecnológicos para o Concurso Analítico da InterSystems que irão prover pontos extras na votação:
InterSystems IRIS BI
InterSystems IRIS NLP
IntegratedML
Uso de dados reais
Implantação em Pacote ZPM
Uso de contêiner Docker
Vejam os detalhes abaixo:
InterSystems IRIS BI - 1 ponto
O InterSystems IRIS BI é uma funcionalidade do IRIS que lhe permite a opção de criar cubos e tabelas pivô a partir dos dados persistentes do IRIS e entregar estes dados como informação para usuários através do uso de painéis interativos.
Aprenda mais
O modelo básico iris-analytics-template contém exemplos de cubos, tabelas pivô e um painel do IRIS.
InterSystems IRIS NLP (iKnow) - 1 ponto
InterSystems NLP, também conhecido como iKnow é uma funcionalidade do InterSystems IRIS e uma biblioteca para Processamento de Linguagem Natural que identifica entidades (frases) e seu contexto semântico em textos de linguagem natural nos idiomas Inglês, Alemão, Holandês, Francês, Espanhol, Português, Sueco, Russo, Ucraniano, Tcheco e Japonês.
Aprenda mais sobre o iKnow no Open Exchange
Exemplos:
Covid iKnow Text Navigator
Samples Aviation
e mais.
Use o iKnow para gerenciar dados não estruturados em sua solução analítica e ganhe 1 ponto de bônus.
IntegratedML - 1 ponto
IntegratedML é uma funcionalidade do InterSystems IRIS que expande o SQL com um conjunto de instruções de ML (Machine Learning) que permite você simplificar e automatizar os cálculos de Machine Learning para sua solução.
Aprenda mais sobre IntegratedML.
Para usar o IntegratedML você precisará de imagens especiais do IRIS, veja aqui.
Exemplos:
Um modelo básico de IntegratedML
Vários exemplos no Open Exchange
O uso do IntegratedML em sua solução Analítica no IRIS lhe dará um ponto extra.
Uso de dados reais - 1 ponto
Nós gostariamos de ver casos reais de implementações das funcionalidades Analíticas do IRIS e seria ótimo se vocês pudessem desenvolver suas soluções utilizando dados reais de seu trabalho, organização, etc.
Se você utilizar qualquer conjunto de dados reais em sua solução você ganha um ponto extra.
Implantação em Pacote ZPM - 1 ponto
Você ganhará este ponto de bônus se você criar e publicar o pacote ZPM(Gerenciador de Pacotes ObjectScript) para sua aplicação Full-Stack de forma que ele possa ser implantado com o seguinte comando
zpm "install o-nome-de-sua-solução-full-stack"
em um IRIS com o cliente ZPM instalado.
Documentação.Cliente ZPM.
Uso de contêiner Docker - 1 ponto
A aplicação ganha o bônus 'Uso de contêiner Docker' se a mesma utiliza o InterSystems IRIS em um contêiner docker.
Você pode obter o bônus se usar qualquer um dos modelos docker a seguir:
Modelo de Interoperabilidade IRIS
Sintam-se a vontade para realizarem perguntas sobre o uso das tecnologias citadas.
E, Boa Sorte na competição !!!!
P.S. Esta lista de funcionalidades técnicas relacionadas a obtenção de pontos de bônus está sujeita a alterações antes do início do concurso. Fique ligado nas atualizações.
Anúncio
Angelo Bruno Braga · jan 8, 2021
Olá Desenvolvedores,
Estamos gratos em convidar todos os desenvolvedores para o Webinar Inicial do Concurso Multi-Modelo InterSystems! O tópico deste webinar é dedicado ao Concurso Multi-Modelo da InterSystems.
Neste webinar nós iremos demonstrar o uso das APIs para cada modelo de dados.
Dia e Horário: Segunda-Feira, 11 de Janeiro — 12:00 horário de Brasília
Palestrantes: 🗣 @Benjamin.DeBoe, InterSystems Product Manager🗣 @Robert.Kuszewski, InterSystems Product Manager - Developer Experience🗣 @Evgeny.Shvarov, InterSystems Developer Ecosystem Manager
Então...
Estaremos felizes em conversar com vocês em nosso webinar!
➡️ JUNTE-SE AO WEBINAR
Anúncio
Angelo Bruno Braga · jan 4, 2021
Olá Comunidade,
Estamos felizes em convidá-los para o encontro online com os ganhadores do Concurso Analítico da InterSystems!
Dia e Horário: Segunda-Feira, 4 de Janeiro de 2021 – 12:00 horário de Brasília
O que lhe aguarda neste Encontro virtual?
A biografia de nossos ganhadores.
Pequenas demonstrações de suas aplicações.
Uma discussão aberta sobre as tecnologias utilizadas, os bônus, espaço para esclarecimento de dúvidas e planos para os próximos concursos.
Nossos palestrantes:
@José.Pereira, Desenvolvedor BI na Shift Consultoria e Sistemas Ltda
@Yuri.Gomes, Arquiteto de Software na YM Consulting
@Henrique.GonçalvesDias, Especialista em Gerenciamento de Sistemas / Administrador de Bancos de Dados no Tribunal Federal de São Paulo
@Evgeny.Shvarov, InterSystems Developer Ecosystem Manager
@Carmen.Logue, Gerente de Produto - Analytics e IA
Nós também teremos a oportunidade de tirar dúvidas com nossos desenvolvedores em um bate-papo especial no webinar.
Estaremos felizes em conversar com vocês em nosso Encontro Virtual!
➡️ Junte-se a nós clicando neste link!
Artigo
Yuri Marx · jan 4, 2021
Os 5V do Big Data com o InterSystems IRIS
Veja a tabela a seguir:
Velocidade: Desempenho elástico e escalável vertical e horizontalmenteHabilitadores: Cache em memória distribuído, Processamento Distribuído, Sharding e Arquitetura Multimodelohttps://www.intersystems.com/isc-resources/wp-content/uploads/sites/24/ESG_Technical_Review-InterSystems-IRIS.pdf e https://learning.intersystems.com/course/view.php?id=1254&ssoPass=1
Valor: O valor do dado ampliado exponencialmente pelo analítico e IAHabilitadores: BI, NLP, ML e AutoML e Arquitetura Multimodelohttps://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=SETAnalytics e https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GIML_AUTOML
Veracidade: Uma única fonte da verdade com dados consolidados corporativamenteHabilitadores: Conectores, Barramento, Processos de Integração de Dados e Gestão de APIhttps://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=PAGE_interoperability e https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AFL_iam
Volume: Muitos tera/petabytes de dados com desempenho sustentávelHabilitadores: Cache em memória distribuído, Processamento Distribuído, Sharding e Arquitetura Multimodelohttps://www.intersystems.com/isc-resources/wp-content/uploads/sites/24/ESG_Technical_Review-InterSystems-IRIS.pdf e https://learning.intersystems.com/course/view.php?id=1254&ssoPass=1
Variedade: Os principais formatos de dados no mesmo lugar (XML, JSON, SQL, Objeto)Habilitadores: Repositório e Arquitetura Multimodelohttps://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=PAGE_multimodel
Artigo
Angelo Bruno Braga · jan 28, 2021
Para inscrever a sua aplicação do Open Exchange para um de nossos Concursos de Programação InterSystems basta seguir os seguintes passos:
Faça seu Log in no Open Exchange, e abra a seção com suas aplicações:
Abra a aplicação que você deseja registrar no concurso:
Certifique-se de que o status se encontra como 'Published'.
A aplicação será encaminhada para revisão e , se ela se enquadrar no tópico do concurso para qual foi feita a solicitação de registro, ela será listada no Quadro do Concurso.
Simples assim.
Boa sorte a todos !!!
Artigo
Yuri Marx · jan 25, 2021
A linguagem ObjectScript do InterSystems IRIS possui um mecanismo de metadados muito poderoso chamado XData. Este recurso permite criar definições de metadados para as classes úteis para serem utilizadas pelo compilador ou por programas que irão estender as funcionalidades padrão da linguagem baseados nas definições de XData do seu escopo de atuação.
Um exemplo é o IRIS Publisher, uma aplicação Open Source da comunidade capaz de coletar todas as definições de XData no formato HTML e/ou Markdown e gerar um Portal Web com toda a documentação da aplicação montada a partir destes elementos XData.
Veja aqui todo o processo:
Vamos ver um exemplo prático, siga os passos:
Acesse o link https://openexchange.intersystems.com/package/IRIS-Publisher para realizar o download do IRIS Publisher.
Realize a clonagem do repositório do projeto no git em pasta local da sua escolha:
git clone https://github.com/yurimarx/iris-publisher
Abra o código fonte do projeto. Ele se encontra na pasta iris-publisher. Iremos criar alguns elementos XData.
Vá na classe Person dentro de src/dc/Sample. Inspecione as duas definições de XData de exemplo entre as linhas 34 a 43.
/// Documentation for Person in HTML
XData PersonDocHtml [ MimeType = text/html ]
{
<h1>This is the Person class</h1>
}
/// Documentation for Person in Markdown
XData PersonDocMarkdown [ MimeType = text/markdown ]
{
<h1>This is the Person class in MD</h1>
}
São 3 grandes blocos, o texto depois do ///, onde é possível escrever uma descrição do elemento XData; a própria definição do XData e o MimeType (somente HTML e Markdown são capturados) e finalmente, entre {}, todo o conteúdo HTML ou Markdown que irá compor sua documentação. Neste exemplo usamos os dois, mas recomendamos definir apenas 1 deles.
É possível anotar todas as classes do projeto, ou parte delas com XData, criando uma documentação bem completa da sua aplicação.
Após documentar suas classes utilizando XData, vamos compilar a documentação do projeto, no terminal, execute:
docker-compose up -d --build
Veja o prompt:
Após a execução sua instância estará no ar e será possível executar a API do IRIS Publisher.
Execute http://localhost:52773/swagger-ui/index.html?url=http://localhost:52773/api/mgmnt/v1/USER/spec/crud#/default/UpdateDocConfig para definir título, informações de desenvolvedor e descrever sua aplicação, utilize o conteúdo a seguir como exemplo:
{
"SiteName":"SeuSite",
"Summary":"Resumo do meu app",
"Description":"Sobre meu app",
"DeveloperName":"Seu nome",
"DeveloperEmail": "seunome@gmail.com",
"DeveloperWebsite": "seusite.com"
}
Execute http://localhost:52773/swagger-ui/index.html?url=http://localhost:52773/api/mgmnt/v1/USER/spec/crud#/default/InitiatePublisher para gerar a documentação e iniciar o Portal de Documentação da sua aplicação.
Acesse http://localhost:8000 e veja toda a documentação no ar!
Tela inicial:
Anúncio
Angelo Bruno Braga · Fev. 3, 2021
Olá Desenvolvedores,
Como vocês sabem, o Concurso Multi-Modelo InterSystems Multi-Model já chegou ao seu fim e agora nós gostaríamos de solicitar o feedback dos desenvolvedores que infelizmente não puderam participar.
Respondam por favor algumas questões para ajudar-nos a melhorar nossos concursos !
👉🏼 Pesquisa rápida: Pesquisa do Concurso Multi-Modelo InterSystems
Ou se acharem melhor, dividam por favor suas opiniões e ideias nos comentários deste post!
Anúncio
Angelo Bruno Braga · Fev. 4, 2021
Olá Desenvolvedores,
É um prazer convidá-los, a todos, para o nosso Webinar de lançamento do Concurso InterSystems Grand Prix!
O tópico deste webinar é dedicado ao nosso mega Concurso Grand Prix. Convidamos vocês a utilizarem nossos vários recursos e tecnologias como o IntegratedML, Native API, multi-modelo, analytics and NLP, Open API e Interoperabilidade e IKO.
Neste webinar falaremos sobre os os tópicos esperados dos participantes e mostraremos como desenvolver, construir e implantar suas aplicações na Plataforma de Dados InterSystems IRIS.
Data & Horário: Segunda-feira, 8 de Fevereiro — 12:00 horário de Brasília
Palestrantes: 🗣 @Evgeny.Shvarov, Gerente do Ecossistema para Desenvolvedores da InterSystems
E alguns de nossos Gerentes de Produtos ... mantenha-se atento às novidades !
Então,
Será um prazer tê-los conosco para conversarmos em nosso webinar!
➡️ JUNTE-SE AO WEBINAR
Anúncio
Rochael Ribeiro · Mar. 12, 2021
Concurso Grand Prix da InterSystems: PARABÉNS OS VENCEDORES!Olá a todos,
O InterSystems Grand Prix Contest acabou. Foi uma competição incrível com um número recorde de aplicativos e desenvolvedores participantes!
Obrigado a todos pela participação! E agora é hora de anunciar os vencedores!
Uma tempestade de aplausos vai para esses desenvolvedores e seus aplicativos:
🏆 Nomeação de especialistas - os vencedores foram determinados por um júri especialmente selecionado:
🥇 1º lugar e $ 6.000 vão para o projeto vscode-intersystems-iris de @Dmitriy Maslennikov
🥈 2º lugar e $ 3.000 vão para o projeto iris-rad-studio de @Henrique Dias e @ José Roberto Pereira
🥉 3º lugar e US $ 2.000 vão para o projeto HealthInfoQueryLayer de @Botai Zhang
🏆 Nomeação da comunidade - um aplicativo que recebeu o maior número de votos no total:
🥇 1º lugar e US $ 3.000 vão para o projeto HealthInfoQueryLayer de @Botai Zhang
🥈 2º lugar e US $ 1.500 vão para o esquema de comparação de Dicionário do projeto de banco de dados de cache de @Weiwei Yang
🥉 3º lugar e $ 500 vão para o projeto vscode-intersystems-iris de @Dmitriy Maslennikov
E...
Desta vez, também gostaríamos de recompensar os desenvolvedores que conquistaram de 4 a 10 lugares na indicação de Expert!
10.000 pontos no Global Masters vão para estes aplicativos e seus desenvolvedores:
🏅 4º lugar: iris-image-index-demo por @ José Roberto Pereira
🏅 5º lugar: Terminal Multi-Line Command Editor por @Robert Cemper
🏅 6º lugar: Esquema de comparação de dicionário do banco de dados de cache por @Weiwei Yang
🏅 7º lugar: Criar um esquema unificado de extração de dados hospitalares com base no IRIS for Health por @Deming Xu
🏅 8º lugar: iris4health-fhir-analytics por @ José Roberto Pereira
🏅 9º lugar: iris-fhir-portal por @Henrique Dias
🏅 10º lugar: ObjectScript Kernel por @Nikita Mullin
Parabéns a todos os vencedores e participantes!
Obrigado a todos por sua atenção ao concurso e pelo esforço que você dedica em nossa mega competição!