Pesquisar

Limpar filtro
Anúncio
Danusa Calixto · Maio 22, 2023

O 2º Concurso de Artigo técnicos em Português da InterSystems já começou!

Olá Comunidade! Estou aqui para lembrar que o 🏆 2º Concurso de Artigos Técnicos em Português da InterSystems 🏆 já começou! Para você que ainda não publicou o seu artigo ainda há tempo, mas não deixe para a última hora. Não corra o risco de perder a data final do concurso que vai até o dia 12 de junho. E para você que já postou o seu artigo, aproveite o tempo restante até o fim do concurso para publicar outros artigos e aumentar a sua chance de concorrer às premiações das duas categorias, Especialista e da Comunidade. Não fiquem de fora desta oportunidade!Boa sorte! 🍀
Anúncio
Danusa Calixto · Mar. 27

[Video] Usando o InterSystems OMOP para Transformar dados FHIR

Olá Comunidade! Você está trabalhando com dados clínicos em um ambiente de pesquisa? Veja como o InterSystems OMOP simplifica a integração e análise de dados. Usando InterSystems OMOP para Transformar Dados FHIR Neste vídeo, você ouvirá do Médico Executivo @Qi.Li sobre como os dados clínicos são convertidos do HL7® FHIR® para o formato OMOP. Você verá como isso funciona e como isso impacta a pesquisa clínica. 💡Obtenha uma introdução ao InterSystems OMOP (vídeo, 3m).
Anúncio
Angelo Bruno Braga · Dez. 8, 2022

A InterSystems publica a prévia de desenvolvedores nº 3 para InterSystems IRIS, IRIS for Health e HealthShare Health Connect 2022.3

A InterSystems anuncia outro lançamento de visualização para desenvolvedores, como parte do programa de prévias de desenvolvedores para o 2022.3.Muitas atualizações e aprimoramentos foram adicionados na versão 2022.3 e também há novos recursos, como o novo Construtor FHIR SQL, melhorias no Armazenamento Colunar, e suporte ao Oracle Linux 9. Alguns desses recursos ou melhorias podem não estar disponíveis nesta prévia do desenvolvedor atual. Espera-se que os futuros lançamentos de visualização sejam atualizados quinzenalmente e adicionaremos recursos assim que estiverem prontos. Por favor compartilhe seu feedback através da Comunidade de Desenvolvedores para que possamos construir um produto melhor juntos. O número da compilação para esta versão de prévia do desenvolvedor é 2022.3.0.555.0. Como sempre, as versões em CD vêm com pacotes de instalação clássicos para todas as plataformas compatíveis, bem como imagens de contêiner no formato de contêiner do Docker. Para obter uma lista completa, consulte o documento de Plataformas Suportadas. Pacotes de instalação e chaves de visualização estão disponíveis no site de review download de prévias do WRC ou através do site de serviços de avaliação (use a flag "Mostrar Prévia de software" para ter acesso a versão 2022.3). As imagens de contêiner para as Edições Enterprise do InterSystems IRIS e IRIS for Health e todos os componentes correspondentes estão disponíveis no Registro de Contêiner InterSystems usando os seguintes comandos: docker pull containers.intersystems.com/intersystems/iris:2022.3.0.555.0 docker pull containers.intersystems.com/intersystems/irishealth:2022.3.0.555.0 docker pull containers.intersystems.com/intersystems/iris-arm64:2022.3.0.555.0 docker pull containers.intersystems.com/intersystems/irishealth-arm64:2022.3.0.555.0 As imagens de contêiner para as Edições da Comunidade também podem ser extraídas do Registro de Contêiner InterSystems usando os seguintes comandos: docker pull containers.intersystems.com/intersystems/iris-community:2022.3.0.555.0 docker pull containers.intersystems.com/intersystems/irishealth-community:2022.3.0.555.0 docker pull containers.intersystems.com/intersystems/iris-community-arm64:2022.3.0.555.0 docker pull containers.intersystems.com/intersystems/irishealth-community-arm64:2022.3.0.555.0 Para obter uma lista completa das imagens disponíveis, consulte a documentação do ICR. Como alternativa, versões tarball de todas as imagens de contêiner estão disponíveis por meio do site de review download de prévias do WRC. IMPORTANTE: A partir das versões 2022.2, os contêineres da plataforma ARM e Intel são publicados com o mesmo nome. Então, em uma máquina Intel "docker pull containers.intersystems.com/intersystems/iris:1111.2.3.456.0" retornará a imagem intel, em uma máquina ARM esse mesmo pull retornará a imagem ARM automaticamente, sem precisar ter uma imagem especial .../iris-arm.
Anúncio
Angelo Bruno Braga · Dez. 13, 2022

A InterSystems Publica a Prévia do Desenvolvedor nº 2 para InterSystems IRIS, IRIS for Health e HealthShare Health Connect 2022.3

A InterSystems tem o orgulho de anunciar outro lançamento de visualização para desenvolvedores, como parte do Programa de Prévias de Desenvolvedor para 2022.3. Muitas atualizações e aprimoramentos foram adicionados em 2022.3 e também há novos recursos, como o novo Construtor SQL FHIR, melhorias para o Armazenamento Colunar, e suporte a plataforma Oracle Linux 9 (ainda não está neste lançamento). Espera-se que os futuros lançamentos de visualização sejam atualizados quinzenalmente e adicionaremos recursos assim que estiverem prontos. Por favor compartilhe seu feedback através da Comunidade de Desenvolvedores para que possamos construir um produto melhor juntos. O número da compilação para esta versão de prévia de desenvolvedor é 2022.3.0.545.0. Como sempre, as versões em CD vêm com pacotes de instalação clássicos para todas as plataformas compatíveis, bem como imagens de contêiner no formato de contêiner do Docker. Para obter uma lista completa, consulte o Documento de Plataformas Suportadas. Os pacotes de instalação e as chaves de visualização estão disponíveis no Site de Download de Prévias do WRC ou através do Site de Serviços de Avaliação (use a flag "Mostrar Software de Prévia" para obter acesso ao 2022.3). Imagens de contêiner para as Edições Enterprise de InterSystems IRIS e IRIS for Health e todos os componentes correspondentes estão disponíveis no Registro de Contêiner InterSystems usando os seguintes comandos: docker pull containers.intersystems.com/intersystems/iris:2022.3.0.545.0 docker pull containers.intersystems.com/intersystems/irishealth:2022.3.0.545.0 docker pull containers.intersystems.com/intersystems/iris-arm64:2022.3.0.545.0 docker pull containers.intersystems.com/intersystems/irishealth-arm64:2022.3.0.545.0 As imagens de contêiner para as Edições Community também podem ser extraídas do InterSystems Container Registry usando os seguintes comandos: docker pull containers.intersystems.com/intersystems/iris-community:2022.3.0.545.0 docker pull containers.intersystems.com/intersystems/irishealth-community:2022.3.0.545.0 docker pull containers.intersystems.com/intersystems/iris-community-arm64:2022.3.0.545.0 docker pull containers.intersystems.com/intersystems/irishealth-community-arm64:2022.3.0.545.0 Para obter uma lista completa das imagens disponíveis, consulte a documentação do ICR. Como alternativa, versões tarball de todas as imagens de contêiner estão disponíveis no Site de Download de Prévias do WRC. IMPORTANTE: A partir das versões 2022.2, os contêineres da plataforma ARM e Intel são publicados com o mesmo nome. Portanto, em uma máquina Intel, "docker pull containers.intersystems.com/intersystems/iris:1111.2.3.456.0" retornará a imagem intel, em uma máquina ARM esse mesmo pull retornará a imagem ARM automaticamente, sem a necessidade de ter uma imagem especial .../iris-arm
Anúncio
Nikolay Solovyev · jan 11, 2021

Lançamento da versão 0.2.10 do Gerenciador de Pacotes ZPM InterSystems

Lançamos uma nova versão do ZPM (Gerenciador de Pacotes) O que tem de novo na versão 0.2.10 do ZPM: 1) FileCopy Foram adicionadas algumas melhorias à tag já existente FileCopy Exemplo do arquivo module.xml <?xml version="1.0" encoding="UTF-8"?> <Export generator="Cache" version="25"> <Document name="test-binary.ZPM"> <Module> <Name>test-binary</Name> <Version>0.0.1</Version> <Packaging>module</Packaging> <SourcesRoot>src</SourcesRoot> <FileCopy Name="lib" Target="${libdir}my-lib"/> <!-- Copia o conteúdo da pasta lib para o target --> <FileCopy Name="somefile.jar" Target="${libdir}my-lib"/> <!-- Copia o arquivo desejado para o target --> </Module> </Document> </Export> Adicionadas as propriedades Target e Dest para o atributo InstallDirectory Suporte a arquivos, bem como diretórios, sem wildcards, apenas o conteúdo da pasta que deve ser copiado, ou um arquivo específico Adicionados ${libdir} e ${bindir} , installdir/lib e installdir/bin respectivamente. O uso do bindir em ambientes docker podem causar problemas de segurança durante a instalação. O uso do libdir funciona neste caso, então, é a forma recomendada para este tipo de ambiente. Isto deve funcionar (a barra final em no valor do Targeté importante) <FileCopy Name="dsw/irisapp.json" Target="${cspdir}dsw/configs/"/> E aqui deve ser o mesmo: <FileCopy Name="dsw/irisapp.json" Target="${cspdir}dsw/configs/irisapp.json"/> Se a propriedadeName finalizar com uma barra, ele fará a cópia como uma pasta. Durante a desinstalação ele irá apagar a pasta Target <FileCopy Name="dsw/" Target="${cspdir}dsw/configs/"/> E foi adicionado o suporte para empacotamento e desinstalação de módulo. Quando o módulo desinstala corretamente, apaga os arquivos previamente copiados. 2) Melhorias ao Invocar Não é mais necessária a tag wrapper Adicionados alguns novos atributos: CheckStatus (Default: false), espera que o método invocado retorne %Status, e o utiliza para checar o status da instalação. Phase, (Default: Configure), a fase em que ele deve ser executado When, (Default: After), valores: Before e After. Para executar antes ou depois da execução principal para a fase adicionado suporte à variáveis, adicionada a variável ${verbose} <Invoke Class="%EnsembleMgr" Method="EnableNamespace" Phase="Compile" When="Before" CheckStatus="true"> <Arg>${namespace}</Arg> <Arg>${verbose}</Arg> </Invoke>
Anúncio
Angelo Bruno Braga · Mar. 23, 2021

Webinar de Lançamento do Concurso de Programação Intersystems: Ferramentas de Desenvolvimento

Olá Comunidade! Estamos felizes em convidar todos os desenvolvedores para o Webinar de Lançamento do Concurso de Programação Intersystems dedicado ao Concurso de Programação InterSystems: Ferramentas de Desenvolvimento ! Neste webinar iremos conversar a respeito dos tópicos esperados para este concurso e mostraremos como desenvolver, construir e implantar suas aplicações na Plataforma de Dados InterSystems IRIS. Data & Horário: Segunda-feira, 29 de Março — 12:00 horário de Brasília Palestrantes: 🗣 @Evgeny Shvarov, Gerente do Ecossistema para Desenvolvedores da InterSystems 🗣 Time de Gerentes de Produtos InterSystems - fiquem ligados para a lista de palestrantes! Você terá a oportunidade de realizar perguntas sobre o concurso e nós ficaremos gratos em conversar com vocês em nosso webinar! ✅ REGISTRE-SE HOJE!
Pergunta
Jackson Linzmaier · jan 5, 2023

Intersystems Instance não está respondendo quando usa ADO.Net to connect

Estou tendo problemas ao usar ADO.Net para conectar-se ao InterSystems Instance. Estou usando a biblioteca InterSystems.Data.IRISClient.ADO e tentando configurar uma conexão com o código abaixo: IRISConnection IRISConnect = new IRISConnection(); IRISConnect.ConnectionString = "Server = " + host + "; Port = " + port + "; Namespace = " + Namespace + "; Password = " + password + "; User ID = " + username; IRISConnect.Open(); Isso está resultando com que o Intersystems não responda e em uma exceção do InterSystems.Data.IRISClient.IRISException. Eu consigo interagir com a API Atelier usando os mesmos detalhes de conexão na string de conexão. O IRIS precisa de alguma configuração para permitir a conexão via ADO.Net?
Artigo
Mikhail Khomenko · Mar. 2, 2021

Mergulho profundo no InterSystems Kubernetes Operator: introdução aos Operadores Kubernetes

Introdução Vários recursos nos dizem como executar o IRIS em um cluster Kubernetes, como [Implantar uma solução InterSystems IRIS no EKS usando GitHub Actions](https://community.intersystems.com/post/deploying-intersystems-iris-solution-eks-using-github-actions) e [Implantar a solução InterSystems IRIS no GKE usando GitHub Actions](https://community.intersystems.com/post/deploying-intersystems-iris-solution-gke-using-github-actions). Esses métodos funcionam, mas exigem que você crie manifestos do Kubernetes e gráficos do Helm, o que pode ser bastante demorado. Para simplificar a implantação do IRIS, a [InterSystems](https://www.intersystems.com/) desenvolveu uma ferramenta incrível chamada InterSystems Kubernetes Operator (IKO). Vários recursos oficiais explicam o uso de IKO em detalhes, como  [Novo vídeo: Intersystems IRIS Kubernetes Operator](https://community.intersystems.com/post/new-video-intersystems-iris-kubernetes-operator) e [InterSystems Kubernetes Operator](https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls?KEY=PAGE_IKO). A [documentação do Kubernetes](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) diz que os operadores substituem um operador humano que sabe como lidar com sistemas complexos no Kubernetes. Eles fornecem configurações do sistema na forma de recursos personalizados. Um operador inclui um controlador personalizado que lê essas configurações e executa as etapas definidas pelas configurações para configurar e manter corretamente sua aplicação. O controlador personalizado é um pod simples implantado no Kubernetes. Portanto, de modo geral, tudo que você precisa fazer para fazer um operador trabalhar é implantar um pod de controlador e definir suas configurações em recursos personalizados. Você pode encontrar uma explicação de alto nível sobre os operadores em: [Como explicar os operadores do Kubernetes em inglês simples](https://enterprisersproject.com/article/2019/2/kubernetes-operators-plain-english). Além disso, um [e-book gratuito da O’Reilly](https://www.redhat.com/en/resources/oreilly-kubernetes-operators-automation-ebook) está disponível para download. Neste artigo, veremos mais de perto o que são os operadores e o que os faz funcionar. Também escreveremos nosso próprio operador. Pré-requisitos e configuração Para acompanhar, você precisará instalar as seguintes ferramentas: kind $ kind --version kind version 0.9.0 golang $ go version go version go1.13.3 linux/amd64 kubebuilder $ kubebuilder version Version: version.Version{KubeBuilderVersion:"2.3.1"… kubectl $ kubectl version Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.11"... operator-sdk $ operator-sdk version operator-sdk version: "v1.2.0"… Recursos Personalizados Os recursos da API são um conceito importante no Kubernetes. Esses recursos permitem que você interaja com o Kubernetes por meio de endpoints HTTP que podem ser agrupados e versionados. A API padrão pode ser estendida com recursos personalizados, o que exige que você forneça uma Definição de Recurso Personalizado (CRD). Dê uma olhada na páginaEstender a API Kubernetes com CustomResourceDefinitions para informações detalhadas.Aqui está um exemplo de um CRD: $ cat crd.yaml apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: name: irises.example.com spec: group: example.com version: v1alpha1 scope: Namespaced names: plural: irises singular: iris kind: Iris shortNames: - ir validation: openAPIV3Schema: required: ["spec"] properties: spec: required: ["replicas"] properties: replicas: type: "integer" minimum: 0 No exemplo acima, definimos o recurso API GVK (Group/Version/Kind) como example.com/v1alpha1/Iris, com réplicas como o único campo obrigatório.Agora vamos definir um recurso personalizado com base em nosso CRD: $ cat crd-object.yaml apiVersion: example.com/v1alpha1 kind: Iris metadata: name: iris spec: test: 42 replicas: 1 Em nosso recurso personalizado, podemos definir quaisquer campos além de réplicas, o que é exigido pelo CRD.Depois de implantar os dois arquivos acima, nosso recurso personalizado deve se tornar visível para o kubectl padrão.Vamos iniciar o Kubernetes localmente usando kind e, em seguida, executar os seguintes comandos kubectl: $ kind create cluster $ kubectl apply -f crd.yaml $ kubectl get crd irises.example.com NAME CREATED AT irises.example.com 2020-11-14T11:48:56Z $ kubectl apply -f crd-object.yaml $ kubectl get iris NAME AGE iris 84s Embora tenhamos definido uma quantidade de réplica para o nosso IRIS, nada realmente acontece no momento. Isso é esperado. Precisamos implantar um controlador - a entidade que pode ler nosso recurso personalizado e realizar algumas ações baseadas em configurações.Por enquanto, vamos limpar o que criamos: $ kubectl delete -f crd-object.yaml $ kubectl delete -f crd.yaml Controlador Um controlador pode ser escrito em qualquer idioma. Usaremos Golang como linguagem "nativa" do Kubernetes. Poderíamos escrever a lógica de um controlador do zero, mas o pessoal do Google e da RedHat nos deu uma vantagem. Eles criaram dois projetos que podem gerar o código do operador que exigirá apenas alterações mínimas –kubebuilder e operator-sdk. Esses dois são comparados na página kubebuilder vs operator-sdk, bem como aqui: Qual é a diferença entre kubebuilder e operator-sdk #1758. Kubebuilder É conveniente começar nosso contato com o Kubebuilder na página do livro do Kubebuilder. O vídeo Tutorial: Zero ao Operador em 90 minutos do mantenedor do Kubebuilder também pode ajudar. Implementações de exemplo do projeto Kubebuilder podem ser encontradas nos repositórios sample-controller-kubebuilder e kubebuilder-sample-controller. Vamos construir um novo projeto de operador: $ mkdir iris $ cd iris $ go mod init iris # Cria um novo módulo, chame-o de iris $ kubebuilder init --domain myardyas.club # Um domínio arbitrário, usado abaixo como um sufixo no grupo da API Fazer scaffolding inclui muitos arquivos e manifestos. O arquivo main.go, por exemplo, é o ponto de entrada do código. Ele importa a biblioteca controller-runtime, e instancia e executa um gerenciador especial que mantém o controle da execução do controlador. Nada há mudar em nenhum desses arquivos. Vamos criar o CRD: $ kubebuilder create api --group test --version v1alpha1 --kind Iris Create Resource [y/n] y Create Controller [y/n] y … Novamente, muitos arquivos são gerados. Eles são descritos em detalhes na página Adicionando uma nova API. Por exemplo, você pode ver que um arquivo do tipo Iris foi adicionado em api/v1alpha1/iris_types.go. Em nosso primeiro CRD de exemplo, definimos o campo de réplicasnecessário. Vamos criar um campo idêntico aqui, desta vez na estrutura IrisSpec. Também adicionaremos o campo DeploymentName. A contagem de réplicas também deve estar visível na seção Status , portanto, precisamos fazer as seguintes alterações: $ vim api/v1alpha1/iris_types.go … type IrisSpec struct { // +kubebuilder:validation:MaxLength=64 DeploymentName string `json:"deploymentName"` // +kubebuilder:validation:Minimum=0 Replicas *int32 `json:"replicas"` } … type IrisStatus struct { ReadyReplicas int32 `json:"readyReplicas"` } … Depois de editar a API, passaremos para a edição do boilerplate do controlador. Toda a lógica deve ser definida no método Reconcile (este exemplo é retirado principalmente do mykind_controller.go). Também adicionamos alguns métodos auxiliares e reescrevemos o método SetupWithManager. $ vim controllers/iris_controller.go … import ( ... // Deixe as importações existentes e adicione esses pacotes         apps "k8s.io/api/apps/v1"         core "k8s.io/api/core/v1"         apierrors "k8s.io/apimachinery/pkg/api/errors"         metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"         "k8s.io/client-go/tools/record" ) // Adicione o campo Recorder para habilitar eventos Kubernetes type IrisReconciler struct {         client.Client         Log    logr.Logger         Scheme *runtime.Scheme Recorder record.EventRecorder } … // +kubebuilder:rbac:groups=test.myardyas.club,resources=iris,verbs=get;list;watch;create;update;patch;delete // +kubebuilder:rbac:groups=test.myardyas.club,resources=iris/status,verbs=get;update;patch // +kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;delete // +kubebuilder:rbac:groups="",resources=events,verbs=create;patch func (r *IrisReconciler) Reconcile(req ctrl.Request) (ctrl.Result, error) {     ctx := context.Background()     log := r.Log.WithValues("iris", req.NamespacedName) // Buscar por objetos Iris por nome     log.Info("fetching Iris resource")     iris := testv1alpha1.Iris{}     if err := r.Get(ctx, req.NamespacedName, &iris); err != nil {         log.Error(err, "unable to fetch Iris resource")         return ctrl.Result{}, client.IgnoreNotFound(err)     } if err := r.cleanupOwnedResources(ctx, log, &iris); err != nil {         log.Error(err, "failed to clean up old Deployment resources for Iris")         return ctrl.Result{}, err     } log = log.WithValues("deployment_name", iris.Spec.DeploymentName) log.Info("checking if an existing Deployment exists for this resource")     deployment := apps.Deployment{}     err := r.Get(ctx, client.ObjectKey{Namespace: iris.Namespace, Name: iris.Spec.DeploymentName}, &deployment)     if apierrors.IsNotFound(err) {         log.Info("could not find existing Deployment for Iris, creating one...") deployment = *buildDeployment(iris)         if err := r.Client.Create(ctx, &deployment); err != nil {             log.Error(err, "failed to create Deployment resource")             return ctrl.Result{}, err         } r.Recorder.Eventf(&iris, core.EventTypeNormal, "Created", "Created deployment %q", deployment.Name)         log.Info("created Deployment resource for Iris")         return ctrl.Result{}, nil     }     if err != nil {         log.Error(err, "failed to get Deployment for Iris resource")         return ctrl.Result{}, err     } log.Info("existing Deployment resource already exists for Iris, checking replica count") expectedReplicas := int32(1)     if iris.Spec.Replicas != nil {         expectedReplicas = *iris.Spec.Replicas     }      if *deployment.Spec.Replicas != expectedReplicas {         log.Info("updating replica count", "old_count", *deployment.Spec.Replicas, "new_count", expectedReplicas)          deployment.Spec.Replicas = &expectedReplicas if err := r.Client.Update(ctx, &deployment); err != nil {             log.Error(err, "failed to Deployment update replica count")             return ctrl.Result{}, err         } r.Recorder.Eventf(&iris, core.EventTypeNormal, "Scaled", "Scaled deployment %q to %d replicas", deployment.Name, expectedReplicas) return ctrl.Result{}, nil     } log.Info("replica count up to date", "replica_count", *deployment.Spec.Replicas) log.Info("updating Iris resource status")      iris.Status.ReadyReplicas = deployment.Status.ReadyReplicas     if r.Client.Status().Update(ctx, &iris); err != nil {         log.Error(err, "failed to update Iris status")         return ctrl.Result{}, err     } log.Info("resource status synced") return ctrl.Result{}, nil } // Exclui os recursos de implantação que não correspondem mais ao campo iris.spec.deploymentName func (r *IrisReconciler) cleanupOwnedResources(ctx context.Context, log logr.Logger, iris *testv1alpha1.Iris) error {     log.Info("looking for existing Deployments for Iris resource") var deployments apps.DeploymentList     if err := r.List(ctx, &deployments, client.InNamespace(iris.Namespace), client.MatchingField(deploymentOwnerKey, iris.Name)); err != nil {         return err     } deleted := 0     for _, depl := range deployments.Items {         if depl.Name == iris.Spec.DeploymentName {             // Sai da implantação se o nome corresponder ao do recurso Iris             continue         } if err := r.Client.Delete(ctx, &depl); err != nil {             log.Error(err, "failed to delete Deployment resource")             return err         } r.Recorder.Eventf(iris, core.EventTypeNormal, "Deleted", "Deleted deployment %q", depl.Name)         deleted++     } log.Info("finished cleaning up old Deployment resources", "number_deleted", deleted) return nil } func buildDeployment(iris testv1alpha1.Iris) *apps.Deployment {     deployment := apps.Deployment{         ObjectMeta: metav1.ObjectMeta{             Name:            iris.Spec.DeploymentName,             Namespace:       iris.Namespace,             OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(&iris, testv1alpha1.GroupVersion.WithKind("Iris"))},         },         Spec: apps.DeploymentSpec{             Replicas: iris.Spec.Replicas,             Selector: &metav1.LabelSelector{                 MatchLabels: map[string]string{                     "iris/deployment-name": iris.Spec.DeploymentName,                 },             },             Template: core.PodTemplateSpec{                 ObjectMeta: metav1.ObjectMeta{                     Labels: map[string]string{                         "iris/deployment-name": iris.Spec.DeploymentName,                     },                 },                 Spec: core.PodSpec{                     Containers: []core.Container{                         {                             Name:  "iris",                             Image: "store/intersystems/iris-community:2020.4.0.524.0",                         },                     },                 },             },         },     }     return &deployment } var (     deploymentOwnerKey = ".metadata.controller" ) // Especifica como o controlador é construído para assistir um CR e outros recursos  // que pertencem e são gerenciados por esse controlador func (r *IrisReconciler) SetupWithManager(mgr ctrl.Manager) error {     if err := mgr.GetFieldIndexer().IndexField(&apps.Deployment{}, deploymentOwnerKey, func(rawObj runtime.Object) []string {         // pega o objeto Deployment, extraia o proprietário...         depl := rawObj.(*apps.Deployment)         owner := metav1.GetControllerOf(depl)         if owner == nil {             return nil         }         // ...certifica-se de que é um Iris...         if owner.APIVersion != testv1alpha1.GroupVersion.String() || owner.Kind != "Iris" {             return nil         } // ...e se for assim, o retorna         return []string{owner.Name}     }); err != nil {         return err     } return ctrl.NewControllerManagedBy(mgr).         For(&testv1alpha1.Iris{}).         Owns(&apps.Deployment{}).         Complete(r) } Para fazer o registro de eventos funcionar, precisamos adicionar mais uma linha ao arquivo main.go: if err = (&controllers.IrisReconciler{ Client: mgr.GetClient(), Log: ctrl.Log.WithName("controllers").WithName("Iris"), Scheme: mgr.GetScheme(), Recorder: mgr.GetEventRecorderFor("iris-controller"), }).SetupWithManager(mgr); err != nil { Agora tudo está pronto para configurar um operador.Vamos instalar o CRD primeiro usando o Makefile de destino install: $ cat Makefile … # Instala CRDs em um cluster install: manifests kustomize build config/crd | kubectl apply -f - ... $ make install Você pode dar uma olhada no arquivo CRD YAML resultante no diretório config/crd/bases/. Agora verifique a existência do CRD no cluster: $ kubectl get crd NAME CREATED AT iris.test.myardyas.club 2020-11-17T11:02:02Z Vamos executar nosso controlador em outro terminal, localmente (não no Kubernetes) – apenas para ver se ele realmente funciona: $ make run ... 2020-11-17T13:02:35.649+0200 INFO controller-runtime.metrics metrics server is starting to listen {"addr": ":8080"} 2020-11-17T13:02:35.650+0200 INFO setup starting manager 2020-11-17T13:02:35.651+0200 INFO controller-runtime.manager starting metrics server {"path": "/metrics"} 2020-11-17T13:02:35.752+0200 INFO controller-runtime.controller Starting EventSource {"controller": "iris", "source": "kind source: /, Kind="} 2020-11-17T13:02:35.852+0200 INFO controller-runtime.controller Starting EventSource {"controller": "iris", "source": "kind source: /, Kind="} 2020-11-17T13:02:35.853+0200 INFO controller-runtime.controller Starting Controller {"controller": "iris"} 2020-11-17T13:02:35.853+0200 INFO controller-runtime.controller Starting workers {"controller": "iris", "worker count": 1} … Agora que temos o CRD e o controlador instalados, tudo o que precisamos fazer é criar uma instância do nosso recurso personalizado. Um modelo pode ser encontrado no arquivo config/samples/example.com_v1alpha1_iris.yaml. Neste arquivo, precisamos fazer alterações semelhantes àquelas em crd-object.yaml: $ cat config/samples/test_v1alpha1_iris.yaml apiVersion: test.myardyas.club/v1alpha1 kind: Iris metadata: name: iris spec: deploymentName: iris replicas: 1 $ kubectl apply -f config/samples/test_v1alpha1_iris.yaml Após um breve atraso causado pela necessidade de extrair uma imagem IRIS, você deverá ver o pod IRIS em execução: $ kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE iris 1/1 1 1 119s $ kubectl get pod NAME READY STATUS RESTARTS AGE iris-6b78cbb67-vk2gq 1/1 Running 0 2m42s $ kubectl logs -f -l iris/deployment-name=iris Você pode abrir o portal IRIS usando o comando kubectl port-forward: $ kubectl port-forward deploy/iris 52773 Vá em http://localhost:52773/csp/sys/UtilHome.csp em seu navegador. E se mudarmos a contagem das réplicas no CRD? Vamos fazer e aplicar esta mudança: $ vi config/samples/test_v1alpha1_iris.yaml … replicas: 2 $ kubectl apply -f config/samples/test_v1alpha1_iris.yaml Agora você deve ver outro pod Iris aparecer. $ kubectl get events … 54s Normal Scaled iris/iris Scaled deployment "iris" to 2 replicas 54s Normal ScalingReplicaSet deployment/iris Scaled up replica set iris-6b78cbb67 to 2 Veja as mensagens de log no terminal onde o controlador executa o relatório de reconciliação bem-sucedida: 2020-11-17T13:09:04.102+0200 INFO controllers.Iris replica count up to date {"iris": "default/iris", "deployment_name": "iris", "replica_count": 2} 2020-11-17T13:09:04.102+0200 INFO controllers.Iris updating Iris resource status {"iris": "default/iris", "deployment_name": "iris"} 2020-11-17T13:09:04.104+0200 INFO controllers.Iris resource status synced {"iris": "default/iris", "deployment_name": "iris"} 2020-11-17T13:09:04.104+0200 DEBUG controller-runtime.controller Successfully Reconciled {"controller": "iris", "request": "default/iris"} Ok, nossos controladores parecem estar funcionando. Agora estamos prontos para implantar esse controlador dentro do Kubernetes como um pod. Para isso, precisamos criar o contêiner docker do controlador e enviá-lo para o registro. Pode ser qualquer registro que funcione com Kubernetes –  DockerHub, ECR, GCR e assim por diante. Usaremos o Kubernetes local (kind), então vamos implantar o controlador no registro local usando o script kind-with-registry.sh disponível na página de Registro Local. Podemos simplesmente remover o cluster atual e recriá-lo: $ kind delete cluster $ ./kind_with_registry.sh $ make install $ docker build . -t localhost:5000/iris-operator:v0.1 # Dockerfile é autogerado por kubebuilder $ docker push localhost:5000/iris-operator:v0.1 $ make deploy IMG=localhost:5000/iris-operator:v0.1 O controlador será implantado no namespace do sistema IRIS. Como alternativa, você pode verificar todos os pods para encontrar um namespace como kubectl get pod -A): $ kubectl -n iris-system get po NAME READY STATUS RESTARTS AGE iris-controller-manager-bf9fd5855-kbklt 2/2 Running 0 54s Vamos verificar os logs: $ kubectl -n iris-system logs -f -l control-plane=controller-manager -c manager Você pode experimentar alterar a contagem de réplicas no CRD e observar como essas mudanças são refletidas na contagem de instâncias IRIS. Operator-SDK Outra ferramenta útil para gerar o código do operador é o Operator SDK. Para ter uma ideia inicial dessa ferramenta, dê uma olhada neste tutorial. Você deve instalar o operador-sdk primeiro.Para nosso caso de uso simples, o processo será semelhante ao que trabalhamos com o kubebuilder (você pode excluir/criar o kind cluster com o registro Docker antes de continuar). Execute em outro diretório: $ mkdir iris $ cd iris $ go mod init iris $ operator-sdk init --domain=myardyas.club $ operator-sdk create api --group=test --version=v1alpha1 --kind=Iris # Responda dois ‘yes’ Agora altere as estruturas IrisSpec e IrisStatus no mesmo arquivo –  api/v1alpha1/iris_types.go.Usaremos o mesmo arquivo iris_controller.go que usamos no kubebuilder. Não se esqueça de adicionar o campo Recorder no arquivo main.go.Como  o kubebuilder e o operator-sdk usam versões diferentes dos pacotes Golang, você deve adicionar um contexto na função SetupWithManager em controllers/iris_controller.go: ctx := context.Background() if err := mgr.GetFieldIndexer().IndexField(ctx, &apps.Deployment{}, deploymentOwnerKey, func(rawObj runtime.Object) []string { Em seguida, instale o CRD e o operador (certifique-se de que o kind cluster está em execução): $ make install $ docker build . -t localhost:5000/iris-operator:v0.2 $ docker push localhost:5000/iris-operator:v0.2 $ make deploy IMG=localhost:5000/iris-operator:v0.2 Agora você deve ver o CRD, o pod do operador e o(s) pod(s) IRIS semelhantes aos que vimos quando trabalhamos com o kubebuilder. Conclusão Embora um controlador inclua muito código, você viu que alterar as réplicas IRIS é apenas uma questão de alterar uma linha em um recurso personalizado. Toda a complexidade está oculta na implementação do controlador. Vimos como um operador simples pode ser criado usando ferramentas de scaffolding úteis. Nosso operador se preocupava apenas com as réplicas IRIS. Agora imagine que realmente precisamos ter os dados IRIS persistentes no disco. Isso exigiria  StatefulSet e Volumes Persistentes. Além disso, precisaríamos de um Service e, talvez, Ingress para acesso externo. Devemos ser capazes de definir a versão do IRIS e a senha do sistema, espelhamento e/ou ECP e assim por diante. Você pode imaginar a quantidade de trabalho que a InterSystems teve que realizar para simplificar a implantação do IRIS, ocultando toda a lógica específica do IRIS dentro do código do operador. No próximo artigo, veremos o IRIS Operator (IKO) em mais detalhes, e investigaremos suas possibilidades em cenários mais complexos.
Artigo
Fernando Ferreira · Mar. 4, 2021

InterSystems IRIS Reports - 2º parte (Instalação dos ambientes Designer e Servidor)

Olá comunidade, Vamos para a 2º parte do artigo InterSystems IRIS Reports. Somente relembrando na primeira parte do artigo falamos dos desafios existentes para atender a demanda das áreas de negócios, clientes ou usuários finais com a entrega de relatórios em diversos formatos e suas melhorias, e como o InterSystems IRIS Reports vem para facilitar está demanda, facilitando o desenvolvimento, a administração, o deploy de relatórios em diversos formatos, bem como a automação da distribuição por e-mail ou pastas e integração (build-in) em suas aplicações já existentes! O InterSystems IRIS Reports, powered by Logi Report se encontra disponível para download no WRC (https://wrc.intersystems.com/wrc/coDistribution.csp), lembrando que para clientes que já possuem o licenciamento InterSystems IRIS Advanced Server ou InterSystems IRIS Advanced for Health, precisam somente abrir um chamado solicitando o serial para a instalação do InterSystems IRIS Reports, sem custo adicional. Como mencionando no artigo anterior o InterSystems IRIS Reports é divido em dois componentes: Server: O ambiente servidor tem a sua finalidade de administrar as configurações e segurança. É também onde os usuários finais via browser têm acesso aos relatórios, você pode agendar execução de relatórios, aplicar filtros e modificar os relatórios disponibilizados. Designer: O ambiente designer por sua vez é onde os relatórios são desenvolvidos. É possível visualizar os relatórios antes de disponibilizar acessando diretamente a bases de dados. Quando o relatório estiver pronto, você consegue publicar para o ambiente servidor. Após entrar no WRC, selecionar a opção Components, e no campo Name, digitar: InterSystems Reports. Você tem a opção para instalar tanto o Server como o Designer no SO de sua preferência sendo: Linux/Unix, Mac ou Windows. Neste tutorial vamos fazer a instalação do Server no Linux e do Designer no Windows. Começando pelo lado servidor, vamos aos pré-requisitos: Aplicar permissão ao arquivo instalador: $ chmod +x server-xxx-linux.bin ./server-xxx-linux.bin -i console (mude server-xxx-linux.bin para o novo do arquivo correto). Nota: É necessário o X server esteja em execução. No meu caso: ./server-17-b202006051612-linux.bin -i console Neste momento você deve ler o License Agreement. Após ler o License Agreement, e caso concorde com os termos pressione Y e <Enter> Após concordar com o License Agreement, é necessário informar o User ID e a License key que você recebeu pelo chamado feito no WRC. Após a inclusão do User ID e a License Key, você escolherá o tipo da instalação. Aqui vamos optar pela Recomendada, a opção 1: Agora vamos escolher Production Database (A opção Trial Database, instala um banco de dados local somente com o propósito de testes). NOTA: Com já sabemos o InterSystems IRIS Reports é distribuído pela Logi, e seu produto é compatível com outros bancos de dados do mercado, a licença que o WRC disponibilizou só é permitido seu uso com o nosso banco de dados InterSystems IRIS Advanced Server ou InterSystems IRIS for Health. Escolhendo a opção 8 – Other Databases, vamos passar os parâmetros: NOTA: Uma recomendação é que você crie um namespace exclusivo para o InterSystems IRIS Reports Server, onde serão criadas as tabelas de gerenciamento do IRIS Reports. Caso tenha dúvidas na criação do namespace, clique aqui. JDBC URL: jdbc:IRIS://<IP DO SEU SERVIDOR IRIS>:<SuperServerPort>/<namespace> A próxima opção é o nome da classe: JDBC Driver Class Name : com.intersystems.jdbc.IRISDriver As próximas opções são usuário e senha: User Name: <entrar com o usuário> Password: <entrar com a senha> Nota: lembrando que você possui o driver no diretório de instalação do seu IRIS, ou você pode fazer o download através deste link: https://github.com/intersystems/quickstarts-java/blob/master/lib/intersystems-jdbc-3.2.0.jar O próximo passa é confirmar a inclusão da classe! A próxima opção precisamos confirmar a adição do driver do JDBC : Would you like to continue to add classes? (Y/N): Y Please specify the path of classes which you need: <Caminho>/ intersystems-jdbc-3.2.0.jar Agora a próxima etapa é escolher o JDK, podemos confirmar o encontrado pelo instalador no início da instalação ou definir um outro caminho para o JDK. Como já adicionamos o JDBC necessário, vamos escolher a opção 2 para o próximo passo. É apresentando agora um sumário da instalação, se tudo estiver certo, é só pressionar <ENTER> para dar continuidade. Ao final da instalação iram aparecer informações importantes, como caminho para acessar o IRIS Reports Server e usuário e senha iniciais. Pronto agora que a instalação está finalizada você pode escolher para que o serviço seja iniciado. Para iniciar manualmente, você precisa entrar no seu diretório de instalação e executar <diretório de instalação>/Server/bin/JRServer.sh Após iniciado, ir para o browser e chamar: http://<IP-do-servidor>:8888, digitar usuário e senha iniciais: Legal! Agora que temos o ambiente Server operacional, vamos instalar o Designer! Primeiro vamos apresentar os pré-requisitos para o ambiente Designer. Vá para a pasta onde você executou o download do instalador, e o execute! Após executar o instalar, será apresentada a tela de Welcome. Clique em Next. A seguinte etapa é ler o License Agreement, e aceitá-lo se estiver de acordo, e clicar em next. Agora é a hora de colocar o User ID e o License Key recebido pelo chamado feito ao WRC da InterSystems e clicar em Next. Aqui vamos escolher a pasta onde será instalado o Designer, e neste momento existe uma opção importante: Server for Previewing Reports, está opção dá ao desenvolvedor a oportunidade de visualizar o relatório desenvolvido em sua estação de trabalho e no browser de sua escolha. Aqui vamos utilizar está opção, pois vamos utilizá-la em um artigo posterior. Nesta etapa se faz necessário escolher o JDK que você deseja usar, lembrando que os compatíveis foram citados no início deste artigo. Aqui vamos adicionar o ClassPath, lembrando que na pasta da sua instalação do IRIS o drive JDBC encontra-se disponível, exemplo: <pasta de instalação do Iris>/dev/java/lib/JDK18 Agora é apresentado um sumário da instalação, aqui você pode revisar onde será instalado e o espaço em disco requerido. Agora é só clicar em Install. E após rodar a instalação, é apresentado o README, após a leitura do README, é só clicar em DONE, que o Desiner irá iniciar automaticamente. (Mantendo a opção marcada). Pronto o Designer está instalado: Pronto, estamos com o Server e o Designer instalado, no próximo artigo vamos colocar a “mão na massa”, vamos desenvolver relatórios em diversos formatos e disponibilizar para uso! Obrigado e até a próxima parte!
Anúncio
Angelo Bruno Braga · Maio 7, 2021

Vaga para Analista de Sistemas Sênior com conhecimento em tecnologia InterSystems em SP

Empresa: Rede Santa Catarina PRINCIPAIS RESPONSABILIDADES: Atuar na manutenção, implantação e configuração de todos os sistemas da empresa, de acordo com o seu segmento de atuação na TI; Fornecer suporte e acompanhamento nas dificuldades operacionais em cada área a qual é responsável, esclarecendo dúvidas com os usuários, visando descentralizar a demanda do atendimento do setor. Propor soluções técnicas para os problemas encontrados, através de evidências e testes em homologação que comprovem sua efetividade. Analisar solicitações efetuadas pelos clientes internos, como criação de relatórios, novas telas, desenvolvimento de documento eletrônico, com o objetivo de automatizar processos internos. Estudar melhorias e novas possibilidades sistêmicas no mercado que possam melhorar o processo conforme as áreas de suporte. Participar das reuniões estratégicas junto aos setores, visando garantir a execução e planejamento dos projetos da TI. Conhecimentos Necessários: Habilidades de análise e desenvolvimento de softwares Habilidades de Desenvolvimento baseado em especificações funcional e técnica Tecnologias da plataforma Intersystems Experiência com desenvolvimento Ensemble / HealthConnect Experiência de Programação em Intersystems COS (Cache Object Script) Experiência com Banco de Dados Oracle SQL Oracle PL/SQL Oracle Modelagem de dados Conhecimento de conceitos relativos a Barramento de Integrações Comunicação com APIs WebServices (Soap/Rest) Versionamento de Software com Git Conhecimentos Desejáveis: Operação em SO Linux Conhecimento em processos hospitalares REQUISITOS IMPRENSCÍNDIVEIS: Formação Superior em Análises de Sistemas e áreas Correlatas; Disponibilidade Imediata Quero me candidatar !
Anúncio
Angelo Bruno Braga · Set. 22, 2021

Participação InterSystems no Healthcare Innovation Show: Interoperabilidade Clínica Estratégica

Olá Desenvolvedores ! A sétima edição do HIS – Healthcare Innovation Show está trazendo discussões importantes sobre inovações aplicadas à área de saúde e como ser mais eficiente, seguro e oferecer a melhor experiência ao cliente/paciente. O evento contará com a presença de nosso diretor, Dr. Raimundo Nonato B. Cardoso, que abordará o tema:​ Interoperabilidade Clínica Estratégica O evento é online e gratuito, inscreva-se agora mesmo !
Anúncio
Pete Greskoff · Nov. 22, 2021

Aviso: Servidor Web Apache fornecido com os kits InterSystems – Relatórios de Vulnerabilidade

19 de Novembro de 2021 - Aviso: Servidor Web Apache fornecido com os kits InterSystems – Relatórios de Vulnerabilidade Os kits InterSystems incluem um servidor web Apache que permite aos cliente uma forma conveniente de interação com o Portal de Administração do Caché/IRIS sem a necessidade de se instalar um servidor web externo; entretanto este servidor web nunca deve ser utilizado em instâncias de produção, e clientes devem instalar um servidor web que atendam a suas necessidades específicas e requisitos de segurança/risco. Testes recentes indicaram alguns problemas de segurança relacionados ao servidor web Apache atualmente incluso em nossos kits. Por se tratar de tecnologia de terceiro que a InterSystems não possui controle sobre o desenvolvimento, a InterSystems recomenda que seja instalada uma versão do servidor web diretamente obtida da Apache ou outro servidor web, e que seja desabilitado o servidor web Apache incluso. A documentação de nosso produto inclui instruções de como desabilitar servidor web disponibilizado em nossos kits. Além disso, a Apache também oferece instruções para desinstalação que podem ser localizadas no site da Apache. A InterSystems planeja incluir uma versão mais recente do servidor web Apache nas próximas versões. De forma similar à versão atual, esta versão não deverá ser utilizada para as instâncias de produção. Nas versões futuras de nossos produtos, a InterSystems não incluirá ou instalará nenhum servidor web; iremos disponibilizar novas atualizações com detalhes de nossos planejamento.
Anúncio
Angelo Bruno Braga · Nov. 24, 2021

Evento: InterSystems no Scale Up 360° Big Data Europe

Olá Desenvolvedores, Não percam a participação da InterSystems no evento "ScaleUp 360° Big Data Europe" onde várias contribuições da equipe da InterSystems serão feitas sobre o tema ˜From Big Data to Smart Data˜, incluindo a participação de Carmen Logue, Gerente de Produtos Analíticos & Inteligência Artificial e Benjamin De Boe, Gerente de Produtos, na discussão sobre Adaptive Analytics. Inscreva-se agora
Anúncio
Angelo Bruno Braga · Dez. 27, 2021

Concurso de Criação de Artigo Técnico InterSystems, Edição de Natal: E os ganhadores são ......

Olá a todos, Vários conteúdos novos para ler! Graças aos nossos maravilhosos participantes do Concurso de Criação de Artigo Técnico InterSystems, Edição de Natal! 🌟 25 INCRÍVEIS ARTIGOS 🌟 E agora é chegada a esperada hora do anúncio dos melhores artigos! Conheçam os ganhadores e seus artigos: ⭐️ Premiação por Especialistas – os ganhadores são selecionados por especialistas InterSystems: 🥇 1° lugar: Data anonymization, introducing iris-Disguise por @Henry.HamonPereira 🥈 2° lugar: IntegratedML hands-on lab por @José.Pereira 🥉 3° lugar, com 2 ganhadores: VSCode-ObjectScript on GitHub por @Dmitry.Maslennikov Invite the FHIR® Accelerator Service to your Kubernetes Microservice Party por @Ron.Sweeney1582 ⭐️ Premiação pela Comunidade – o ganhador é escolhido por membros da Comunidade, artigos com a maior quantidade de likes: 🏆 Data anonymization, introducing iris-Disguise por @Henry.HamonPereira Esperamos que estas conquistas sejam excelentes presentes de Natal para todos os ganhadores! ⭐️ Desta vez também gostaríamos de premiar alguns outros autores pela quantidade de contribuições para o concurso: @Yuri.Gomes: 4 artigos! @MikhailenkoSergey: 3 artigos! Eles ganharão Apple AirPods Pro OU Amazon Kindle 8G Paperwhite OU Raspberry Pi 4 8GB com o InterSystems IRIS Community Edition ARM instalado! E... Vamos parabenizar todos nossos heróis em https://community.intersystems.com/contests/2: @Robert.Cemper1003 @Henrique.GonçalvesDias @Muhammad.Waseem @Rob.Tweed @John.Murray @alex.kosinets @Irene.Mikhaylova @Oliver.Wilms @Rizmaan.Marikar2583 OBRIGADO A TODOS VOCÊS! Vocês fizeram uma contribuição incrível para nossa Comunidade de Desenvolvedores! Feliz Natal e Ano Novo a todos! 🎅 Os prêmios estão sendo confeccionados no momento. Entraremos em contato com todos os participantes quando eles estiverem prontos para envio ![yeeeh](https://media0.giphy.com/media/l1J9yTco40EU5JzTW/giphy.gif) parabéns a todos!!!!!!!
Anúncio
Angelo Bruno Braga · Fev. 1, 2022

O InterSystems IRIS e IRIS for Health 2021.2 está agora disponível

A equipe de Plataforma de Dados está muito grata em anunciar o lançamento da versão 2021.2 da Plataforma de Dados InterSystems IRIS, InterSystems IRIS for Health e HealthShare Health Connect, que se encontra agora disponível para nossos clientes e parceiros. Novidades do Lançamento A nova versão 2021.2 da Plataforma de Dados InterSystems IRIS torna ainda mais fácil o desenvolvimento, implantação e gestão de aplicações de alta capacidade e de processos de negócio que juntam dados e silos de aplicativos. Ela possui várias funcionalidades novas, incluindo: Melhorias para desenvolvedores de interfaces e aplicativos, incluindo: Python Incorporado Produções de Interoperabilidade em Python Atualizações no Pacote de Extensões ObjectScript do Visual Studio Code Novos Business Services e Operations adicionados para permitir que os usuários definam e executem consultas SQL com o mínimo de customização de código Melhorias em Analytics e IA, incluindo: Novo comando SQL LOAD que carrega de forma eficiente fontes de dados CSV e JDBC para tabelas Melhorias no Adaptive Analytics Melhorias para tarefas Operacionais e para a Nuvem, incluindo: Novos Conectores para Nuvem que tornam simples o acesso e uso de serviços em nuvem a partir de aplicações InterSystems IRIS Melhorias no IKO que melhoram a utilização dos recursos Kubernetes Melhorias para administradores de bases de dados e sistema, incluindo: Rebalanceamento Online de Shards para automatizar a distribuição de dados através dos nós sem que seja necessária a interrupção das operações. O mecanismo de Adaptive SQL utiliza amostragem e automação rápida de blocos para coletar estatísticas avançadas e aprimorar informações de tempo de execução para um planejamento aprimorado de consultas As necessidades de armazenamento do InterSystems IRIS foram reduzidas com as novas configurações de compressão de streams e de arquivos de journal Adicionado o suporte ao TLS 1.3 e ao OpenSSL 1.1.1 utilizando bibliotecas disponibilizadas pelo sistema O novo utilitário ^TRACE registra estatísticas detalhadas de processos como acessos e leituras de cache Maiores detalhes sobre estas funcionalidades podem ser encontradas na documentação do produto: InterSystems IRIS 2021.2: Documentação e notas da versão InterSystems IRIS for Health 2021.2: Documentação e notas da versão HealthShare Health Connect 2021.2: Documentação e notas da versão Como conseguir a nova versão O InterSystems IRIS 2021.2 é um lançamento de Distribuição Contínua (CD), que é disponibilizada através dos pacotes de instalação clássicos para todas as plataformas suportadas bem como em imagens de contêineres OCI (Open Container Initiative) também conhecidos por formato em contêiner Docker. As imagens de contêineres estão disponíveis para mecanismos de tempo de execução compatíveis com o OCI para Linux x86-64 e Linux ARM64, conforme detalhado no Documento de Plataformas Suportadas. Pacotes completos de instalação para cada produto estão disponíveis a partir do site de download de produtos na versão CD do WRC. Utilizando a opção de instalação "Custom" você poderá selecionar as opções que você pretende utilizar como o InterSystems Studio e o IntegratedML, ajustando a instalação as suas necessidades. Imagens de contêineres para a Edição Enterprise, Edição Community e todos os componentes correspondentes estão disponíveis no InterSystems Container Registry através da utilização dos seguintes comandos: docker pull containers.intersystems.com/intersystems/iris:2021.2.0.649.0 docker pull containers.intersystems.com/intersystems/iris-ml:2021.2.0.649.0 docker pull containers.intersystems.com/intersystems/irishealth:2021.2.0.649.0 docker pull containers.intersystems.com/intersystems/irishealth-ml:2021.2.0.649.0 Para uma lista completa das imagens disponíveis, favor consultar a Documentação ICR. De forma alternativa, versões tarball de todas as imagens de contêineres estão disponíveis através do site de download de contêineres de produtos na versão CD do WRC. Nossas listagens correspondentes nos principais provedores em nuvem serão atualizadas nos próximos dias. Compartilhando suas experiências Estamos animados em ver esta versão ser disponibilizada e estamos ansiosos para ouvir suas experiências no uso desta nova versão. Não hesitem em entrar em contato através de seu gestor de conta ou através da Comunidade de Desenvolvedores com qualquer comentário sobre a tecnologia ou sobre os casos de uso que você está trabalhando com ela. Para novas funcionalidades e produtos selecionados nós disponibilizamos os Programas de Acesso Antecipado para que nossos usuários possam avaliar os mesmos antes de seu lançamento oficial. Através destas iniciativas focadas nós conseguimos aprender com nosso público alvo e garantir que os novos produtos atendam a suas necessidades no momento de seu lançamento oficial. Entrem em contato por favor através de seu gestor de conta ou acompanhem a Comunidade de Desenvolvedores no caso de estarem interessados em participar de alguma destas iniciativas.