Developer Tools Flashcards

(10 cards)

1
Q

O que é e como funciona o AWS Management Console?

A

O que é: É a interface gráfica de usuário oficial da AWS acessada pelo navegador [web:2].
Como funciona: Permite visualizar e gerenciar recursos de nuvem de forma manual por meio de cliques e menus de navegação.
Quando usar: Ideal para iniciantes, visualização de painéis de faturamento e configuração rápida de recursos que não exigem automação [web:3].
Exemplo de uso: Fazer login para criar o seu primeiro bucket no Amazon S3 de forma manual.
Vantagens vs Desvantagens:
- Vantagem: Curva de aprendizado mínima e interface visual amigável [web:3].
- Desvantagem (vs CLI/CDK): Não escala para tarefas repetitivas, dificulta a auditoria de mudanças e possui maior risco de erro humano.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

O que é e como funciona a AWS Command Line Interface (CLI)?

A

O que é: Uma ferramenta unificada que permite interagir com os serviços da AWS via linha de comando no seu terminal [web:1].
Como funciona: Após configurar suas chaves de acesso, você digita comandos de texto (como ‘aws s3 ls’) que fazem requisições diretas à AWS [web:3].
Quando usar: Quando você precisa realizar rotinas administrativas rápidas ou escrever scripts de automação no sistema operacional local.
Exemplo de uso: Criar um script em Bash que faz o backup de um banco de dados local direto para um bucket S3 todas as noites.
Vantagens vs Desvantagens:
- Vantagem (vs Console): Permite automatizar tarefas repetitivas de forma eficiente sem precisar de interface gráfica [web:3].
- Desvantagem (vs SDK/CDK): Difícil de usar para construir lógicas de programação complexas ou gerenciar grandes infraestruturas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que é e como funciona o AWS Software Development Kit (SDK)?

A

O que é: Um conjunto de bibliotecas de programação disponibilizadas pela AWS para diversas linguagens (como Boto3 para Python, SDK para Java, etc) [web:1][web:3].
Como funciona: Ele ‘envelopa’ a comunicação com as APIs da AWS, permitindo que seu código acesse e manipule serviços de nuvem diretamente de dentro da sua aplicação [web:1].
Quando usar: Quando estiver criando aplicações nativas que precisem interagir dinamicamente com os recursos da nuvem.
Exemplo de uso: Um engenheiro de dados escreve um script em Python usando a biblioteca Boto3 para consultar dados do Amazon Athena, processá-los e gravá-los no S3.
Vantagens vs Desvantagens:
- Vantagem (vs CLI): Trata exceções, respostas e segurança de forma integrada à lógica da linguagem de programação da sua aplicação.
- Desvantagem (vs Console): Exige habilidades sólidas de programação e configuração de ambiente de desenvolvimento [web:3].

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que é e como funciona o AWS Cloud Development Kit (CDK)?

A

O que é: Um framework de Infraestrutura como Código (IaC) que permite definir recursos na AWS usando linguagens de programação reais (Python, Java, TypeScript, etc) cobrindo todos os serviços disponíveis [web:1][web:7].
Como funciona: Você escreve o código declarando a infraestrutura. O CDK então ‘sintetiza’ (converte) esse código para um template padrão do AWS CloudFormation, que fará o provisionamento real dos recursos na nuvem [web:7][web:10].
Quando usar: Ao criar arquiteturas complexas na AWS onde o uso de programação (loops, classes) acelera a criação de vários recursos repetidos ou conectados.
Exemplo de uso: Usar um loop ‘for’ em Python para provisionar 10 tópicos do SNS de uma só vez.
Vantagens vs Desvantagens:
- Vantagem (vs SAM/CloudFormation puro): Alta manutenibilidade, permite reutilizar código e poupa o trabalho de escrever exaustivos arquivos JSON/YAML [web:7][web:13].
- Desvantagem: Exige conhecimento de engenharia de software e sua abstração pode complicar pequenos ajustes de infraestrutura muito simples [web:13].

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que é e como funciona o AWS Serverless Application Model (SAM)?

A

O que é: Um framework open-source focado exclusivamente na construção e implantação de aplicações serverless (sem servidor) na AWS [web:10][web:13].
Como funciona: Você utiliza templates simplificados em JSON ou YAML para declarar recursos (como Lambda e API Gateway). No deploy, o SAM transforma essa sintaxe curta em um template completo do CloudFormation [web:7][web:10].
Quando usar: Quando sua arquitetura for primariamente voltada a microsserviços e funções sem servidor.
Exemplo de uso: Criar uma API com Lambda e testar seu código localmente na sua máquina antes de enviar para a nuvem usando a CLI do SAM, que simula a AWS localmente [web:10][web:13].
Vantagens vs Desvantagens:
- Vantagem (vs CDK): Curva de aprendizado excelente para quem conhece YAML e capacidade nativa muito poderosa para testar funções Lambda localmente [web:13].
- Desvantagem (vs CDK): Limitado ao ecossistema serverless, não sendo a melhor opção para infraestruturas corporativas amplas que usam frotas de EC2 [web:7].

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que é e como funciona o AWS CodeDeploy?

A

O que é: Uma ferramenta totalmente gerenciada para automação de deploy (implantação) contínua de software [web:8].
Como funciona: Ele captura o código ou pacote aprovado e automatiza sua instalação segura em instâncias EC2, contêineres Fargate ou funções Lambda, de acordo com regras pré-definidas [web:4][web:8].
Quando usar: Quando você precisa lançar novas versões da sua aplicação na produção sem causar tempo de inatividade para os usuários.
Exemplo de uso: Fazer a implantação automatizada em uma arquitetura ‘Blue/Green’, onde o tráfego do usuário só muda para o servidor novo se o deploy tiver sucesso.
Vantagens vs Desvantagens:
- Vantagem: Implantações consistentes e suporte nativo à reversão (rollback) automática caso o novo software falhe.
- Desvantagem (vs CodeBuild): Apenas entrega software; ele não compila código ou executa testes unitários por conta própria.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

O que é o AWS CodeCommit e qual é o seu status atual (Descontinuado)?

A

O que é: Era o serviço de controle de versão de código da AWS, funcionando como um repositório Git privado hospedado e gerenciado na nuvem [web:4][web:8].
Como funciona: Servia como o local central para o armazenamento do código-fonte, integrando-se nativamente às políticas de permissão restritas do AWS IAM.
Quando usar (Histórico): Utilizado por empresas que desejavam manter toda a sua jornada de código estritamente dentro da fronteira da AWS, sem depender de serviços externos [web:4].
Status Atual: Em meados de 2024, a AWS interrompeu o cadastro de novos clientes, descontinuando-o para novos projetos de software [web:6][web:9].
Vantagens vs Desvantagens:
- Vantagem: Extremamente seguro e aderente às permissões do ecossistema corporativo AWS.
- Desvantagem (vs GitHub/GitLab): Falta de recursos colaborativos avançados e baixa adoção da comunidade foram os motivos do seu fim.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que é e como funciona o AWS CodeBuild?

A

O que é: Um serviço gerenciado de integração contínua (CI) utilizado para compilação de código, testes automatizados e empacotamento [web:8].
Como funciona: Ao iniciar, ele provisiona um ambiente limpo (contêiner), baixa o seu código, instala dependências, roda testes e gera o artefato final (como um .zip ou imagem Docker) [web:4].
Quando usar: Sempre que quiser eliminar a necessidade de gerenciar servidores de compilação próprios, acelerando a fase de validação do código.
Exemplo de uso: Após o envio de um código PySpark para o repositório, o CodeBuild baixa o arquivo, roda testes para verificar se não há erros de sintaxe e o compacta para ser rodado no AWS Glue.
Vantagens vs Desvantagens:
- Vantagem (vs Jenkins local): Totalmente gerenciado (serverless); ele escala sob demanda de forma ilimitada e a cobrança é feita apenas pelos minutos de processamento [web:8].
- Desvantagem (vs CodeDeploy): Ele empacota, mas não cuida das estratégias complexas de instalação sem downtime em frotas de servidores produtivos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que é e como funciona o AWS CodePipeline?

A

O que é: O serviço de entrega contínua que atua como o ‘maestro’ visual de todo o seu processo de CI/CD [web:8].
Como funciona: Ele orquestra os passos de desenvolvimento. Quando detecta uma mudança no repositório, ele aciona ferramentas (como CodeBuild e CodeDeploy) em uma sequência ou fluxo aprovado predeterminado [web:4][web:8].
Quando usar: Quando desejar conectar desde o controle de versão até a infraestrutura final de maneira totalmente automatizada e monitorável.
Exemplo de uso: Criar um fluxo onde o novo código é construído no CodeBuild e, antes de ir para produção no CodeDeploy, ele pausa e espera que um engenheiro sênior clique no botão de aprovação manual.
Vantagens vs Desvantagens:
- Vantagem: Excelente capacidade de integrar diversas ferramentas da AWS ou terceiros, permitindo desenhar visualmente cada estágio da entrega de software [web:8].
- Desvantagem: Não executa ações brutas diretamente; ele depende exclusivamente de outras ferramentas para fazer compilações ou deploys reais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Como funciona o fluxo clássico de implantação CI/CD: Code > Build > Test > Provision > Deploy?

A

O que é: É o fluxo sequencial padrão de integração e entrega contínua para modernizar lançamentos de aplicações na nuvem.
Como funciona:
1. Code: O desenvolvedor submete o código para um repositório Git remoto (hoje, geralmente provedores como GitHub ou GitLab) [web:6].
2. Build & Test: O AWS CodeBuild assume o código, resolve dependências, executa testes de segurança e empacota [web:8].
3. Provision: Tecnologias de IaC (CDK, CloudFormation) certificam que os recursos (bancos de dados, redes) existam para receber a aplicação [web:7].
4. Deploy: O AWS CodeDeploy instala as novas atualizações de modo automatizado, mantendo a aplicação online [web:8].
O AWS CodePipeline unifica e gerencia a transição segura entre todas essas fases [web:8].
Quando usar: Como padrão arquitetônico para times ágeis que precisam entregar atualizações de software rapidamente com alta confiabilidade [web:4].
Exemplo de uso: Uma nova funcionalidade de tratamento de dados é codificada; após o ‘commit’, todo o pipeline flui até atualizar os servidores sem qualquer intervenção humana.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly