O que é uma pilha de tecnologia?
Para ajudá-lo a entender por que é essencial ter as camadas certas em sua pilha de tecnologia, esta página abordará o assunto:
- De onde vêm as pilhas de tecnologia?
- Camadas da pilha de tecnologia
- Quais são as diferentes pilhas de tecnologia?
- Pilhas de tecnologia do Couchbase
- Conclusão
Uma pilha de tecnologia (tech stack) permite que você combine software, ferramentas e serviços para criar um aplicativo da Web ou móvel. Cada camada de uma pilha de tecnologia típica é responsável por um tipo separado de tarefa, seja apresentação, lógica de aplicativo ou persistência.
De onde vêm as pilhas de tecnologia?
O conceito de uma pilha de tecnologia existe desde os primórdios da Web. As primeiras páginas da Web eram simples "conteúdo estático". Para recuperar o conteúdo, as páginas da Web usavam um método rudimentar de chamar um programa externo chamado Interface de gateway comum (CGI). Um script CGI permitiria que o servidor Web executasse um programa para processar as solicitações dos usuários. Muitos desses primeiros programas foram criados manualmente na linguagem de programação C.
Quase imediatamente, os primeiros desenvolvedores da Web começaram a experimentar estruturas e abstrações melhores para a criação de software da Web. O Perl surgiu como uma linguagem mais direta e acessível para escrever esse código. Mas ainda não era bem uma pilha de tecnologia.
Após mais inovação e evolução, começaram a surgir várias pilhas de tecnologia. Em vez de escrever HTML manualmente, bibliotecas e estruturas de modelos de páginas para o camada de apresentação A lógica começou a se tornar comum enquanto o restante do programa era de forma livre. Coisas como bancos de dados relacionais forneceram uma maneira clara de gerenciar e expressar o acesso aos dados para os desenvolvedores de aplicativos, de modo que o camada de persistência e surgiram conceitos como pools de conexão.
Camadas da pilha de tecnologia
As pessoas usam nomes diferentes para as mesmas camadas da pilha, portanto, para nossos propósitos, vamos nos referir a elas simplesmente como camada superior, camada intermediária e camada inferior. O mais importante é a tarefa pela qual cada camada é responsável, e analisaremos essas responsabilidades de cima para baixo.
Camada superior da pilha de tecnologia: Apresentação
A camada de apresentação de uma pilha de tecnologia é onde ocorrem a formatação e a localização. Por exemplo, um site pode ter um logotipo e um conjunto de cores, mas, à medida que os estilos mudam, você pode querer alterar a aparência. Outro exemplo da camada de apresentação em ação é a personalização. Se uma solicitação do navegador vier de um país onde os usuários desejam que as temperaturas sejam apresentadas em Celsius em vez de Fahrenheit, as informações fornecidas serão diferentes.
Camada intermediária da pilha de tecnologia: Lógica do aplicativo
A lógica do aplicativo fica na camada intermediária de sua pilha de tecnologia. Por exemplo, a solicitação do navegador da Web pode incluir um local (por exemplo, Austin, Texas) e um fuso horário (Central) que a lógica do aplicativo precisa resolver na consulta correta ao banco de dados.
A camada intermediária pode ser distribuída usando uma arquitetura baseada em microsserviços, que permite que várias partes do aplicativo sejam implementadas de forma independente por meio de interfaces de serviço bem descritas.
Camada mais baixa da pilha de tecnologia: Persistência (ou banco de dados)
A camada de persistência é normalmente a camada mais baixa da pilha e pode ser tão simples quanto um conjunto de arquivos em um sistema de arquivos. O gerenciamento de dados em um sistema de arquivos básico, no entanto, exige que o desenvolvedor desenvolva maneiras de indexar e acessar os dados por conta própria - uma tarefa assustadora.
Em vez disso, a maioria dos desenvolvedores escolhe um banco de dados. Originalmente, o banco de dados preferido era o banco de dados relacional porque eram os mais comuns. No entanto, com o tempo, Bancos de dados NoSQL tornaram-se outra opção popular para os desenvolvedores devido à flexibilidade, à escalabilidade e aos recursos mais amplos do NoSQL.
Quais são as diferentes pilhas de tecnologia?
A pilha LAMP (composta por Linux, Apache, MySQL e PHP) tornou-se uma das primeiras pilhas populares. O Linux se tornou o sistema operacional mais usado; o Apache, o servidor da Web mais usado; o MySQL, o banco de dados mais usado; e o PHP, a linguagem de programação e de modelos de página mais usada.
Exemplos de pilha de tecnologia
A lista a seguir é apenas um exemplo de como as pilhas de tecnologia podem ser diversas e interoperáveis:
WIMP
Sistema operacional Windows, servidor da Web IIS, banco de dados MySQL e camada de aplicativo PHP
MAMP
Mac OS, servidor da Web Apache, banco de dados MySQL e camada de aplicativo PHP
FAMP
Sistema operacional FreeBSD, servidor da Web Apache, banco de dados MySQL e camada de aplicativos PHP
LAPP
Sistema operacional Linux, servidor da Web Apache, banco de dados PostgreSQL e camada de aplicativo PHP
LNMP
Sistema operacional Linux, servidor da Web NGINX, banco de dados MySQL e camada de aplicativo PHP
MÉDIA
Banco de dados MongoDB, controlador de aplicativo Express.js, apresentação de aplicativo Angular.js e Node.js
LYME
Sistema operacional Linux, servidor da Web Yaws, banco de dados Mnesia e camada de aplicativos Erlang
LYCE
Sistema operacional Linux, servidor da Web Yaws, banco de dados CouchDB e camada de aplicativo Erlang
ELK
Agregador de estatísticas/busca do Elasticsearch, recuperação de registros do Logstash, apresentação gráfica do Kibana
Jamstack
Apresentação JavaScript, APIs para acesso a dados e marcação (conteúdo estático ou de modelo)
Pilhas de tecnologia do Couchbase
Como uma plataforma de banco de dados em nuvem, Couchbase desempenha um papel fundamental nas pilhas de tecnologia. Como integra um conjunto de recursos de acesso e gerenciamento de dados normalmente exigidos pelos desenvolvedores de aplicativos, o Couchbase facilita o dimensionamento e o crescimento.
A pilha CEAN
Essa pilha usa Couchbase, Express, Angular.js e Node.js. É semelhante à pilha MEAN, mas usa o Couchbase como banco de dados. A CEAN tem até mesmo uma ferramenta de andaimes de projeto orientada pela comunidade.
A pilha COdE
Essa pilha usa o Couchbase para o banco de dados, o Ottoman.js para o mapeador de documentos de objetos (software que facilita o mapeamento de estruturas de programação em bancos de dados) e o Express.js para o roteamento de aplicativos.
Conclusão
Pode ser útil pensar em abstrair o aplicativo ou serviço que você está criando para seus usuários como uma pilha de tecnologia. Essa é uma boa maneira de considerar cuidadosamente cada um dos componentes individuais e, o que é mais importante, ao pensar nas responsabilidades de cada camada separadamente, você poderá criar uma arquitetura de sistema mais flexível com componentes mais intercambiáveis.