検索

Article
· Sept 11, 2024 4m de lecture

Utilisation des bons types de stream dans un environnement mirroré

Bonjour,

je vous soumets cet article sous forme d'ADR (Architecture decision record) que nous avons rédigé dans nos équipes.
L'objectif était d'être pertinent dans le choix de nos types de stream dans un contexte mirroré.
A noter que des éléments peuvent être utiles même dans un environnement sans miroir.

1 Comment
Discussion (1)2
Connectez-vous ou inscrivez-vous pour continuer
Article
· Sept 10, 2024 3m de lecture

第二十一章 加密 SOAP 主体 - 变体:使用可识别证书的信息

第二十一章 加密 SOAP 主体 - 变体:使用可识别证书的信息

<BinarySecurityToken> 包含序列化、base-64 编码格式的证书。可以忽略此令牌,而改用标识证书的信息;接收方使用此信息从相应位置检索证书。为此,请使用上述步骤,并进行以下更改:

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Article
· Sept 10, 2024 4m de lecture

eBPF: Parca - Continuous Profiling for IRIS Workloads

So if you are following from the previous post or dropping in now, let's segway to the world of eBPF applications and take a look at Parca, which builds on our brief investigation of performance bottlenecks using eBPF, but puts a killer app on top of your cluster to monitor all your iris workloads, continually, cluster wide!  

Continous Profiling with Parca, IRIS Workloads Cluster Wide

Parca

Parca is named after the Program for Arctic Regional Climate Assessment (PARCA) and the practice of ice core profiling that has been done as part of it to study climate change. This open source eBPF project aims to reduce some carbon emissions produced by unnecessary resource usage of data centers, we can use it to get "more for less" with resource consumption, and optimize on our cloud native workloads running IRIS.  

Parca is a continuous profiling project. Continuous profiling is the act of taking profiles (such as CPU, Memory, I/O and more) of programs in a systematic way. Parca collects, stores and makes profiles available to be queried over time, and due to its low overhead using eBPF can do this without detrimenting the target workloads.

Where

If you thought monitoring a kernel that runs multiple linux kernel namespaces was cool on the last post, Parca manages to bring all of that together in one spot, with a single pane of glass across all nodes (kernels) in a cluster.


 

Parca two main components:

  • Parca: The server that stores profiling data and allows it to be queried and analyzed over time.
  • Parca Agent: An eBPF-based whole-system profiler that runs on the nodes.

To hop right into "Parca applied", I configured Parca on my cluster with the following:
 

 kubectl create namespace parca
 kubectl apply -f https://github.com/parca-dev/parca/releases/download/v0.21.0/kubernetes-manifest.yaml
 kubectl apply -f https://github.com/parca-dev/parca-agent/releases/download/v0.31.1/kubernetes-manifest.yaml

Results in a daemonset, running the agent on all 10 nodes, with about 3-4 iris workloads scattered throughout the cluster.

Note: Parca runs standalone too, no k8s reqd!

Lets Profile

Now, I know I have a couple of workloads on this cluster of interest, one of them is a fhir workload that is servicing a GET on the /metadata endpoint for 3 pods on an interval for friends I am trying to impress at an eBPF party, the other is a straight up 2024.2 pod running the following as a JOB:

Class EBPF.ParcaIRISPythonProfiling Extends %RegisteredObject
{

/// Do ##class(EBPF.ParcaIRISPythonProfiling).Run()
ClassMethod Run()
{
    While 1 {
            HANG 10
            Do ..TerribleCode()
            Do ..WorserCode()
            Do ..OkCode()
            zn "%SYS"
            do ##class(%SYS.System).WriteToConsoleLog("Parca Demo Fired")
            zn "PARCA"
    }
}

ClassMethod TerribleCode() [ Language = python ]
{

    import time
    def terrible_code():
        time.sleep(30)
        print("TerribleCode Fired...")
    terrible_code()
}

ClassMethod WorserCode() [ Language = python ]
{
    import time
    def worser_code():
        time.sleep(60)
        print("WorserCode Fired...")
    worser_code()
}

ClassMethod OkCode() [ Language = python ]
{

    import time
    def ok_code():
        time.sleep(1)
        print("OkCode Fired....")
    ok_code()
}

}

Now, I popped a metallb service on the parca service and dove right into the console, lets take a peak at what we can observe in the two workloads.

Python Execution

So I didnt get what I wanted out of the results here, but I did get some hints on how IRIS is doing the whole python integration thing.

In Parca, I constrained on the particular pod, summed it by the same thing and selected a sane timeframe:

And here was the resulting pprof:

I can see irisdb doing the Python Execution, traces with ISCAgent, and on the right I can see basically iris init stuff in the container.  Full transparency, I was expecting to see the python methods, so I have to work on on that, but I did learn pythoninit.so is the star of the python call out show.


FHIR Thinger

Now this one does show some traces from a kernel perspective relevant to a FHIR workload.  On the left, you can see the apache threads for the web server standing up the api, and you can also see in the irisdb traces the unmarshalling of JSON.

All spawning from a thread by what is known as a `zu210fun` party!

Now, lets take a look at the same workload in Grafana as Parca exports to observability:



Not earth shattering I know, but the point being distributed profiling an IRIS app with an eBPF, in lightweight fashion, across an entire cluster... with the sole goal of and not ever having to ask a customer for a pButtons report again!

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Sept 10, 2024

Concurso de Tutoriais Técnicos InterSystems IRIS

Olá, Comunidade!

É hora do próximo concurso da Comunidade de Desenvolvedores InterSystems!

✍️ Concurso de Tutoriais Técnicos InterSystems IRIS ✍️

Crie um Tutorial** Técnico que possa ser considerado um guia para programadores de InterSystems IRIS de qualquer nível: iniciante/intermediário/sênior, de 14 de outubro a 24 de novembroO tutorial pode ser no formato de Artigo com textos e imagens e/ou Vídeo demonstrativo.

Aproveite e deixe a sua criatividade fluir! Mostre o quanto pode ser fácil e divertido criar soluções com o InterSystems IRIS.

🎁 Prêmios para todos: Um prêmio especial para cada autor participante do concurso!


Prêmios

1. Todos são vencedores no Concurso de Tutoriais Técnicos! Qualquer membro que publicar na Comunidade um tutorial durante o período da competição receberá um prêmio especial:

🎁 InterSystems - Garrafa térmica Developer Community (300 ml)

2. Prêmios de Especialistas – os tutoriais serão julgados por especialistas da InterSystems:

🥇 1º lugar: iPad Air de 11 polegadas Wi-Fi 128 GB 

🥈 2º lugar: Air Pods Pro 2ª geração

🥉 3º lugar: Echo Show: Smart Display Full HD 15,6’’ com Alexa

3. Prêmio da comunidade de desenvolvedores – tutorial com mais curtidas:

🎁  Echo Dot - Alexa Echo Dot 5ª Geração

Observação: 

  1. O autor só pode ser premiado uma vez por categoria (no total, o autor poderá ganhar dois prêmios: um para especialista e um para a comunidade)
  2. Em caso de empate, o número de votos dos especialistas para os tutoriais empatados será considerado um critério de desempate.

 

Quem pode participar?

Qualquer membro da comunidade de desenvolvedores, exceto funcionários da InterSystems. Crie uma conta!

 

Período do concurso

📝 14 de outubro a 24 de novembro: Publicação de artigos.

🗳️ 25 de novembro a 01 de dezembro: Período de votação.

🏅 02 de dezembro: Anúncio dos vencedores.

 

Publique um ou mais tutoriais durante este período. Os membros da CD podem votar em artigos publicados com curtidas – votos no prêmio da Comunidade.

Observação: quanto mais cedo você publicar o(s) tutorial(ais) mais tempo terá para coletar votos de Especialista e da Comunidade.

 

Quais são os requisitos?

❗️ Qualquer artigo escrito durante o período do concurso e que atenda aos requisitos abaixo entrará automaticamente* na competição:

  • O artigo deve ser um tutorial** sobre o tópico InterSystems IRIS. Pode ser para desenvolvedores iniciantes, intermediários ou seniores.
  • O artigo deve estar em português (incluindo inserção de código, capturas de tela, etc.).
  • O artigo deve ser 100% novo (pode ser uma continuação de um artigo existente que não esteja no concurso).
  • O artigo não pode ser uma tradução de um artigo já publicado em outras comunidades.
  • O artigo deve conter apenas informações corretas e confiáveis ​​sobre a tecnologia InterSystems.
  • O artigo deve conter a tag Tutorial.
  • Tamanho do artigo: mínimo de 400 palavras (links e códigos não são contados para o limite de palavras).
  • Artigos sobre o mesmo tópico, mas com exemplos diferentes de autores diferentes são permitidos.

Nota: Tutoriais criados por inteligência artificial serão desclassificados.

 

* Nossos especialistas moderarão os artigos. Apenas conteúdo válido será elegível para participar do concurso.

** Tutorial “é uma ferramenta de ensino/aprendizagem, podendo ser tanto um programa de computador quanto um texto, contendo ou não imagens, que auxilia o processo de aprendizagem exibindo passo a passo o funcionamento de algo.” Fonte: https://pt.wikipedia.org/wiki/Tutorial

Os tutoriais fornecem instruções passo a passo que um desenvolvedor pode seguir para concluir uma tarefa específica ou conjunto de tarefas.

 

🎯 BÔNUS EXTRAS

Desta vez, decidimos adicionar bônus que ajudarão você a ganhar o prêmio! Por favor, dê boas-vindas aos bônus:

Bônus

Nominal 

Detalhes

Bônus do Tópico

Se o seu tutorial for sobre um tópico da lista de tópicos propostos (listados abaixo), você receberá um bônus de 5 votos de especialistas. 

Bônus de Vídeo

Além de publicar o tutorial, faça um vídeo explicativo.

Bônus de Discussão

1

Artigo com a discussão mais útil, conforme decidido pelos especialistas da InterSystems. Apenas 1 artigo receberá este bônus.

Bônus de novo participante

3

Se você não participou dos concursos anteriores, seu(s) artigo(s) receberá(ão) 3 votos de especialista.

Bônus de Programação

5

Além de publicar o tutorial, publique a sua aplicação relacionada ao tutorial no InterSystems Open Exchange. E não esqueça de referenciá-la na publicação do tutorial.

 

Tópicos propostos

Aqui está uma lista de tópicos propostos que darão bônus extras ao seu artigo:

✔️ Usando IA/ML/GenAI

✔️ Usando o Vector Search

✔️ Usando o FHIR SQL Builder ***

*** FHIR SQL Builder, é um recurso do InterSystems IRIS for Health™ que permite que analistas de dados criem esquemas SQL personalizados. O Builder foi projetado para funcionar com o repositório e banco de dados multimodelo InterSystems IRIS for Health HL7® FHIR®.

Observação: Tutoriais sobre o mesmo tópico de autores diferentes são permitidos.

 

➡️ Junte-se ao Discord da InterSystems para conversar sobre as regras, tópicos e bônus.

É hora de mostrar suas habilidades de escrita e didática! Boa sorte

1 Comment
Discussion (1)2
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Sept 10, 2024

[Video] InterSystems IRIS Vector Search and the Python Ecosystem

Hi Community,

Play the new video on InterSystems Developers YouTube:

⏯ InterSystems IRIS Vector Search and the Python Ecosystem @ Global Summit 2024

InterSystems IRIS Vector Search is a new set of features that power your Generative AI applications. Learn how to get started with Vector Search and discover some examples of using it from popular Python frameworks such as LangChain and LlamaIndex. These open-source packages are popular among application developers, and there are hundreds of example projects available that can give you a head-start for your own AI application.  

Presenters:
🗣 @Thomas Dyar, Product Manager, Machine Learning, InterSystems
🗣 @Dmitry Maslennikov, Chief Technology Officer, CaretDev  

Enjoy watching, and expect more videos! 👍

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer