Glossário de termos de TI para Recrutadores Tecnológicos

Por Outubro 9, 2017 #!31Qui, 16 Jul 2020 10:50:50 +0200p5031#31Qui, 16 Jul 2020 10:50:50 +0200p-10Europe/Warsaw3131Europe/Warsawx31 16am31am-31Qui, 16 Jul 2020 10:50:50 +0200p10Europe/Warsaw3131Europe/Warsawx312020Qui, 16 Jul 2020 10:50:50 +02005010507amQuinta-feira=8#!31Qui, 16 Jul 2020 10:50:50 +0200pEurope/Warsaw7#Julho 16th, 2020#!31Qui, 16 Jul 2020 10:50:50 +0200p5031#/31Qui, 16 Jul 2020 10:50:50 +0200p-10Europe/Warsaw3131Europe/Warsawx31#!31Qui, 16 Jul 2020 10:50:50 +0200pEurope/Warsaw7# Recursos Humanos, recrutamento de TI, Entrevista Técnica
Glossário de termos de TI para Recrutadores Tecnológicos

Tech language and IT terms are not easy if you are a non-coder. Still, in order to be able to recruit developers and communicate with them effectively, tech recrutadores have no choice but to understand the IT terms connected with their everyday job. So get out of your comfort zone and master the tech language. We’ve compiled this DevSkiller Tech Glossary of IT terms to make it as easy as it can be. This glossary is part of our extensive library of Recursos de RH.

We’ve gathered all the most important IT terms and put them together in an easily digestible, recruiter-friendly list divided into 10 categories. Learning and using these terms will boost your credibility in the IT recruitment process and improve your communication with developers. 

General IT terms

Linguagem de programação

is a language used by programadores to instruct a computer to perform a certain job. It’s normally a set of instructions that can be used to achieve the desired output of a computer inscrição escrito em uma certa linguagem de programação.

Código fonte

é a set of instructions and statements written by a programador using a computer programming language. This code is later translated into machine language (binary code) by a compiler. The source code is the only stage where a programmer can read and modify a computer program. Leia mais: Wikipédia

Enquadramento

is code that is already written and covers low(er) level, generic functionalities. Programmers can selectively change it with additional user-written code, thus providing application-specific software. A software framework provides a standard way to build and deploy applications. It consists of many predefined solutions for common functionalities that are used to help build software applications, products, solutions on top of it. By using a framework, developers don’t have to write all the functionalities of the software that they are working on. These functionalities are already implemented in the framework and ready to use with a single command. Frameworks can improve developer productivity as well as the quality, reliability, and robustness of new software. Thus, a knowledge of frameworks for a specific job is one of the most important skills a developer can posses. Example frameworks: Bootstrap, React, Spring Framework, Rails, Symfony. Leia mais: Wikipédia  

Biblioteca

é um conjunto de funções ou rotinas pré-definidas que um programa pode utilizar. As bibliotecas são particularmente valiosas para o armazenamento de rotinas utilizadas com frequência, pois não é necessário ligá-las explicitamente a todos os programas que as utilizam. Bibliotecas de exemplo: JQuery, Google Guava, RxJava, d3.js.

Culture IT terms

Desenvolvimento de software ágil

descreve um conjunto de valores e princípios para o desenvolvimento de software sob os quais os requisitos e soluções evoluem através do esforço colaborativo de auto-organização de equipes multifuncionais. Ele defende o planejamento adaptativo, o desenvolvimento evolutivo, a entrega antecipada e a melhoria contínua, e incentiva uma resposta rápida e flexível à mudança. Descrito em Manifesto Ágil. Leia mais: Wikipédia

DevOps

representa uma mudança na cultura de TI com foco na rápida prestação de serviços de TI através da adoção de práticas ágeis e enxutas no contexto de uma abordagem orientada ao sistema. DevOps é um dos termos de TI que enfatiza as pessoas (e a cultura) e procura melhorar a colaboração entre as equipes de operações e desenvolvimento. As implementações DevOps utilizam tecnologia - especialmente ferramentas de automação e monitoramento que podem alavancar uma infra-estrutura cada vez mais programável e dinâmica a partir de uma perspectiva de ciclo de vida. Os princípios centrais do DevOps são consistentes com muitos dos princípios e práticas da Engenharia de Confiabilidade de Sítios (ver: SRE). Pode-se ver o DevOps como uma generalização de vários princípios centrais do SRE para uma gama mais ampla de organizações, estruturas de gestão, e pessoal. Poderia equivaler a ver o SRE como uma implementação específica de DevOps com algumas extensões idiossincráticas. Leia mais: Gartner, O'Reilly Media

SRE (Site Reliability Engineering)

é uma disciplina que incorpora aspectos da engenharia de software e aplica isso a operações cujos objetivos são criar sistemas de software ultra-escalonáveis e altamente confiáveis. Ela encoraja a confiabilidade do produto, a responsabilidade e a inovação. Leia mais: Google

Role IT terms

Front-End Developer

essentially creates whatever has a digital visual presence with which people interact (client-side environment). Traditionally, a front-end developer is a person who is comfortable with both design and coding; in other words someone who is comfortable using simple design tools and is able to create a website using HTML code, estilo ele usando CSS, e torná-lo interactivo usando JavaScript.

designer da IU

ou "Interface do usuário designer, é aquele que projeta como a aplicação é do ponto de vista do usuário para permitir que os usuários interajam com a aplicação. Os designers de IU devem entender o que o desenvolvedor do front-end espera dele/dela e saber como se comunicar com eles, bem como ter habilidades de design. Muitas vezes esta pessoa não precisa ser programador de todo.  

UX designer

ou "Experiência do usuário designer é uma pessoa que ajuda a criar uma melhor experiência de utilização da aplicação. Esta pessoa simplifica a parte visual da aplicação e realça as características que são utilizadas com mais frequência. Seu trabalho é tornar a aplicação tão fácil e útil para os usuários quanto possível para aumentar a usabilidade.

Desenvolvedor de Apoio

está envolvido no processo de combinação de um servidor, uma aplicação e uma base de dados para resolver um problema (ambiente server-side). Todo este processo está solidamente enraizado na lógica, uma rede de processos e consultas que são resolvidos em segundos separados para dar ao usuário uma certa saída desejada como usuário. Eles são diferentes dos desenvolvedores front-end na medida em que o trabalho de um desenvolvedor back-end é completamente livre de qualquer desenho visual. Em vez disso, ele se baseia em raciocínio lógico e arquitetura de software que visa fornecer uma determinada saída.

Desenvolvedor Full-Stack

é aquele que se sente confortável em trabalhar tanto com tecnologias back-end como front-end. É necessária uma compreensão geral das tecnologias de cada parte do processo de desenvolvimento para um desenvolvedor front-end. Isto, naturalmente, significa que eles não serão especialistas em nenhuma área em particular. Em vez disso, eles podem oferecer uma melhor visão geral das possibilidades aplicacionais e a capacidade de preencher a lacuna entre a forma como o sistema funciona e como ele se parece e se sente para o usuário.

desenvolvedor MEAN

é um desenvolvedor que usa uma pilha de software JavaScript para construir sites dinâmicos e aplicações web. Os desenvolvedores da pilha MEAN são especialistas no uso do MongoDB, Express.js, AngularJS (ou Angular), e Node.js. Como todos os componentes da pilha de programas de suporte MEAN escritos em JavaScript, as aplicações MEAN podem ser escritas em uma linguagem para ambos os ambientes de execução do lado do servidor e do lado do cliente.

Administrador de sistemas (SysOp, sysadmin)

é uma pessoa que é responsável pela manutenção, configuração e operação confiável dos sistemas de computador, em sua maioria servidores. Leia mais: Wikipédia

Programming language and technology IT terms

Java

é uma linguagem de programação compilada, orientada a objetos, similar em sintaxe ao C++. O objetivo é deixar os desenvolvedores de aplicativos "escrever uma vez, rodar em qualquer lugar", o que significa que o código Java compilado pode rodar em todas as plataformas que suportam Java sem a necessidade de recompilação. Leia mais: DevSkiller

C

é uma linguagem de programação de computador de propósito geral e imperativa que suporta programação estruturada, escopo variável lexical e recursividade, enquanto um sistema do tipo estático impede muitas operações não intencionais. C foi originalmente desenvolvido por Dennis Ritchie entre 1969 e 1973 no Bell Labs, e usado para reimplementar o sistema operacional Unix. Desde então, tornou-se uma das linguagens de programação mais utilizadas de todos os tempos. Leia mais: Wikipédia

C++

(pronounced cee plus plus /ˈsiː plʌs plʌs/) is a general-purpose programming language. It has imperative, object-oriented and generic programming features and it provides facilities for low-level memory manipulation. Read more: Wikipédia

C#

(pronuncia-se "C sharp"), um dos termos de TI que tem uma pronúncia menos óbvia, é uma linguagem de programação que foi projetada para construir uma variedade de aplicações que rodam no .NET Framework. O C# é simples, poderoso, seguro para o tipo e orientado a objetos. Leia mais: Wikipédia

Python

é uma das linguagens de programação mais utilizadas (top 3 de acordo com Pesquisa do IEEE Spectrum). Foi lançado pela primeira vez em 1991 e desde então ganhou popularidade por ser simples de aprender, mas poderoso na resolução de problemas. A sintaxe é semelhante à família C++, mas equipada com uma variedade de soluções modernas. Leia mais DevSkiller

Visual Basic .NET

is a multi-paradigm, object-oriented programming language implemented on the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visual Basic language. Although the “.NET” portion of the name was dropped in 2005, “Visual Basic [.NET]” is used to refer to all Visual Basic languages releases since 2002 in order to distinguish between them and the classic Visual Basic. Along with Visual C#, it is one of the two main languages targeting the .NET framework. Read more: Wikipédia

PHP

(acrônimo recursivo para PHP: Hypertext Preprocessor) é uma linguagem de script de código aberto de uso geral que é especialmente adequada para o desenvolvimento web e pode ser embutida em HTML. PHP Leia mais: Wikipédia

JavaScript

(também conhecido como JS) é uma linguagem dinâmica, de alto nível, baseada em protótipos, não dactilografada. Dependendo do ambiente, o JavaScript pode ser interpretado ou compilado. É uma linguagem de programação multi-paradigma, que suporta estilos de programação orientados a objetos, imperativos e funcionais. Leia mais: DevSkiller

Perl

foi originalmente desenvolvido por Larry Wall em 1987 como uma linguagem de scripting Unix de uso geral para facilitar o processamento de relatórios. Desde então, passou por muitas mudanças e revisões. O Perl 6, que começou como um redesenho do Perl 5 em 2000, acabou por evoluir para uma linguagem separada. Ambas as linguagens continuam a ser desenvolvidas independentemente por diferentes equipes de desenvolvimento e elas emprestam liberalmente idéias uma da outra. Leia mais: Wikipédia

Ruby

é uma linguagem de programação dinâmica, reflexiva, orientada a objetos, de uso geral. Foi concebida e desenvolvida em meados dos anos 90 por Yukihiro "Matz" Matsumoto no Japão. De acordo com seu criador, Ruby foi influenciado por Perl, Smalltalk, Eiffel, Ada, e Lisp. Leia mais: Wikipédia

Swift

é uma linguagem de programação multi-paradigma de uso geral desenvolvida pela Apple Inc. para iOS, macOS, watchOS, tvOS e Linux. Leia mais: Wikipédia

R

is an open source programming language and software environment for statistical computing and graphics. It is widely used among statisticians and data miners for developing statistical software and data analysis. Leia mais: Wikipédia

Ir

(frequentemente referida como golang) é uma linguagem de programação livre e de código aberto criada no Google. Leia mais: Wikipédia

Objectivo-C

é uma linguagem de programação de propósito geral, orientada a objetos, que adiciona mensagens em estilo Smalltalk- à linguagem de programação C. Era a linguagem a principal linguagem de programação utilizada pela Apple para o OS X e iOS e suas respectivas interfaces de programação de aplicações (APIs) Cocoa e Cocoa Touch antes da introdução da Swift. Leia mais: Wikipédia

SQL

é a linguagem de programação de base de dados mais popular. Historicamente, este paradigma de programação declarativa tem sido uma característica chave para consultas ad-hoc executadas para introspecção de dados executados por usuários humanos diretamente com SQL (ao invés de uma interface de usuário). Nos tempos modernos, o SQL também está incorporado em outras linguagens de programação mais gerais, como Java, a fim de acessar dados de bancos de dados centrais. Leia mais: DevSkiller

Scala  

é uma linguagem de programação de uso geral que fornece suporte à programação funcional e um sistema de tipo estático forte. Projetada para ser concisa, muitas das decisões de design do Scala são direcionadas para atender às críticas ao Java. Leia mais: Wikipédia

Android

is the world’s most popular operating system (it’s not a programming language) dedicated mainly to celular devices. The source code was developed by Google under the Android Open Source Project (AOSP). Subsequent versions are usually released annually and are announced at Google I/O conferences. Read more: DevSkiller

Database IT terms

Base de dados

é um conjunto de informações armazenadas e utilizadas pelo software, organizadas de forma a poderem ser facilmente geridas. As bases de dados tradicionais são organizadas por campos, registros e arquivos.

Base de Dados Relacionais

é uma base de dados organizada com o modelo relacional. As relações são uma conexão lógica entre diferentes tabelas estabelecidas com base na interação entre essas tabelas. Todas as bases de dados relacionais utilizam SQL (Structured Query Language) para operar sobre dados (inserir, atualizar, carregar). Parece uma planilha de cálculo. Exemplos: Oracle, MySQL, Postgres, SQL Server. Leia mais: Wikipédia

Base de Dados NoSQL 

base de dados não-relacional ou não-SQL. Ao contrário dos bancos de dados relacionais, ele usa outras formas além de dados tabulares como coleções de valores-chave, estruturas multiníveis, gráficos, etc. Tais bases de dados são geralmente escolhidas pelo seu desempenho, escalabilidade e flexibilidade no desenho de esquemas.

teorema da PAC

states that it is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees: consistency (every read receives the most recent write or an error), availability (every solicitação receives a non-error response without the guarantee that it contains the most recent write) and partition tolerance (the system continues to operate despite an arbitrary number of messages being dropped or delayed by the network between nodes). In other words, CAP theorem states that in the presence of a network partition, one has to choose between consistency and availability. Read more: Wikipédia

ACID

é um acrónimo que consiste nos termos de TI Atomicidade, Consistência, Isolamento, Durabilidade. São um conjunto de propriedades relacionadas com os motores das bases de dados, garantindo que os dados de modificação após o acabamento serão consistentes. Leia mais: Wikipédia

User Interface IT terms

GUI/UI

ou "Interface Gráfica do Utilizador", é a parte visual do software ou um website que permite ao usuário interagir com a aplicação. Cada vez que você usa uma aplicação, você a usa clicando através do GUI.

Design Responsivo

é responsável por fazer com que a interface da aplicação se apresente bem em todos os dispositivos possíveis, como telefones, PCs ou tablets, que usamos para acessá-la.

CSS

(Cascading Style Sheets) é um método de atribuição de regras de formatação a uma página HTML que permite separar o conteúdo e apresentação de um website. Essa separação dá aos desenvolvedores web a capacidade de alterar instantaneamente a aparência de um elemento HTML específico, como posição, cores, fontes, etc., em todo um website. Leia mais: Wikipédia

Desenho do material

é a filosofia de design conceitual do Google que delineia como as aplicações devem parecer e funcionar. Ele divide tudo, desde animação, estilo até layout e dá orientações sobre padrões, componentes e usabilidade. Leia mais: Wikipédia

Bootstrap

é uma estrutura web de front-end gratuita e open-source para a concepção de sites e aplicações web. Torna muito fácil criar páginas web, capacitando os designers a selecionar a partir de uma grande coleção de elementos, comportamentos e atalhos pré-construídos. O objectivo é unificar o design e permitir que tanto os designers não técnicos como os técnicos melhorem a qualidade do seu design. Leia mais: Wikipédia

Testing IT terms

Unidade de teste

é um processo de desenvolvimento de software no qual as menores partes testáveis de uma aplicação (chamadas unidades) são individual e independentemente verificadas para ver se são bem sucedidas. A maioria das bibliotecas populares são: JUnit, Mocha, NUnit, RSpec.

Testes de integração

são um nível de teste de software onde as unidades individuais são combinadas e testadas como um grupo. Estes testes são realizados a fim de expor defeitos na interface e nas interações entre os componentes ou sistemas integrados. Ocorre após os testes unitários e antes dos testes de validação. Leia mais: Wikipédia

Testes de aceitação

são um nível de teste de software em que um sistema é testado quanto à sua aceitabilidade. O objetivo deste teste é avaliar a conformidade do sistema com os requisitos comerciais, as necessidades dos usuários e os processos comerciais. Os testes de aceitação determinam se um sistema satisfaz os critérios de aceitação e permitem que o usuário, clientes ou outra entidade autorizada determine se aceita ou não o sistema. Leia mais: Fundamentos dos Testes de Software

Testes de desempenho

são um tipo de teste de software que pretende determinar como um sistema funciona em termos de capacidade de resposta e estabilidade sob uma determinada carga de trabalho (geralmente sob tensão). Leia mais: Fundamentos dos Testes de Software

Development tools and processes IT terms

Sistema de controlo de versões

é o gerenciamento de alterações em documentos, programas de computador, grandes sites e outras coleções de informações. As alterações são normalmente identificadas por número ou código de letra, chamado de "número de revisão", "nível de revisão", ou simplesmente "revisão". Por exemplo, um conjunto inicial de ficheiros é "revisão 1". Quando a primeira alteração é feita, o conjunto resultante é "revisão 2", e assim por diante. Cada revisão é associada a um carimbo de data/hora e a pessoa que faz a alteração. As revisões podem ser comparadas, restauradas, e com alguns tipos de arquivos, fundidos. Leia mais: Wikipédia

Subversão (svn)

é outro popular sistema de controle de versões de código aberto. Em contraste com o Git, todos os desenvolvedores usam um repositório centralizado. Leia mais: Controle de versão com Subversion

Git

é um sistema de controle de versões distribuído de código aberto gratuito para acompanhar as mudanças nos arquivos de computador e coordenar o trabalho nesses arquivos entre várias pessoas. Ele é usado principalmente para gerenciamento de código fonte no desenvolvimento de software, mas pode ser usado para acompanhar as mudanças em qualquer conjunto de arquivos. Leia mais: Wikipédia

Compromisso 

Em sistemas de controle de versão, a commit is a saved change made to the source code.  Commits are usually added/deleted files or directories, changed file contents, etc. Leia mais: Wikipédia

Desenvolvimento Baseado em Tronco

é a prática de fundir todas as cópias de trabalho dos desenvolvedores em uma linha principal compartilhada várias vezes ao dia. Leia mais: TrunkBasedDevelopment

GitHub

é um popular serviço de hospedagem Git. Ele é usado principalmente para código. Além de Git, ele fornece vários recursos de colaboração, importantes termos de TI, como acompanhamento de bugs, pedidos de recursos, gerenciamento de tarefas e wikis. Website: GitHub.com. Leia mais: Wikipédia

GitLab

assim como o GitHub é um repositório de hospedagem Git que fornece wikis e funcionalidade de rastreamento de problemas. É um projeto open source desenvolvido pela GitLab Inc. Website: GitLab.com. Leia mais: Wikipédia

Bitbucket

é um serviço de hospedagem de repositório Git e Mercurial de propriedade da Atlassian. Tal como os seus congéneres, fornece várias funcionalidades de colaboração, tais como o acompanhamento de problemas e wikis. Leia mais: Bitbucket.org

IDE

ou "Integrated Development Environment" é um aplicativo editor de código projetado para ajudar os programadores a escrever, executar e depurar código. Exemplos: Eclipse, IntelliJ IDEA, Visual Studio, PHP Storm, etc

Construir ferramentas

são usados para converter código de programação escrito pelo desenvolvedor em código binário que é executável por um computador e executá-lo. Normalmente gerencia dependências externas (bibliotecas ou frameworks) que são utilizadas no projeto. Exemplos: Gradle, Maven, Rake, MSBuild, Phing.

Servidor de automação (como Jenkins, Bamboo, TeamCity)

ajuda a automatizar a parte não-humana do processo de desenvolvimento de software com integração contínua e facilitando os aspectos técnicos da entrega contínua. Leia mais: Wikipédia

Integração Contínua 

extensão da prática de Desenvolvimento Baseado em Tronco, onde cada integração é verificada por ferramentas automatizadas e testadas para dar feedback rápido e detectar erros o mais rápido possível. Leia mais: Martin Fowler

Entrega Contínua

é uma abordagem de engenharia de software em que as equipes produzem software em ciclos curtos, garantindo que ele possa ser liberado de forma confiável a qualquer momento. Isto significa que o pacote de implementação é preparado e automaticamente testado continuamente (por exemplo, uma vez por dia) e pronto para ser enviado para a produção. Leia mais: Wikipédia

Implantação contínua

é semelhante à Entrega Contínua, mas acaba com o pacote sendo implantado para a produção, em vez de apenas pronto para ser implantado.

Implantação

significa empurrar a nova versão do pacote de software para o seu ambiente alvo.

Destaque

é uma característica distintiva de um item de software (por exemplo, desempenho, portabilidade ou funcionalidade). Leia mais: Wikipédia

Lançamento 

disponibilizar o pacote da versão (funcionalidades) aos utilizadores finais.

Duto de Implantação

defines the sequence of stages that must be concluído before an application is rolled out to production. By breaking up the deployment lifecycle into stages, you collect increasing confidence, usually at the cost of extra time. Early stages reveal most problems yielding faster feedback, while later stages provide slower and more thorough probing. Stages can incluem construção, implantação, testes, arquivamento, etc. Leia mais: Martin Fowler

Bilhete / Emissão / Incidente

é um relatório em execução sobre um determinado problema, seu status e outros dados relevantes dentro de um sistema de rastreamento de problemas. Eles são normalmente criados em um ambiente de help desk ou call center e quase sempre têm um número de referência único, também conhecido como um caso, ...problema, ou registo de chamadas número. Este número é utilizado para permitir ao utilizador ou ajudar o pessoal a localizar, adicionar ou comunicar rapidamente o estado do problema ou pedido do utilizador. Leia mais: Wikipédia

Architecture IT terms

Arquitetura

na arquitetura da tecnologia da informação (especialmente computadores e redes mais recentes) é um termo aplicado tanto ao processo como ao resultado de pensar e especificar a estrutura geral, os componentes lógicos e as inter-relações lógicas de um computador, seu sistema operacional e sua rede. Leia mais: WhatIs.com

API

(Interface de Programação da Aplicação) é um conjunto de definições, protocolos, esquemas, ferramentas e práticas para comunicar com a aplicação. Para os desenvolvedores, API é o que a Interface Gráfica de Usuário é para os usuários. Ela permite que os desenvolvedores (e finalmente outras aplicações) se comuniquem com as aplicações. Leia mais: Wikipédia

REST

(Representational State Transfer) é um conjunto de diretrizes para a construção de serviços web que fornecem interoperabilidade entre computadores remotos. É focado em recursos e operações básicas (como edição, leitura e adição) relacionadas a eles. Eles são comumente usados para expor API públicas. Leia mais: Wikipédia

SOAP 

O Simple Object Access Protocol é uma forma de troca de informações estruturadas entre computadores. Em comparação com o REST, é mais formal, menos flexível e requer definição de esquema (WSDL). Leia mais: Wikipédia

Monolith

é um estilo de arquitetura baseado na execução em uma única camada de aplicação que tende a agrupar todas as funcionalidades necessárias para a arquitetura. Simplificando, significa ser composto tudo em uma só peça. O software monolítico é projetado para ser auto-contido; os componentes do programa são interconectados e interdependentes em vez de acoplados frouxamente, como é o caso de programas de software modulares. Além disso, se algum componente do programa tiver que ser atualizado, toda a aplicação tem que ser reescrita, enquanto que, em aplicações modulares, qualquer módulo separado (como um microserviço) pode ser alterado sem afetar outras partes do programa. Leia mais: WhatIs.com

Sistema distribuído

é um modelo no qual componentes localizados em computadores em rede comunicam e coordenam suas ações passando mensagens, aparecendo aos seus usuários como um sistema único e coerente. Os componentes interagem entre si para alcançar um objetivo comum. Três características significativas dos sistemas distribuídos são: simultaneidade de componentes, falta de um relógio global e falha independente dos componentes. Leia mais: Wikipédia

Arquitetura orientada a serviços (SOA)

is a style of software design based on discrete software components (services) that collectively provide functionalities of larger software architecture. A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online. In this approach, services are provided to other components by application components, through a communication protocol over a network. Basic principles of service-oriented architecture are independent of vendors, products, and technologies. Service-oriented architecture has been mainly been used and focused on a big enterprise scale. Read more: Wikipédia

Microserviços

são uma variante da arquitetura orientada a serviços (SOA) estilo arquitetônico. A idéia por trás dos microserviços é que alguns tipos de aplicações se tornam mais fáceis de construir e manter quando são decompostas em peças menores, compostáveis e que trabalham juntas. Cada componente é autónomo, desenvolvido separadamente, e a aplicação é então simplesmente a soma dos seus componentes constituintes. Isto contrasta com uma aplicação tradicional, "monolítica", desenvolvida em uma única peça. O estilo Microservices é usado por muitas organizações (como Netflix, Uber e Facebook) hoje em dia como um alterador de jogo para alcançar um alto grau de agilidade, velocidade de entrega e escala. Leia mais: Martin Fowler

CRUD 

acrônimo de Create, Read, Update, Delete. Descreve um tipo de aplicações focadas na edição simples de dados sem qualquer operação de negócio rica. Coloquialmente chamados "visualizadores de bases de dados". Leia mais: Wikipédia

Infrastructure IT terms

Infra-estrutura

refere-se ao hardware composto, software, recursos de rede e serviços necessários para a existência, operação e gestão de um ambiente de TI empresarial. Permite a uma organização fornecer soluções e serviços de TI aos seus empregados, parceiros e/ou clientes e é normalmente interno a uma organização e implantado dentro de instalações próprias.

Serviço de nuvem

é qualquer serviço disponibilizado aos utilizadores a pedido através da Internet a partir de servidores de um fornecedor de cloud computing (por exemplo, Microsoft Azure ou Amazon Web Services), em vez de ser fornecido a partir de servidores físicos no local.

Software como Serviço (SaaS)

às vezes referido como "software on-demand", é um modelo de licenciamento e entrega de software no qual o software é licenciado por assinatura e é hospedado de forma centralizada. SaaS é a forma mais familiar de serviço em nuvem para os consumidores. Os fornecedores de SaaS disponibilizam o aplicativo aos usuários através da Internet, geralmente uma interface baseada em navegador. Os clientes SaaS podem desfrutar do software sem ter que se preocupar com desenvolvimento, manutenção, suporte, atualização ou backups. A desvantagem, no entanto, é que a sua experiência em software é totalmente dependente do fornecedor SaaS, que é responsável pela estabilidade, relatórios, facturação e segurança. Exemplos de SaaS: Gmail, Dropbox, Salesforce, ou Netflix. Leia mais: Wikipédia

Plataforma como um Serviço (PaaS)

é uma categoria de serviços de computação em nuvem. O PaaS funciona a um nível inferior ao do SaaS, normalmente fornecendo uma plataforma na qual o software pode ser desenvolvido e implantado. Os provedores de PaaS abstraem muito do trabalho de lidar com servidores e dão aos clientes um ambiente no qual o sistema operacional e o software do servidor, bem como o hardware do servidor e a infra-estrutura de rede subjacentes são tratados, deixando os usuários livres para se concentrarem no lado comercial da escalabilidade, e no desenvolvimento da aplicação do seu produto ou serviço. Ele permite customers to desenvolver, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app. O PaaS torna o desenvolvimento, teste e implementação de aplicações rápido, simples e econômico. Exemplos de PaaS: Pivotal Cloud Foundry, Heroku. Leia mais: Wikipédia

Infra-estrutura como Serviço (IaaS)

é o O modelo mais básico de serviço em nuvem oferece infra-estrutura de computação - termos de TI como máquinas virtuais e outros recursos - como um serviço aos assinantes. É um nível mais baixo comparado ao PaaS. Tipicamente, o IaaS fornece hardware, armazenamento, servidores e espaço de data center ou componentes de rede. Ele permite que você aumente e diminua rapidamente com a demanda e pague apenas pelo que você usa. Isso torna o IaaS adequado para cargas de trabalho que são temporárias, experimentais ou mudanças inesperadas. Exemplos de IaaS: Amazon Web Services e o seu EC2. Leia mais: Wikipédia

Automação 

A automação de TI é a ligação de sistemas e softwares díspares de tal forma que eles se tornam auto-agentes ou auto-reguladores. Leia mais: TechTarget.com

Infra-estrutura como Código (IaC)

também referido como infra-estrutura programável, significa escrever código (que pode ser feito usando uma linguagem de alto nível ou qualquer linguagem descritiva) para gerenciar configurações e automatizar o provisionamento da infra-estrutura, além de implantações. IaC não se trata apenas de escrever scripts, mas também de utilizar práticas de desenvolvimento de software testadas e comprovadas que já estão sendo utilizadas no desenvolvimento de aplicações, por exemplo, controle de versão, testes, pequenas implantações, uso de padrões de design, etc. Em resumo, isto significa que você escreve código para provisionar e gerenciar seu servidor, além de automatizar processos. É uma abordagem de gerenciamento de infraestrutura de TI para a era da nuvem, dos microserviços e da entrega contínua. Leia mais: ThoughtWorks

Contêineres

consiste em um ambiente de tempo de execução completo: uma aplicação, mais todas as suas dependências, bibliotecas e outros binários, e arquivos de configuração necessários para executá-la, agrupados em um pacote. Os recipientes são uma solução para o problema de como fazer com que o software seja executado de forma confiável quando movido de um ambiente de computação para outro. Isso poderia ser de um laptop do desenvolvedor para um ambiente de teste, de um ambiente de encenação para a produção, e talvez de uma máquina física em um centro de dados para uma máquina virtual em nuvem privada ou pública. Leia mais: CIO

Sistema operacional

é um software de sistema que gerencia o hardware do computador e software recursos e fornece serviços comuns para programas de computador. Todos os programas de computador, excluindo o firmware, requerem um sistema operacional para funcionar. Exemplos: Microsoft Windows, macOS, Linux. Leia mais: Wikipédia

Shell

é uma interface que permite ao usuário interagir com um computador. Ela fornece uma interface de usuário para o acesso aos serviços de um sistema operacional. Em geral, as shells do sistema operacional utilizam uma interface de linha de comando (CLI) ou uma interface gráfica de usuário (GUI), dependendo do papel e da operação específica de um computador. O nome vem do fato de que os shells são camadas ao redor do kernel do sistema operacional. Leia mais: Wikipédia

Métrica

medição de uma característica particular do desempenho ou eficiência de um programa.

Diário de Bordo

é um registo do que aconteceu. Tipicamente, ajuda a diagnosticar problemas ou a obter certos conhecimentos sobre o que se passa no ciclo de vida de uma aplicação.