# data[].attributes.headline
O Azure Resource Manager é o serviço de implantação e gerenciamento do Azure. Ele fornece uma camada de gerenciamento que lhe permite criar, atualizar e excluir recursos em sua conta do Azure. Use recursos de gerenciamento, como controle de acesso, bloqueios e marcas, para proteger e organizar seus recursos após a implantação.

# data[].attributes.subject
O Azure Resource Manager é o serviço de implantação e gerenciamento do Azure. Ele fornece uma camada de gerenciamento que lhe permite criar, atualizar e excluir recursos em sua conta do Azure. Use recursos de gerenciamento, como controle de acesso, bloqueios e marcas, para proteger e organizar seus recursos após a implantação.

# data[].attributes.headline
Ansible é uma ferramenta de TI de código aberto para gerenciar, automatizar, configurar servidores e, implantar aplicativos, a partir de uma localização central. Ele inclui sua própria linguagem declarativa para descrever a configuração do sistema.

# data[].attributes.subject
Ansible é uma ferramenta de TI de código aberto para gerenciar, automatizar, configurar servidores e, implantar aplicativos, a partir de uma localização central. Ele inclui sua própria linguagem declarativa para descrever a configuração do sistema.

# data[].attributes.headline
Terraform é uma ferramenta de software livre de "infraestrutura como código" criada pela HashiCorp. Foi criada para construção, manutenção e versionamento de infraestrutura de forma segura e eficiente, ele pode gerenciar tanto provedores públicos quanto privados. Uma ferramenta de programação declarativa, o Terraform permite aos desenvolvedores usar uma linguagem de configuração de alto nível chamada HCL (HashiCorp Configuration Language) para descrever a infraestrutura na cloud ou em implementação local de estado final desejada para executar um aplicativo. Em seguida, ele gera um plano para alcançar esse estado final e executa o plano para fornecer a infraestrutura.Uma vez que o Terraform usa uma sintaxe simples, é possível fornecer a infraestrutura em data centers multicloud e locais, sendo possível fornecer novamente a infraestrutura de maneira segura e eficiente em resposta às mudanças de configuração, sendo atualmente uma das ferramentas de automação de infraestrutura mais populares disponíveis. 

# data[].attributes.subject
Terraform é uma ferramenta de software livre de "infraestrutura como código" criada pela HashiCorp. Foi criada para construção, manutenção e versionamento de infraestrutura de forma segura e eficiente, ele pode gerenciar tanto provedores públicos quanto privados. Uma ferramenta de programação declarativa, o Terraform permite aos desenvolvedores usar uma linguagem de configuração de alto nível chamada HCL (HashiCorp Configuration Language) para descrever a infraestrutura na cloud ou em implementação local de estado final desejada para executar um aplicativo. Em seguida, ele gera um plano para alcançar esse estado final e executa o plano para fornecer a infraestrutura.Uma vez que o Terraform usa uma sintaxe simples, é possível fornecer a infraestrutura em data centers multicloud e locais, sendo possível fornecer novamente a infraestrutura de maneira segura e eficiente em resposta às mudanças de configuração, sendo atualmente uma das ferramentas de automação de infraestrutura mais populares disponíveis. 

# data[].attributes.body
Fonte IBM e Zup Inovation
https://www.zup.com.br/blog/terraform-o-que-e
https://www.ibm.com/br-pt/cloud/learn/terraform

# data[].attributes.attachment_link.readable_text
Este guia destaca tudo o que você precisa saber sobre o Terraform, uma ferramenta que permite aos programadores desenvolver, mudar e gerar versões de infraestrutura de maneira segura e eficiente.

O que é o Terraform?

Terraform é uma ferramenta de software livre de "infraestrutura como código" criada pela HashiCorp.

Uma ferramenta de programação declarativa, o Terraform permite aos desenvolvedores usar uma linguagem de configuração de alto nível chamada HCL (HashiCorp Configuration Language) para descrever a infraestrutura na cloud ou em implementação local de estado final desejada para executar um aplicativo. Em seguida, ele gera um plano para alcançar esse estado final e executa o plano para fornecer a infraestrutura.

Uma vez que o Terraform usa uma sintaxe simples, é possível fornecer a infraestrutura em data centers multicloud e locais, sendo possível fornecer novamente a infraestrutura de maneira segura e eficiente em resposta às mudanças de configuração, sendo atualmente uma das ferramentas de automação de infraestrutura mais populares disponíveis. Se sua organização tem a intenção de implementar um ambiente de cloud híbrida ou multicloud, você precisa conhecer o Terraform.

Por que usar a infraestrutura como código (IaC)?

Para entender melhor as vantagens do Terraform, é interessante entender primeiro os benefícios da infraestrutura como código (IaC). A IaC permite aos desenvolvedores codificar a infraestrutura de um modo que torna o provisionamento automatizado, mais rápido e reproduzível. Ela é um componente chave das práticas Agile e DevOps, como o controle de versão, a integração contínua e a implementação contínua.

A infraestrutura como código pode ajudar da seguinte forma:

Aumentar a velocidade: a automação é mais rápida do que a navegação manual por uma interface quando é preciso implementar e/ou conectar recursos.

Melhorar a confiabilidade: se a sua infraestrutura for grande, torna-se fácil configurar de maneira incorreta um recurso ou fornecer serviços na sequência errada. Com a IaC, os recursos são sempre provisionados e configurados exatamente conforme declarados.

Prevenir desvios de configuração: o desvio de configuração ocorre quando a configuração que forneceu seu ambiente não mais corresponde ao ambiente real. (Veja 'Infraestrutura imutável' abaixo.)

Suporte à experimentação, aos testes e à otimização: uma vez que infraestrutura como código torna o provisionamento de uma nova infraestrutura tão mais rápido e fácil, é possível realizar e testar mudanças experimentais sem investir muito tempo e recursos. Se você gostar dos resultados, é possível aumentar rapidamente a escala da nova infraestrutura para a produção.

Veja "O que é infraestrutura como código?" para saber mais detalhes:

Por que usar o Terraform?

Há algumas razões importantes pelas quais os desenvolvedores optam por usar o Terraform em vez de outras ferramentas de infraestrutura como código:

Software livre: o Terraform é usado por grandes comunidades de colaboradores que desenvolvem plug-ins para a plataforma. Independentemente de qual provedor de cloud você usa, é fácil encontrar plug-ins, extensões e suporte profissional. Isso também significa que o Terraform evolui rapidamente com novos benefícios e melhorias sendo incluídos constantemente.

Plataforma independente: significa que é possível usá-la com qualquer provedor de serviços na cloud. A maioria das outras ferramentas de IaC são projetadas para funcionar com um único provedor de cloud.

Infraestrutura imutável: a maioria das ferramentas de infraestrutura como código cria uma infraestrutura mutável, o que significa que a infraestrutura consegue mudar para se adaptar às mudanças, como uma atualização de middleware ou um novo servidor de armazenamento. O desafio da infraestrutura mutável é o desvio de configuração. À medida que mudanças se acumulam, o provisionamento real de diferentes servidores ou de outros elementos de infraestrutura se 'desvia' para mais longe da configuração original, tornando erros ou problemas de desempenho difíceis de diagnosticar e de corrigir. Terraform provisiona infraestrutura imutável, o que significa que a cada mudança no ambiente, a configuração atual é substituída por uma nova que considera a mudança e a infraestrutura é fornecida novamente. Melhor ainda, as configurações anteriores podem ser guardadas como versões para permitir retrocessos se necessário ou desejado.

Módulos do Terraform

Os módulos do Terraform são configurações pequenas e reutilizáveis do Terraform para vários recursos de infraestrutura que são utilizados em conjunto. Os módulos do Terraform são úteis porque permitem que recursos complexos sejam automatizados com construções reutilizáveis e configuráveis. Até mesmo a composição de um arquivo muito simples do Terraform resulta em um módulo. Um módulo pode chamar outros módulos, chamados de módulos filhos, o que pode tornar a montagem da configuração mais rápida e mais concisa. Os módulos também podem ser usados várias vezes, tanto no âmbito da mesma configuração quanto em configurações separadas.

Provedores do Terraform

Os provedores do Terraform são plug-ins que implementam tipos de recursos. Os provedores contêm todo o código necessário para autenticar e conectar a um serviço, geralmente de um provedor de cloud pública, em nome do usuário. É possível encontrar provedores para as plataformas e serviços na cloud que você usa, incluir à sua configuração e, em seguida, usar seus recursos para fornecer a infraestrutura. Os provedores estão disponíveis em praticamente todos os principais provedores de cloud, soluções de SaaS e muito mais, desenvolvidos e/ou apoiados pela comunidade Terraform ou por organizações individuais. Consulte a documentação do Terraform (link externo à IBM) para uma lista detalhada.

Terraform vs. Kubernetes

Ainda há confusão entre o Terraform e o Kubernetes e o que eles realmente oferecem. A verdade é que eles não são alternativas e funcionam de forma eficaz juntos.

Kubernetes é um sistema de orquestração de contêiner de software livre que permite aos desenvolvedores programar implementações em nós em um cluster de computação, gerenciando ativamente cargas de trabalho conteinerizadas para garantir que seu estado corresponda às intenções dos usuários.

Terraform, por outro lado, é uma ferramenta de infraestrutura como código com um alcance muito mais amplo, permitindo aos desenvolvedores automatizar infraestruturas completas, o que abrange várias clouds públicas e privadas.

Terraform é capaz de automatizar e gerenciar capacidades em nível de infraestrutura como um serviço (IaaS), plataforma como um serviço (PaaS) ou até mesmo software como um serviço (SaaS)e desenvolver todos esses recursos em todos aqueles provedores de forma paralela. É possível usar o Terraform para automatizar o provisionamento do Kubernetes, especialmente clusters de Kubernetes gerenciados em plataformas na cloud, e automatizar a implementação de aplicativos em um cluster.

Terraform vs. Ansible

O Terraform e o Ansible são ambos ferramentas de infraestrutura como código, mas há algumas diferenças significativas entre os dois:

Enquanto o Terraform é puramente uma ferramenta declarativa (veja acima), o Ansible combina tanto uma configuração declarativa quanto procedural. Na configuração procedural, você especifica as etapas ou a maneira precisa na qual deseja fornecer a infraestrutura até o estado desejado. A configuração procedural envolve mais trabalho, porém proporciona mais controle.

O Terraform é software livre. O Ansible é desenvolvido e comercializado pela Red Hat.

IBM e Terraform

IBM Cloud Schematics é a ferramenta de automação gratuita da Cloud da IBM com base no Terraform. IBM Cloud Schematics permite gerenciar plenamente a automação de sua infraestrutura com base no Terraform para que você possa passar mais tempo construindo aplicativos e menos tempo criando ambientes.

Descubra mais sobre como usar o IBM Cloud Schematics.

Para obter mais informações sobre o Terraform, cadastre-se para a IBMid e crie sua conta IBM Cloud.

# data[].attributes.attachment_link.description
Terraform permite aos programadores desenvolver, mudar e gerar versões de uma infraestrutura de forma segura e eficiente.

# data[].attributes.body
Google Cloud Platform (GCP) é um grupo de soluções e aplicações da empresa norte-americana de mesmo nome que ajuda a executar blocos de serviços em nuvem. Nela, há elevado desempenho, proteção e rapidez.

Os web apps ganham um back-end — sistema que atua por trás de uma aplicação, isto é, coordena as regras de funcionamento de um recurso informático — mais estruturado e passível de ampliação em larga escala.

A GCP pode funcionar em hardwares próprios de empresas. Os serviços são comercializados sob medida, sendo que você tem a liberdade de contratar apenas os recursos de seu interesse.

É possível aumentar o controle no gerenciamento das operações, bem como obter saídas completas e protegidas para a cloud storage. Isso vale inclusive para armazenamentos customizados às necessidades de cada cliente.

Além da guarda segura de dados, a Google Cloud Platform oferece facilidades para o desenvolvimento de aplicativos. Assim, fica bem mais rápido, econômico e seguro elaborar, por exemplo, um sistema direcionado ao controle da carteira de clientes que sirva para aprovar automaticamente as vendas e concentrar o acervo da companhia em um só lugar.

O aplicativo de música Spotify utiliza a GCP para ofertar uma alta disponibilidade a seus usuários. Esse investimento permitiu um suporte informático que reúne atributos como eficácia, agilidade e exatidão de informações.

https://blog.multiedro.com.br/google-cloud-platform-o-que-e-e-quais-as-suas-vantagens/

# data[].attributes.attachment_link.title
Introduction to HashiCorp Terraform with Armon Dadgar

# data[].attributes.attachment_link.title
Introdução à Infraestrutura de Google Cloud

# data[].attributes.attachment_link.title
ARM Templates Tutorial | Infrastructure as Code (IaC) for Beginners | Azure Resource Manager

# data[].attributes.attachment_link.title
SERVIDOR LINUX #10 - INTRODUÇÃO ao ANSIBLE COMPLETA | TEORIA & PRÁTICA

# data[].attributes.body
https://docs.microsoft.com/pt-br/azure/azure-resource-manager/management/overview

# data[].attributes.attachment_link.readable_text
O Azure Resource Manager é p serviço de implantação e gerenciamento do Azure. Ele fornece uma camada de gerenciamento que lhe permite criar, atualizar e excluir recursos em sua conta do Azure. Use recursos de gerenciamento, como controle de acesso, bloqueios e marcas, para proteger e organizar seus recursos após a implantação.

Para saber mais sobre os modelos do ARM (Azure Resource Manager), confira a visão geral da implantação de modelo.

Camada de gerenciamento consistente

Quando um usuário envia uma solicitação de ferramentas, APIs ou SDKs do Azure, o Resource Manager recebe a solicitação. Ele autentica e autoriza a solicitação. O Resource Manager envia a solicitação para o serviço do Azure, que executa a ação solicitada. Como todas as solicitações são manipuladas por meio da mesma API, você verá funcionalidades e resultados uniformes em todas as diferentes ferramentas.

A imagem a seguir mostra o papel que o Azure Resource Manager desempenha na manipulação de solicitações do Azure.

Todos as funcionalidades disponíveis no portal também estão disponíveis por meio do PowerShell, da CLI do Azure, das APIs REST e dos SDKs de cliente. A funcionalidade inicialmente lançada por meio de APIs será representada no portal em até 180 dias depois da versão inicial.

Terminologia

Se você for um novo usuário do Azure Resource Manager, há alguns termos com os quais talvez você não esteja familiarizado.

recurso -um item gerenciável que está disponível por meio do Azure. Máquinas virtuais, contas de armazenamento, aplicativos Web, bancos de dados e redes virtuais são exemplos de recursos. Grupos de recursos, assinaturas, grupos de gerenciamento e marcas também são exemplos de recursos.

grupo de recursos - Um contêiner que mantém os recursos relacionados a uma solução do Azure. O grupo de recursos inclui esses recursos que você deseja gerenciar como um grupo. Você decide quais recursos pertencem a um grupo de recursos com base no que faz mais sentido para sua organização. Confira Grupos de recursos.

provedor de recursos - um serviço que fornece recursos do Azure. Por exemplo, um provedor de recursos comum é Microsoft.Compute, que fornece o recurso de máquina virtual. Microsoft.Storage é outro provedor de recursos comum. Confira Provedores e tipos de recurso.

Modelo do Resource Manager - um arquivo JSON (JavaScript Object Notation) que define um ou mais recursos para implantação em um grupo de recursos, assinatura, grupo de gerenciamento ou locatário. O modelo pode ser usado para implantar os recursos de forma consiste e repetida. Confira Visão geral da implantação de modelo.

sintaxe declarativa - sintaxe que permite a declaração "Isso é o que pretendo criar" sem precisar escrever a sequência de comandos de programação para criá-la. O modelo do Resource Manager é um exemplo de sintaxe declarativa. No arquivo, você define as propriedades da infraestrutura a ser implantada no Azure. Confira Visão geral da implantação de modelo.

Os benefícios de usar o Gerenciador de Recursos

Com o Resource Manager, você pode:

Gerenciar sua infraestrutura por meio de modelos declarativos em vez de scripts.

Implantar, gerenciar e monitorar todos os recursos da sua solução como um grupo em vez de tratá-los individualmente.

Implantar novamente a solução em todo seu ciclo de vida de desenvolvimento e com a confiança de que seus recursos serão implantados em um estado consistente.

Definir as dependências entre os recursos para que eles sejam implantados na ordem correta.

Aplicar o controle de acesso a todos os serviços, pois o RBAC do Azure (controle de acesso baseado em função do Azure) é integrado nativamente à plataforma de gerenciamento.

Aplicar marcas aos recursos para organizar de modo lógico todos os recursos em sua assinatura.

Esclarecer a cobrança da sua organização exibindo os custos para um grupo de recursos que compartilha a mesma tag.

Compreender o escopo

O Azure fornece quatro níveis de escopo: grupos de gerenciamento, assinaturas, grupos de recursos e recursos. A imagem a seguir mostra um exemplo dessas camadas.

As configurações de gerenciamento são aplicadas em qualquer desses níveis de escopo. O nível que você seleciona determina o quão amplamente a configuração é aplicada. Os níveis inferiores herdam as configurações de níveis superiores. Por exemplo, ao aplicar uma política à assinatura, ela será aplicada a todos os grupos de recursos e recursos em sua assinatura. Ao aplicar uma política no grupo de recursos, ela será aplicada ao grupo de recursos e a todos os recursos. No entanto, outro grupo de recursos não terá essa atribuição de política.

Para obter informações sobre como gerenciar identidades e acesso, consulte Azure Active Directory.

Você pode implantar modelos a locatários, grupos de gerenciamento, assinaturas ou grupos de recursos.

Grupos de recursos

Existem alguns fatores importantes a considerar ao definir seu grupo de recursos:

Todos os recursos do grupo de recursos devem compartilhar o ciclo de vida. Você os implanta, atualiza e exclui juntos. Se um recurso, como um servidor, precisar existir em um ciclo de implantação diferente, ele deverá estar em outro grupo de recursos.

Cada recurso pode existir apenas em um grupo de recursos.

Você pode adicionar ou remover um recurso de um grupo de recursos a qualquer momento.

Você pode mover um recurso de um grupo de recursos para outro grupo. Para saber mais, confira Mover recursos para um novo grupo de recursos ou assinatura.

Os recursos de um grupo de recursos podem estar localizados em regiões diferentes do grupo de recursos.

Ao criar um grupo de recursos, você precisará fornecer um local para ele. Você pode estar se perguntando: "Por que um grupo de recursos precisa de um local? E, se os recursos podem ter locais diferentes do grupo de recursos, por que o local do grupo de recursos importa?" O grupo de recursos armazena metadados sobre os recursos. Quando você especifica uma localização para o grupo de recursos, você especifica onde os metadados são armazenados. Por motivos de conformidade, você precisa fazer com que os dados sejam armazenados em determinada região.

Se a região do grupo de recursos está temporariamente indisponível, você não pode atualizar os recursos no grupo de recursos porque os metadados não estão disponíveis. Os recursos em outras regiões ainda funcionarão conforme o esperado, mas não será possível atualizá-los. Saiba mais sobre a criação de aplicativos confiáveis em Desenvolver aplicativos do Azure confiáveis.

Um grupo de recursos pode ser usado para definir o escopo de controle de acesso para ações administrativas. Para gerenciar um grupo de recursos, você pode atribuir Políticas do Azure, funções do Azure ou bloqueios de recursos.

Você pode aplicar marcas a um grupo de recursos. Os recursos do grupo de recursos não herdam essas marcas.

Um recurso pode interagir com os recursos de outros grupos de recursos. Esse cenário é comum quando os dois recursos estão relacionados, mas não compartilham o ciclo de vida. Por exemplo, você pode ter um aplicativo Web que se conecta a um banco de dados em outro grupo de recursos.

Quando você exclui um grupo de recursos, todos os recursos do grupo de recursos também são excluídos. Para obter informações sobre como o Azure Resource Manager orquestra essas exclusões, confira Exclusão de grupo de recursos e recursos do Azure Resource Manager.

Você pode implantar até 800 instâncias de um tipo de recurso em cada grupo de recursos. Alguns tipos de recursos são isentos do limite de 800 instâncias. Para obter mais informações, confira limites do grupo de recursos.

Alguns recursos podem existir fora de um grupo de recursos. Esses recursos são implantados na assinatura, no grupo de gerenciamento ou no locatário. Somente tipos de recursos específicos têm suporte nesses escopos.

Para criar um grupo de recursos, use o portal, o PowerShell, a CLI do Azure ou um modelo do ARM.

Resiliência do Azure Resource Manager

O serviço do Azure Resource Manager foi projetado para resiliência e disponibilidade contínua. As operações do Resource Manager e do painel de controle (solicitações enviadas para management.azure.com) na API REST são:

Distribuídas entre regiões. Alguns serviços são regionais.

Distribuídas entre Zonas de Disponibilidade (e regiões) em localizações que têm várias Zonas de Disponibilidade.

Não dependem de um datacenter lógico único.

Nunca são desativadas para atividades de manutenção.

Essa resiliência se aplica aos serviços que recebem solicitações por meio do Resource Manager. Por exemplo, o Key Vault se beneficia dessa resiliência.

Próximas etapas

# data[].attributes.attachment_link.title
Visão geral do Azure Resource Manager - Azure Resource Manager

# data[].attributes.attachment_link.description
O Azure Resource Manager é p serviço de implantação e gerenciamento do Azure. Ele fornece uma camada de gerenciamento que lhe permite criar, atualizar e excluir recursos em sua conta do Azure. Use recursos de gerenciamento, como controle de acesso, bloqueios e marcas, para proteger e organizar seus recursos após a implantação.

# data[].attributes.headline
CloudFormation é uma ferramenta nativa da Amazon Web Services (mais conhecida como AWS). Mas... por que é uma ferramenta tão popular? Porque nos dá a capacidade de implementar práticas de infraestrutura como código (IaC) nativamente dentro da AWS.CloudFormation cria e configura a infraestrutura que definimos previamente em um template (ou modelo) de acordo com os requisitos que precisamos. Isso nos oferece algumas vantagens, como criar repositórios com nossos modelos para que sejam acessíveis ou que os recursos de infraestrutura possam ser entregues rapidamente.

# data[].attributes.subject
CloudFormation é uma ferramenta nativa da Amazon Web Services (mais conhecida como AWS). Mas... por que é uma ferramenta tão popular? Porque nos dá a capacidade de implementar práticas de infraestrutura como código (IaC) nativamente dentro da AWS.CloudFormation cria e configura a infraestrutura que definimos previamente em um template (ou modelo) de acordo com os requisitos que precisamos. Isso nos oferece algumas vantagens, como criar repositórios com nossos modelos para que sejam acessíveis ou que os recursos de infraestrutura possam ser entregues rapidamente.

# data[].attributes.attachment_link.title
INFRAESTRUTURA POR CÓDIGO COM AWS CLOUDFORMATION