Arquivo anual 28 de agosto, 2019

Notas da AWSome Day – Conferência Online

Nesse artigo vou apresentar alguns pontos interessantes que observei na Webinar da conferência online da Amazon, a AWSome Day que participei em 28 de Agosto de 2019.

A Amazon Web Services (AWS) preza muito pela qualidade dos serviços, como a segurança e 99,99% de operabilidade de serviço ao cliente, isso significa que a AWS funciona quase 100% do tempo e que é um feito muito relevante para quem que quer migrar de um Datacenter físico para um Datacenter em nuvem.

Armazenamento

Se você quer um serviço para armazenar dados, o serviço S3 (Amazon Simple Storage Service) oferece armazenamento de objetos com estabilidade, disponibilidade, segurança e performance. Eu já havia utilizado o S3 para efeito de estudo e achei bastante simples e prático a forma de como você controla o seu Bucket. O Bucket é onde você armazena os objetos, lá conseguimos fazer o controle desde o acesso para um usuário até para o acesso público de um determinado objeto. Já é comum encontrarmos pela Internet arquivos armazenados no S3.

Processamento

A AWS traz uma flexibilidade e um custo efetivo em relação ao processamento. Abaixo temos alguns serviços computacionais bem interessantes.

O EC2 (Elastic Computer Cloud) é um web service que disponibiliza uma capacidade computacional segura e redimensionável na nuvem, você pode utilizar o EC2 para qualquer serviço, seja uma aplicação Web, servidor de banco de dados, etc, ou seja, o EC2 é uma VM, uma Máquina Virtual que pode ser acessado em qualquer lugar do mundo. Eu já criei uma VM e achei bem fácil a sua criação, só é preciso se atentar nos requisitos do seu servidor, como por exemplo, a capacidade de armazenamento, memória, CPU e etc. Todas essas informações estão bem explicita quando é iniciado uma nova criação, lá você pode escolher em qual sistema operacional será utilizada, como Windows Server e até mesmo uma distribuição Linux da própria Amazon.

O Lambda é um executor de diagnóstico de código e pode ser também utilizado como ferramenta de automação, sem precisar de um servidor, ou seja, permite que você execute códigos sem provisionar ou gerenciar servidores.

Se você quer começar com a tecnologia em nuvem e não sabe por onde começar, o serviço Lightsail oferece uma plataforma de fácil configuração e gerenciamento para aplicações como um site que você pode subir em questão de minutos ou um simples aplicativo.

O EBS (Elastic Block Store) são os discos persistentes que tem o ciclo de vida bastante customizado, você pode fazer alterações nos discos a qualquer momento sem parar o serviço. Roda com disco magnético comum como o HDD e também é claro com SSD. Esses discos também têm Snapshots que vale como backup, suporta criptografia de disco, também consegue aumentar a capacidade, porém não consegue diminuir, pois pode corromper ou até mesmo perder os dados.

O ELB (Elastic Load Balancing) serviço auto gerenciado, ou seja, o cliente não precisa se preocupar com o gerenciamento. Ele auxilia no desenvolvimento de arquitetura e para entender que tipo de arquitetura usar, ele dispõe de três tipos de balanceador:

  • ALB (Application Load Balancer): HTTP e HTTPS – Atua na camada 7*: nível de solicitação individual;
  • NLB (Network Load Balancer): TCP – Atua na camada 4*: nível de conexão;
  • CLB (Classic Load Balancer): balanceador clássico – Atua nas camadas 3 e 4*: para a camada 3 o nível é o de controle da operação.

*As camadas são baseadas no modelo OSI (Open System Interconnection).

Auto Scaling é o serviço que faz escala automática, horizontal, cria novas estancias quando necessário e coloca dento de Clusters ou elimina as estancias quando não mais necessário. Um exemplo bem prático é a Black Friday que pode ser feito um agendamento para este período para suprir a necessidade de demanda para este único dia.

“Escabilidade é um dos principais fatores de economia quando o assunto é Cloud Computing (Computação em Nuvem).”

RDS (Relational Database Service) é o banco de dados relacional da AWS, um fato interessante é a engine Aurora que é mais performática do que as outras engines como o MySQL, a Oracle e etc, isso porque ela foi desenvolvida dentro da estrutura AWS.

Já o DynamoDB é o banco não relacional, ele é baseado em chave e valor, totalmente gerenciado, ou seja, zero de gerenciamento pelo usuário, cria a tabela e já sai usando. Um caso comum são as escritas e leituras massivas em aplicações Web; Mobile Apps; Internet of Thing; Ad Tech; e Gaming.

Segurança

A AWS é responsável pela segurança completa de toda a estrutura da nuvem, já a estrutura criada pelo cliente é compartilhada com a AWS, ou seja, a AWS faz a segurança em parte da aplicação e o cliente o restante, como segurança em seus códigos, bancos e etc.

A AWS tem vários certificados de segurança para manter a confiabilidade em seus Datacenters e o cliente pode herdar estas certificações, porém é preciso fazer com que o conteúdo e aplicação do cliente esteja com o formato e estrutura de acordo com a da AWS.

O IAM (Identity and Access Management) é o serviço chave para a segurança da AWS que é o gerenciamento de identidade e controle de acessos. É uma ferramenta que controla os administradores na nuvem. O usuário root quando criado não deve ser utilizado, ele é um usuário ilimitado, tem o poder da criação, mas também tem todo o poder de destruição, não existe rollback para qualquer ação de um root, deve ser utilizado os usuários IAM que são justamente os usuários limitados (melhores práticas).

Usuário programático é aquele não humano que pode ser usado através de uma chave de acesso, sem usuário e senha.

Usuário de console é o humano com acesso através de usuário e senha e tem o poder de gerenciamento dos serviços caso tenha permissão.

A política de permissão no IAM é totalmente granular, ou seja, se você quiser dar permissão em uma aplicação qualquer para um usuário ter somente permissão de leitura e somente em horário comercial, com esta política você pode atribuir a permissão para o usuário de forma bastante personalizada.

Role pode ser usada para dar permissão a um usuário ou uma instancia EC2 temporariamente (um cenário mais comum seria de contas externas), a Role é um conjunto de permissões.

Melhores práticas:

  • Deletar o access key do usuário root;
  • Dar permissão a usuários somente para cumprir seu papel;
  • Ativar a autenticação MFA (Multi-Factor Authentication) que adiciona uma camada extra de proteção ao usuário;
  • Usar grupos de IAM que já vem criadas;
  • Aplicar uma política de senha no IAM.

É extremante importante monitorar as atividades das contas AWS.

“O que não pode ser monitorado, não pode ser controlado.”

O CloudTrail é um loger, um serviço de governaça, conformidade, auditoria operacional e de riscos. Ele monitora todas as atividades que ocorrem na AWS, sabendo que tudo na AWS é uma API, o CloudTrail é o famoso “olho que tudo ver”.

Recurso de Segurança

Consultor automatizado, o Trusted Advisor, ele envia insights de segurança, fala se você está dentro das boas práticas de segurança, fala se você está utilizando corretamente os grupos de usuários IAM e entre outas.

O GuardDuty é um serviço um pouco mais sofisticado, ele é baseado em Machine Learning, ele observa tudo, de fora para dentro, avalia se alguma ação esteja fora de uma comportamento normal, como por exemplo, alertar um cenário incomum onde um usuário acessa a AWS em vários lugares diferentes ao mesmo tempo.

Melhores Práticas de Arquitetura

Tudo começa com Well-Architected Framework que são conjuntos de boas práticas e de questões relevantes para o tipo de arquitetura que o cliente poderá usar, até chegar em um padrão para o cliente. Têm-se 5 pilares fundamentais para seguir:

  • Segurança;
  • Confiabilidade;
  • Eficiência e Desempenho;
  • Excelência Operacional.

Para saber mais sobre boas práticas de arquitetura, acesse o endereço abaixo:

https://aws.amazon.com/pt/architecture/well-architected/

Preço e Suporte

Paga pelo consumo, paga por hora, paga menos quando reserva o recurso (24/7 a AWS faz um preço fechado pelo período de uso), paga menos quando se usa mais (passou dos 50 teras, o valor do tera acaba ficando menor), paga menos conforme o crescimento da AWS, e dependendo do perfil na AWS, o preço pode ser customizado para cada situação específica.

Para saber o preço de cada serviço da AWS basta entrar com o endereço abaixo e digitar o nome do serviço. Exemplo:

https://aws.amazon.com/pt/NomeDoServiço/pricing/

https://aws.amazon.com/pt/ec2/pricing/

Camada grátis na AWS é chamada de “Free Tier” que não tem custo em alguns serviços básicos como:

VPS (Virtual Private Server); Elastic Beanstalk; AIM; entre outros.

A AWS fornece uma calculadora que é chamada de TCO (Total Cost of Ownership) que te ajuda a simular, colocando os serviços e especificações de sua aplicação gerando o valor total ou quanto você iria pagar para utilizar os serviços em nuvem.

Endereço da calculadora AWS:

https://awstcocalculator.com

Suporte

Quando você cria uma conta na AWS, você já adquire um suporte básico, abaixo temos os seguintes tipos de suporte:

  • Desenvolvedor;
  • Business;
  • Empresarial.

No link abaixo, você consegue fazer a comparação de cada tipo de suporte.

https://aws.amazon.com/pt/premiumsupport/plans/

Chegamos ao fim desse artigo! Com um pensamento um pouco teórico, como é ter um servidor físico e em nuvem? Para essa pergunta, talvez surja um novo artigo para fomentar um pouco mais sobre Cloud Computing na Amazon Web Services.

Scrum é uma metodologia ágil?

Para entendermos o Scrum é preciso esclarecer que ele não é uma metodologia ágil, mas um framework no qual pode ser incluido diversos processos ou técnicas. A metodologia ágil é a filosofia, é a essência para alguns frameworks que existem por aí e o mais famoso deles é o próprio Scrum. Por isso, quando alguém te falar que o Scrum é uma metodologia ágil, não acredite.

Bom, antes de falarmos sobre o que é o Scrum, é preciso falarmos primeiro do “Manifesto Ágil”. Concebido em 2001 por 17 pessoas que compartilhavam o mesmo pensamento, ou melhor, o mesmo problema em comum que era a ausência de um guia, uma filosofia que explicasse para as pessoas exatamente o que se tratava o termo “ágil”, essas pessoas se reuniram e criaram os principais conceitos da metodologia ágil.

Para saber mais sobre o Manifesto Ágil e sua história, acesse o site oficial agilemanifesto.org – leitura muito recomendável para quem quer entrar no mundo do Scrum ou qualquer outro framework ágil.

E para resumir um pouco o Manifesto Ágil, foram criados 12 Princípios que são a base da metodologia ágil (podem ser vistos no site oficial) e 4 Valores marcantes que são:

Indivíduos e interações mais que processos e ferramentas

Software em funcionamento mais que documentação abrangente

Colaboração com o cliente mais que negociação de contratos

Responder a mudanças mais que seguir um plano

É notável que os itens da esquerda têm mais valor de importância do que os itens da direita e isto é o que torna a metodologia ágil uma solução melhor do que os métodos tradicionais, tornando a aplicação do método ágil mais simples. Os itens da direita são ainda muito importantes, o uso de métodos ágeis não exclui documentação, processos e etc, mas tem como propósito fazer com que os interesses sejam alcançados com mais eficiência, priorizando a entrega contínua do produto para o cliente.

E dentre estas 17 pessoas que tornaram o Manifesto Ágil possível, dois deles eram Jeff Sutherland e Ken Schwaber, criadores do framework Scrum.

Artigo baseado em: 
Manifesto for Agile Software Development - https://agilemanifesto.org/
Scrum Guides - https://www.scrumguides.org/