DevOps: Difference between revisions
(10 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Skill !! Configure<br/>(infra-structure-as-code) !! Version Control !! Package !! Deploy !! Run !! Monitor | ! Skill !! Configure<br/>(infra-structure-as-code) !! Version Control !! Package !! Deploy !! Run !! Monitor !! Dashboarding | ||
|- | |- | ||
| 1st || | | 1st || | ||
* Terraform | * [[DevOps#Terraform|Terraform]] | ||
* [[DevOps#Vagrant|Vagrant]] | * [[DevOps#Vagrant|Vagrant]] | ||
|| | || | ||
Line 14: | Line 14: | ||
* [[Docker]] | * [[Docker]] | ||
|| | || | ||
* Jenkins | * [[DevOps#Jenkins|Jenkins]] | ||
|| | || | ||
* ECS | * ECS | ||
|| | || | ||
* [[DevOps#ELK Stack|ELK Stack]] | * [[DevOps#ELK Stack|ELK Stack]] | ||
|| | |||
* | |||
|- | |- | ||
| 2nd | | 2nd | ||
Line 32: | Line 34: | ||
* [[Kubernetes]] | * [[Kubernetes]] | ||
|| | || | ||
* Prometeus | * [[DevOps#Prometeus|Prometeus]] | ||
|| | |||
* [[DevOps#Grafana|Grafana]] | |||
|} | |} | ||
Line 59: | Line 63: | ||
= Continuous Integration/Continuous Development (CI/CD) tools = | = Continuous Integration/Continuous Development (CI/CD) tools = | ||
==Jenkins== | |||
O Jenkins é um servidor de automação de código aberto e independente que pode ser usado para automatizar todos os tipos de tarefas, como construir, testar e implementar software. O pipeline baseado em Jenkins é configurado para capturar automaticamente projetos de uma organização no GitHub ou GitHub Enterprise para criar o aplicativo e a imagem do Docker, enviando a imagem para um registro do Docker. [https://jenkins.io/ Aprenda mais sobre Jenkins]. | |||
Para criar um container Jenkins | |||
podman run -d --name e-jenkins -p 8080:8080 -p 50000:50000 -v /home/ebasso/DockerVolumes/jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11 | |||
Para instalar na máquia local | |||
[[Jenkins: Install Jenkins on Redhat 9 with OpenJDK 17]] | |||
= Management Software = | = Management Software = | ||
Line 76: | Line 92: | ||
* [[Ansible: Localizando um texto na saída de um comando]] | * [[Ansible: Localizando um texto na saída de um comando]] | ||
= Container Orchestration Programs = | = Container Orchestration Programs = | ||
Line 91: | Line 102: | ||
Migrado para [[Kubernetes]] | Migrado para [[Kubernetes]] | ||
= Monitoração e Logging = | |||
== ELK Stack== | |||
Dicas sobre o trio Elasticsearch, Logstash e Kibana | |||
* [[ELK: Resumo dos Principais Conceitos]] | |||
* [[ELK: Instalando o Elasticsearch, Logstash e Kibana]] | |||
* [[ELK: Retenção de dados no Elasticsearch]] | |||
* [[ELK: Consultando e buscando dados através do Kibana]] | |||
== Grafana == | |||
O Grafana é uma ferramenta de visualização para ajudar a fornecer painéis de controle específicos que serão usados por diferentes pessoas interagindo com a solução. | |||
Mais detalhes em [http://docs.grafana.org/ Grafana Documentation]. | |||
== Prometeus== | |||
Prometheus é um sistema de monitoramento de sistemas e serviços, geração de eventos e: | |||
* coleta métricas de destinos configurados em intervalos determinados | |||
* avalia expressões de regra | |||
* exibe os resultados | |||
* pode acionar alertas se alguma condição for observada como verdadeira | |||
Mais detalhes em [https://prometheus.io/docs/introduction/overview/ Prometheus Documentation]. | |||
= Ferramentas = | = Ferramentas = | ||
Line 101: | Line 143: | ||
== Terraform == | |||
Migrado para [[Terraform]] | |||
Line 112: | Line 159: | ||
* [[Vagrant: Exemplos de Arquivos Vagrantfile provisionando o Apache HTTP server via arquivo Shell, Comandos e Ansible]] | * [[Vagrant: Exemplos de Arquivos Vagrantfile provisionando o Apache HTTP server via arquivo Shell, Comandos e Ansible]] | ||
== Git == | == Git == |
Latest revision as of 15:04, 4 December 2023
Skills
Skill | Configure (infra-structure-as-code) |
Version Control | Package | Deploy | Run | Monitor | Dashboarding |
---|---|---|---|---|---|---|---|
1st |
|
|
| ||||
2nd |
|
|
|
Foundation
Aqui estou agregando os pilares
- Sistemas Operacionais
- Linux
- Onde a maioria das aplicações rodam hoje.
- Linguagens de Programação
- Python
- A linguagem de back-end dominante nos dias de hoje. O Python é muito predominante em Inteligência Artificial/Machine Learning, portanto, se você quiser migrar para outro campo quente, você já alguns passos andados!
- Cloud
- AWS
- É impossível se tornar um profissional de DevOps experiente sem um sólido entendimento de como funciona uma nuvem pública da Amazon.
- Comece com o seguinte: VPC, EC2, IAM, S3, CloudWatch, ELB (sob o guarda-chuva do EC2) e Grupos de segurança. Essas coisas são muito para você começar e cada empresa moderna, habilitada para nuvem, estará usando essas ferramentas pesadamente.
- O site de treinamento da própria AWS é um bom lugar para começar. https://www.aws.training/?src=training
Eu recomendo que você reserve 20 a 30 minutos diariamente para praticar Python, Linux e AWS.
Continuous Integration/Continuous Development (CI/CD) tools
Jenkins
O Jenkins é um servidor de automação de código aberto e independente que pode ser usado para automatizar todos os tipos de tarefas, como construir, testar e implementar software. O pipeline baseado em Jenkins é configurado para capturar automaticamente projetos de uma organização no GitHub ou GitHub Enterprise para criar o aplicativo e a imagem do Docker, enviando a imagem para um registro do Docker. Aprenda mais sobre Jenkins.
Para criar um container Jenkins
podman run -d --name e-jenkins -p 8080:8080 -p 50000:50000 -v /home/ebasso/DockerVolumes/jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11
Para instalar na máquia local
Jenkins: Install Jenkins on Redhat 9 with OpenJDK 17
Management Software
Ansilble
Ansible simplifica orquestrações complexas e tarefas de gerenciamento de configurações. Ele habilita administradores to criar scripts usando YAML.
Container Orchestration Programs
Docker
Migrado para Docker
Kubernetes
Migrado para Kubernetes
Monitoração e Logging
ELK Stack
Dicas sobre o trio Elasticsearch, Logstash e Kibana
Grafana
O Grafana é uma ferramenta de visualização para ajudar a fornecer painéis de controle específicos que serão usados por diferentes pessoas interagindo com a solução.
Mais detalhes em Grafana Documentation.
Prometeus
Prometheus é um sistema de monitoramento de sistemas e serviços, geração de eventos e:
- coleta métricas de destinos configurados em intervalos determinados
- avalia expressões de regra
- exibe os resultados
- pode acionar alertas se alguma condição for observada como verdadeira
Mais detalhes em Prometheus Documentation.
Ferramentas
Preparando a sua estação DevOps
Terraform
Migrado para Terraform