+55 11 3995-6919 / +55 11 3900-1010

Infraestrutura como Código: Como automatizar o provisionamento de serviços na nuvem

Atualmente o termo DevOps se popularizou no mundo da tecnologia. Sua definição se baseia simplesmente na união de desenvolvimento com operações. E dentre as ferramentas que compõem estes processos integrados está a infraestrutura como código. Esse termo é uma metodologia de processos de provisionamento de infraestrutura tecnológica usada para que as respectivas equipes. As de DevOps principalmente. O objetivo é que elas possam gerenciar e provisionar infraestrutura por meio de código de forma programática. Ao invés de ter que recorrer ao acesso físico ao hardware ou até mesmo através de portais ou ferramentas de configuração.
Resumindo, a abordagem Infraestrutura como Código nada mais é do que a entrega de uma infraestrutura ágil. Utilizando-se de codificação simples e objetiva.E sem a necessidade de diversos passos e processos para se preparar um ambiente, sem perder o poder de controle, segurança, qualidade e disponibilidade.

CloudFormation

A Amazon Web Services (AWS) possui um serviço chamado CloudFormation que provisiona sua infraestrutura na nuvem através de um código em formato JSON ou YAML. Caso o usuário não possua experiência com esses modelos existe o CloudFormation Designer: uma ferramenta gráfica que o auxilia a criar e modificar seus modelos de template.
A vantagem de ter sua infraestrutura baseada em código se dá através da possibilidade de colocar um ambiente em produção com apenas um clique. Bem como replicar o mesmo quantas vezes for necessário. Por exemplo: uma aplicação precisa estar em mais de uma região. Neste caso é necessário pegar seu template e aplicar no CloudFormation na região desejada. Assim sua infraestrutura estará pronta em minutos! Dessa forma não será preciso convocar um grande time de TI para subir a infraestrutura manualmente. Além de ganhar tempo e reduzir possíveis falhas.

Representação do CloudFormation

No CloudFormation também temos o conceito de modelo que são os templates nos mesmos formatos. Eles descrevem os recursos da AWS que são necessários para fazer a implantação da aplicação. E as pilhas (stack) são o conjunto de recursos descrito nos modelos. Elas podem ser criadas, atualizadas e excluídas com facilidade!
Sabemos que é preciso realizar um upgrade na infraestrutura à medida que nosso negócio cresce. Por este motivo é muito importante ter um controle de versões. Para que quando ocorra algum problema seja possível identificar com mais rapidez o que foi feito. E assim voltar para uma versão estável do ambiente assim deixando-o disponível novamente sem prejudicar os usuários. Lembrando que ao criar ou atualizar sua pilha o CloudFormation avisa se houver algum erro.
Agora você deve estar se perguntando sobre o valor para ter essa automatização, eis uma boa notícia: não há custo para usar o CloudFormation. Contanto que sejam recursos da AWS. Serão cobrados apenas os recursos que forem provisionados com instâncias EC2, Elastic Load Balancing etc.

Ansible

Além da ferramenta provida para a AWS existem também algumas ferramentas que são adotadas pela comunidade para o mesmo objetivo. O Ansible que é uma ferramenta de automação de código aberto usada para configurar servidores, instalar softwares e executar uma alta espécie de tarefas de TI a partir de uma localização central. O Ansible é operado hoje pela RedHat e tem todo o suporte desta grande empresa. Trazendo uma grande confiabilidade à ferramenta.

É um mecanismo sem agente de um para muitos, onde todas as instruções são executadas a partir de uma máquina de controle que se comunica com clientes remotos preferencialmente em SSH, embora outros protocolos também sejam suportados.
Além disso, o Ansible também provê uma linguagem simples de se escrever em YAML, ou seja, de fácil interpretação para suporte, desenvolvedores e gerentes de TI.
No início da ferramenta, somente rodava em Linux Core. Porém, agora também roda no Windows sem precisar de formas alternativas para funcionar.
A vantagem mais clara de utilizar uma ferramenta como o Ansible é que não há limitação à plataforma de nuvem que a ferramenta está aplicada, podendo, com alguns ajustes, portar o código para ser aplicado em uma nuvem diferente, ou mesmo facilitar a migração do seu workload caso esse seja seu objetivo.

O ponto negativo no entanto está na necessidade de se prover a infraestrutura para operar o Ansible. Tendo que lidar com a gestão tanto da parte de sistemas operacionais quanto de software, adicionando uma camada de trabalho extra para operar o serviço.

Até mais!
Para mais artigos sobre o mundo da AWS confira em nosso blog!


Seu Office 365 é seguro?

Tenho certeza que você usa algum produto da Microsoft. Pode ser o Word para criar ou editar algum documento, ou então o PowerPoint para fazer aquela apresentação. Talvez o Outlook para enviar e receber e-mails. Mas qual a certeza de que estamos seguros ao usar todos estes aplicativos? Para muitos, a segurança dos dados se restringe em colocar uma senha forte no e-mail ou no perfil da rede social. Mas vai muito além disso. Os dados de ataques cibernéticos no Brasil e no mundo vêm crescendo cada vez mais durante os anos.

Dados de segurança no Brasil e no Mundo

  • De acordo com a Microsoft, os ataques cibernéticos no mundo causarão um prejuízo de US$ 6 trilhões até 2021;
  • De acordo com o relatório da Varonis, 51% das empresas tem mais de 100 mil arquivos internos abertos para qualquer colaborador;
  • Em 2019 o Brasil sofreu cerca de 15 bilhões de tentativas de ataques cibernéticos num espaço de 3 meses. Segundo a Fortinet;
  • Em 2018, 70 milhões de brasileiros foram vítimas de ataques cibernéticos segundo o Gabinete de Segurança Institucional (GSI) da Presidência da República.
  • Sim, os números parecem assustadores. Mas por outro lado, nunca se investiu tanto em segurança da informação. Somente nas empresas da América Latina, serão investidos US$ 4 bilhões até o final de 2020, de acordo com a consultoria IDC Brasil . É um sinal que todos estamos preocupados em manter nossos dados da forma mais segura possível. Empresas como a Darede, oferecem soluções de segurança da informação para que empresas possam evitar que seus dados estejam desprotegidos ou até perdidos. Pois como o CEO da Apple, Tim Cook, diz: “Não devemos pedir aos nossos clientes que façam um equilíbrio entre privacidade e segurança. Precisamos oferecer-lhes o melhor de ambos. Em última análise, proteger os dados de outra pessoa é proteger a todos nós.”
    Ok, é contraditório usar uma fala do CEO da Apple para falar sobre produtos da Microsoft. Mas é importante ressaltar que a segurança dos dados é uma luta de todos.

    Recentemente, a Darede se tornou Gold Partner da Microsoft, e este é um reconhecimento que a empresa detém o mais alto nível de qualidade na oferta de soluções de Office 365, que oferecem segurança e confiabilidade fazendo com que você fique no controle do manuseio de seus dados. Conte com a Darede para revolucionar o ambiente de TI da sua empresa!

    Amazon Workspaces

    Solução Home Office – Amazon Wokspaces

    O uso da VPN (Virtual Private Cloud) vem cada vez mais se popularizando no país. Assim como o Home Office e os usuários remotos.
    Esse artigo tem como foco empresas que utilizam o serviço web da Amazon. Uma vez que a plataforma tem disponível a solução DaaS na nuvem da AWS. Isso mesmo! Um serviço que entrega desktops totalmente acessíveis de qualquer lugar. Desde que o dispositivo tenha conexão com a internet. Seja ele um tablet, laptop ou até mesmo um smartphone.

    Estamos falando das Amazon Workspaces, então, vamos imaginar um cenário muito comum nos dias atuais, digamos que devido toda a paralisação por conta do COVID-19, sua empresa teve que enviar seus funcionários para trabalhar de casa, no entanto, eles não utilizam laptops,mas sim, computadores de mesa, dessa forma, se torna inviável levá-los para casa não é?

    Com essa tecnologia, é possível provisionar Desktops na nuvem para que os colaboradores possam acessar a AWS através dessa máquina, seja ela Windows ou Linux. As workspaces rodam dentro de uma VPC na AWS, visto isso, o ideal é que haja também uma vpn Site-to-Site entre essa VPC e o ambiente On Premises da Empresa, assim, através dos desktops virtuais, também será possível acessar recursos internos como sistemas ou servidores que rodam no escritório.
    Com o propósito de simplificar o gerenciamento de dezenas, centenas, ou até milhares de Desktops virtuais, também é possível utilizar o Amazon AD Connector, para que os usuários possam acessar apenas suas respectivas máquinas através de seus usuários provisionados dentro do AD da empresa, elevando a segurança das máquinas, GPO para limitar acessos, assim como no escritório.
    A Workspace é integrada com o Amazon KMS, sendo assim, todo e qualquer acesso ao volume persistente passa por uma camada de criptografia, paralelo a isso, nenhum dado do usuário é armazenado no dispositivo de acesso, viabilizando a segurança da informação.

    Serviço On Demand

    Como último tópico, iremos abordar o custo. Como tudo em cloud, esse serviço também se encaixa como On demand. Ou seja, a empresa pagará apenas o utilizado de recursos nas workspaces. Uma vez que se o usuário irá trabalhar apenas em horário comercial. Porque eu devo pagar um recurso que fica full-time? Não faz muito sentido, não é?
    Assim, os custos são reduzidos a ponto de não haver a necessidade da compra de hardware. Podendo entregar uma solução compatível com outros serviços, altamente disponível, totalmente gerenciável, facilmente escalável, seja escalabilidade de quantidade de Desktops ou de recursos computacionais. Onde há segurança nos dados e redução de custos, tudo isso na nuvem.
    Leia mais sobre home office em nosso blog!

    Processo de Integração e Deploy Contínuo (CI/CD) na AWS – Parte 2

    Abaixo, segue um tutorial simples e eficaz de como realizar esta arquitetura na sua rede AWS.
    Hands On!
    Para começarmos, será necessário criarmos duas IAM Roles:
    • IAM role para o CodeDeploy realizar o deploy na EC2 instance;
    • IAM role para a EC2 acessar o S3.

    1° CodeDeployRole:

    – Vá até o seu console da AWS e entre no serviço do IAM:

    – Após acessar o serviço do IAM, clique em Roles:

    – Agora, clique em Create Role:

    – Selecione o serviço do CodeDeploy:

    – Selecione o Case do CodeDeploy e depois clique para adicionar as permissões:

    – Selecione AWSCodeDeployRole e clique em Next:

    – Dê um nome a sua Role e clique em Create Role:
    https://www.darede.com.br/wp-content/uploads/2020/04/24140109/Processo-de-Integra%C3%A7%C3%A3o-e-Deploy-Cont%C3%ADnuo-na-AWS-7.png

    – A regra foi criada com sucesso:

    2° S3 Role:

    Agora faremos um processo parecido com o anterior, porém, agora selecionaremos o serviço de EC2.

    – Clique novamente em Create Role depois, selecione EC2:

    Clique em Next.
    – Nas permissões, selecione AmazonS3ReadOnlyAccess:

    Clique em Next.
    – Agora, dê um nome para role que acabamos de criar:

    – Clique em Create role.

    3° Vamos criar uma instância EC2 que receberá o deploy.

    Para que funcione perfeitamente, será necessário utilizarmos o CodeDeploy Agent na máquina:
    – Primeiro, vamos criar uma instância. Acesse o Painel EC2 > Instances e vá em Launch Instance:

    – Neste tutorial, iremos utilizar um Amazon Linux:

    – Agora, selecione a instância do tipo t2.micro:

    Clique em Next.
    – Agora, selecione sua VPC, sua Subnet e Auto-assign Public IP deixe como Enable.

    – Na parte do IAM Role, selecione a role que criamos para a EC2:

    – Mais pra baixo, desça até a parte do Advanced Details, mais precisamente na parte do User data e cole o seguinte código:
    #!/bin/bash
    yum -y update
    yum install -y ruby
    yum install -y aws-cli
    cd /home/ec2-user
    aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . –region us-east-1
    chmod +x ./install
    ./install auto

    Para saber mais sobre User data, clique aqui.

    Deve ficar algo parecido com isto:

    Lembrando que, os valores das regiões estão de acordo com a região que estou trabalhando, neste caso North Virginia (EUA).

    Clique em Next.
    – Na próxima página, referente ao volume, não será necessária nenhuma alteração, é o suficiente para realizarmos este tutorial.
    Clique em Next.
    – Na parte das TAGS, iremos adicionar a tag Name, para que possamos identificar a máquina no painel das instâncias:

    Chave: Name
    Valor: EC2-CodeDeploy
    – Agora, parte dos Security Group’s, selecione as opções de liberação para SSH e HTTP. Na parte do Source selecione My IP. Deve ficar algo assim:

    Clique em Next.
    – Confirme todas as informações e clique em Launch. Selecione uma chave. pem que você tenha acesso e finalize o processo de criação.

    4° Após a máquina estar com o Estado Running, acessa-a via SSH.

    Neste procedimento, estou usando o PuTTY, caso queira saber mais, clique aqui.

    – Após acessar a máquina via SSH, vamos validar se o CodeDeploy Agent está instalado:

    Rodando como o esperado.

    – Agora, nós iremos criar os arquivos necessários para o deploy funcionar.

    – Entre no /tmp da máquina:

    – Crie uma pasta para receber os arquivos:

    – Rode o seguinte comando:
    url -O http://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip

    – Descompacte o arquivo:

    – Delete o arquivo .zip:

    – Digite os seguintes comandos de acordo com a documentação do Github:
    git init
    git add .
    git commit -m “first commit”
    git remote add origin git@github.com:YOUR_USERNAME/YOUR_REPOSITORY.git
    git push -u origin master

    5° Agora, iremos criar a parte do CodeDeploy.

    – Acesse a console da AWS e filtre pelo serviço do CodeDeploy:

    – Após acessar o serviço, clique em Applications:

    – Clique em Create Application:

    – Dê um nome para sua aplicação e selecione a plataforma EC2:

    Clique em Create Application.
    – Depois que criamos a aplicação, é necessário criamos o grupo de depoloy (Deployment group), onde nós apontamos para onde deve ser direcionado o deploy. Clique em Create Deployment Group:

    – Dê um nome para seu grupo de deploy:

    – Seleciona a role criamos no primeiro passo:

    – Na parte de configuração do ambiente, é onde selecionamos para qual recurso iremos apontar o deploy, neste caso, utilizaremos o TAG Name da EC2 para identificarmos o recurso:

    – Nas configurações de deploy (Deployment settings), deixe esta configuração:


    – Como neste caso não temos Load Balancer nesta arquitetura, podemos desabilitar esta opção:

    Clique em Create Deployment Group.

    6° Com essas configurações feitas, podemos testar o deploy de forma manual:

    – Para isso, entre no deployment group que acabamos de configurar. Este é o caminho:

    – Após acessar, clique em Create deployment:

    – Selecione a opção que sua aplicação está no Github. Depois dê um nome à sua conexão com o git e clique em Connect to GitHub:


    – Será aberto um pop-up solicitando autorizar a integração:

    Pode confirmar a integração entre as plataformas.
    – Deverá aparecer algo parecido com isto em sua tela:

    – Preencha os dados com o nome do repositório e o ID do commit, gerado pelo passo quatro que fizemos:


    A tela deverá ficar assim:

    O nome do repositório deve ter o seguinte formato: “GITHUB_USERNAME/REPOSITORY_NAME”
    – Dê uma descrição ao seu deployment:

    – No final da página clique em Create Deployment.

    Após isso, podemos notar que a estrutura está funcional e operando:

    7° Agora, iremos usar o recurso do CodePipeline para automatizar todo este processo de deploy sempre que houver alterações no repositório:

    – Entre no serviço do CodePipeline:

    – Depois clique em Create Pipeline.
    – Dê um nome para sua pipeline:

    Clique em Next.
    – Agora no Source selecione GitHub:

    – Clique em Connect to GitHub:

    – Forneça acesso ao CodePipeline:

    – Selecione o repositório:

    – Também selecione a Branch:


    – Usaremos os webhooks padrões do GitHub:

    Clique em Next.
    – Neste tutorial, não será necessário utilizarmos o codebuild, então podemos pular esta parte. Clique em Skip build stage:

    – Seguindo, escolha o provedor de deploy (Deploy provider) o CodeDeploy que já está devidamente configurado:

    Selecione a região e as outras duas informações que criamos nos passos anteriores, na configuração do CodeDeploy:

    Clique em Next.
    – Agora revisando as informações, desça até o final da página e clique em Create Pipeline.

    – Note, que a Pipeline rodou perfeitamente e já fez o deploy automático do último commit utilizado no repositório:

    8° Para validar o sucesso do deploy, vá até o painel das Instâncias EC2 e procure a instância que criamos neste tutorial:


    – Procure pelo campo Public DNS(IPv4):

    Copie este valor.
    – Abra uma nova guia e acesse este endereço.
    Será exibida uma tela como essa:

    9° Agora, nós iremos validar o funcionamento do deploy automatizado.

    Iremos fazer uma modificação qualquer no código, iremos realizar o push para o GitHub e a alteração será automaticamente aplicada na instância EC2.
    – Acesse a máquina Linux e abra o arquivo .html com seu editor de texto favorito:

    Neste caso, usei o VIM para editar o arquivo.
    – Após abrir o arquivo, editei a cor de fundo da página:
    Antes:

    Depois:

    – Depois de alterado, vamos commitar as alterações:

    – Agora nos resta realizar o push:

    Coloque suas credenciais e finalize o processo.
    – Acessando as pipelines, é possível ver o deploy funcionando automaticamente:


    – Volte na página web que abrimos anteriormente e dê um F5, note que a cor da página mudou:

    Bom, finalizamos por aqui nossa configuração de CI/CD de uma forma simples e eficaz.

    Workloads Microsoft

    Modernização de Workloads Microsoft SQL na AWS

    A AWS desenvolveu o Migration Acceleration Program (MAP). Um programa para que o cliente possa trazer a suas cargas de trabalho com segurança e performance. Se adequando a sua estrutura de negócio. Seja em ambiente Windows ou Linux.

    Vamos entender como seria a modernização de cargas de trabalho do Microsoft SQL Server para a AWS.

    Vamos trazer um cenário que o cliente possui um servidor com um SQL Server. Ele deseja trazer essa carga para da AWS. Levando em consideração que a sua preocupação seja somente comercial. Ou seja, a atenção do cliente está voltada somente em questões comerciais do negócio. Assim desejando que esse banco seja gerenciado pela AWS. O serviço mais indicado é o Amazon RDS (Relational Database Service) que é uma aplicação da AWS que automatiza tarefas demoradas de administração, como provisionamento de Hardware, atualização de patches, backups, entre outros.
    Um outro cenário é de um cliente que também possui um servidor com um SQL Server e deseja trazer essa carga para da AWS, porém ele deseja ter total gerencia do banco, seja por sua própria equipe de suporte, ou através de suporte de um parceiro AWS. Neste exemplo podemos utilizar uma instância EC2 para essa carga de trabalho, a AWS fornece várias ferramentas que podem ser utilizadas para a migração de servidor. para sanar dúvidas de qual serviço empregar, ou como usar, é de grande valia utilizar o recurso de MAP, assim auxiliando o cliente nessa decisão. Lembrando que este serviço pode ser utilizado não somente para migração de ambiente, mas também para a modernização de outros recursos. Lembre-se na dúvida, sempre peça ajuda!

    Quer saber mais? Acesse o link de documentação MAP da AWS – https://aws.amazon.com/pt/migration-acceleration-program/

    Link da documentação sobre RDS AWS – https://aws.amazon.com/pt/rds/

    Leia mais sobre o mundo da AWS em nosso blog!