# data[].attributes.body
Brenno Machado
Caio Nunes
Jhonatan Talinco
Gustavo Nunes
Leticia

# data[].attributes.body
Link da imagem do container:
https://hub.docker.com/_/python

Essa imagem é utilizada para facilitar a instalação da linguagem Python e ferramentas de desenvolvimentos associadas, como o interpretador e com diversas versões e aplicabilidades.

# data[].attributes.body
https://hub.docker.com/_/ubuntu

Esta imagem é utilizada para rodar aplicações e serviços que rodem preferencialmente em sistemas gnu/linux. Ubuntu é uma distribuição gnu/linux que tem como base o Debian, outro sistema operacional gnu/linux.

# data[].attributes.body
A imagem tem apenas 5 MB de tamanho e tem acesso a um repositório de pacotes que é muito mais completo do que outras imagens baseadas em BusyBox. Isso torna o Alpine Linux uma excelente base de imagem para utilitários e até mesmo aplicativos de produção.

# data[].attributes.body
MongoDB é um software de banco de dados orientado a documentos livre, de código aberto e multiplataforma, e escrito na linguagem C++. Suas características permitem com que as aplicações modelem informações de modo muito mais natural, pois os dados podem ser aninhados em hierarquias complexas e continuar a ser indexáveis e fáceis de buscar.

# data[].attributes.attachment_link.description
MongoDB document databases provide high availability and easy scalability.

# data[].attributes.body
https://hub.docker.com/r/bitwarden/mssql

Bitwarden é uma ferramenta para gaurdar e gerenciar senhas. Com esse docker file você pode criar um serviço para se conectar de qualquer lugar e acessar uma database de senhas pessoais de forma segura.

# data[].attributes.body
https://hub.docker.com/_/perl

Perl é usada em aplicações de CGI para a web, para administração de sistemas linux e por várias aplicações que necessitam de facilidade de manipulação de strings. Permite a criação de programas em ambientes Unix, MSDOS, Windows, Macintoch, OS/2 e outros sistemas operacionais. Além de ser muito utilizada para programação de formulários www e em tarefas administrativas de sistemas UNIX - onde a linguagem nasceu e se desenvolveu

# data[].attributes.attachment_link.description
Perl is a high-level, general-purpose, interpreted, dynamic programming language.

# data[].attributes.body
PostgreSQL é um sistema gerenciador de banco de dados objeto relacional, desenvolvido como projeto de código aberto. Hoje, o PostgreSQL é um dos SGBDs (Sistema Gerenciador de Bancos de Dados) de código aberto mais avançados.

# data[].attributes.attachment_link.description
The PostgreSQL object-relational database system provides reliability and data integrity.

# data[].attributes.body
https://hub.docker.com/_/nextcloud

Nextcloud é um pacote de ferramentas para gerir arquivos online. Pode pode armazenar, editar online, usar calendários, lista de tarefas, agendas de forma privada ou compartilhada.

# data[].attributes.body
O que é middleware e para que ele serve?

Middleware é um software que fornece serviços e recursos comuns a aplicações. Gerenciamento de dados, serviços de aplicações, sistema de mensageria, autenticação e gerenciamento de APIs são recursos comumente operados por um software de middleware.

# data[].attributes.attachment_link.readable_text
Middleware é um software que fornece serviços e recursos comuns a aplicações. Gerenciamento de dados, serviços de aplicações, sistema de mensageria, autenticação e gerenciamento de APIs são recursos comumente operados por um software de middleware.

Com o middleware, os desenvolvedores podem criar aplicações com mais facilidade e eficiência, pois esse tipo de software tem o papel de conectar aplicações, dados e usuários.

Para as organizações com ambientes multicloud e em containers, o uso de middleware torna o desenvolvimento e a execução de aplicações em escala algo econômico.

A origem do middleware

O termo middleware apareceu pela primeira vez em um relatório após a conferência de Engenharia de Software da OTAN de 1968 em Garmisch-Partenkirchen, na Alemanha. A conferência, que procurou definir o campo da engenharia de software, reuniu profissionais para discutir temas como design, produção e distribuição de software.

Embora o desenvolvimento nativo em nuvem gere incontáveis benefícios, essa tecnologia também aumenta a complexidade, pois possibilita implantar aplicações em várias infraestruturas, desde sistemas on-premises a nuvens públicas. Além disso, as arquiteturas variam muito. Os desenvolvedores se veem obrigados a fazer um verdadeiro malabarismo com diversas ferramentas, linguagens e frameworks, e ainda são pressionados a fazer mais em menos tempo e a um custo reduzido.

As organizações buscam o middleware como uma maneira de administrar essa complexidade e manter o desenvolvimento rápido e econômico de aplicações. O middleware é capaz de oferecer suporte a ambientes de aplicação que funcionam de maneira estável e consistente em uma plataforma altamente distribuída.

Independentemente de você criar em um ambiente e implantar em outro, não haverá discrepâncias no funcionamento graças ao middleware subjacente às aplicações.

Em termos gerais, o middleware engloba de tudo, desde servidores web a sistemas de autenticação e ferramentas de mensageria. Veja abaixo alguns casos comuns de uso de middleware no desenvolvimento moderno.

O middleware viabiliza o uso de ambientes de execução modernos e populares em uma ampla gama de casos de uso. Desenvolvedores e arquitetos podem trabalhar com agilidade em diferentes plataformas, seguindo conjuntos de ambientes de execução, frameworks e linguagens de programação fundamentais. Além disso, o middleware oferece funcionalidades comumente utilizadas, como servidores web, servidor de SSO, sistema de mensageria e armazenamento em cache em memória.

Com o middleware, os desenvolvedores podem transformar aplicações monolíticas legadas em aplicações nativas em nuvem com mais facilidade, conferindo mais desempenho e portabilidade a ferramentas valiosas.

As ferramentas de integração de middleware conectam sistemas internos e externos críticos. Os recursos de integração, como de transformação, conectividade, composibilidade e mensageria corporativa, combinados à autenticação por SSO tornam mais fácil para os desenvolvedores estender os recursos do sistema a aplicações diferentes.

Muitos serviços de middleware podem ser acessados por meio de APIs, que são conjuntos de ferramentas, definições e protocolos para que as aplicações se comuniquem entre si. Com as APIs, é possível conectar completamente produtos e serviços diferentes usando uma camada comum.

Além das APIs, outra abordagem para compartilhar dados entre aplicações é a transmissão de dados assíncrona. O conjunto de dados é replicado em um repositório intermediário, onde os dados podem ser compartilhados entre várias aplicações. Uma ferramenta de middleware popular open source para transmissão de dados em tempo real é o Apache Kafka.

Com o middleware, desenvolvedores, arquitetos, profissionais de TI e líderes de negócios podem automatizar decisões manuais. A automação também ajuda a aprimorar o gerenciamento de recursos e aumentar a eficiência em geral.

As aplicações corporativas modernas são desenvolvidas para serem executadas em escala, seja em ambientes on-premises ou de nuvem. Para criá-las, os desenvolvedores precisam de um ambiente de aplicações com recursos fundamentais unificados. O middleware é o elemento-chave para montar tal ambiente.

Podemos pensar nesses recursos em quatro camadas, além de um conjunto de ferramentas:

Essa camada do middleware gerencia o aspecto da entrega nos ciclos de vida das aplicações de maneira uniforme. Ela fornece recursos de DevOps com CI/CD, gerenciamento de containers e service mesh.

Essa camada contém ambientes de execução para código personalizado. O middleware pode fornecer frameworks e ambientes de execução leves para ambientes de nuvem altamente distribuídos, como microsserviços, armazenamento em cache em memória para acesso rápido aos dados e sistema de mensageria para acelerar a transferência de dados.

O middleware de integração fornece serviços para conectar aplicações adquiridas e personalizadas, bem como ativos de SaaS, por meio de mensageria, integração e APIs para formar sistemas funcionais. Além disso, fornece serviços de cache e banco de dados em memória, transmissão de dados/eventos e gerenciamento de APIs.

Camada de automação de processos e gerenciamento de decisões

Essa camada final do middleware de desenvolvimento introduz funcionalidades críticas de inteligência, otimização, automação e gerenciamento de decisões.

Além das quatro camadas de middleware acima, há o conjunto de ferramentas de desenvolvimento de aplicações. Essas ferramentas permitem às equipes criar aplicações usando containers e modelos predefinidos, e facilitam o compartilhamento eficiente do código e o desenvolvimento em conjunto. O conjunto de ferramentas oferece suporte para que o desenvolvimento de aplicações e a experiência de entrega sejam mais coerentes e consistentes em ambientes on-premises e de nuvem.

# data[].attributes.attachment_link.description
Middleware é um software que fornece serviços e recursos comuns a aplicações. Gerenciamento de dados, serviços de aplicações, sistema de mensageria, autenticação e gerenciamento de APIs são recursos comumente operados por um software de middleware. Com o middleware, os desenvolvedores podem criar aplicações com mais facilidade e eficiência, pois esse tipo de software tem o papel de conectar aplicações, dados e usuários.

# data[].attributes.body
https://hub.docker.com/_/ruby

Imagem utilizada para instalação da linguagem e ferramentas associadas. Ruby é uma linguagem de programação interpretada multiparadigma, de tipagem dinamica e forte, com gerenciamento de memória automático, para ser usada como linguagem de script.

# data[].attributes.attachment_link.description
Ruby is a dynamic, reflective, object-oriented, general-purpose, open-source programming language.

# data[].attributes.body
HAProxy é ums ervićo gratuito e open-source que provê balanceador de carga e proxy TCP/HTTP entre multiplos servers.

# data[].attributes.body
Golang é uma linguagem de programação criada pela Google e lançada em código livre em novembro de 2009. É uma linguagem compilada e focada em produtividade e programação concorrente, baseada em trabalhos feitos no sistema operacional chamado Inferno.

# data[].attributes.attachment_link.description
Go (golang) is a general purpose, higher-level, imperative programming language.

# data[].attributes.body
https://hub.docker.com/r/docksal/vhost-proxy

Esta imagem automatiza o proxy do servidor virtual http / https para o Docksal.

# data[].attributes.body
https://hub.docker.com/_/openjdk

OpenJDK é um ambiente de desenvolvimento para Plataforma Java. Aplicações Java necessitam da Java Virtual Machine (JVM)

# data[].attributes.body
https://hub.docker.com/_/php

PHP é uma linguagem interpretada livre, usada originalmente apenas para o desenvolvimento de aplicações presentes e atuantes no lado do servidor, capazes de gerar conteúdo dinâmico na World Wide Web

# data[].attributes.attachment_link.description
While designed for web development, the PHP scripting language also provides general-purpose use.

# data[].attributes.body
Alpine é uma distribuição Linux. O Docker fornece a imagem do Alpine Linux de tamanho reduzido (apenas 5 MB). O Alpine Linux Docker Image tem vantagens sobre o Ubuntu Image por causa de seu tamanho relativamente menor e fornece quase todas as funcionalidades que um Ubuntu Image pode.