
Hoje, temos o prazer de apresentar o Relatório de uso de contêineres Sysdig para 2019 ( Relatório de uso de contêineres Sysdig 2019 ). O Kubernetes continua ganhando impulso, as arquiteturas de nuvem estão explorando cada vez mais e tudo isso está mudando não apenas os padrões de uso, mas também os processos e as estruturas organizacionais. Surpreendentemente, este ano o número de contêineres dobrou, cuja vida útil não excede 5 minutos. Quanto mais dinâmicos os serviços se tornam, melhores as equipes de nuvem reconhecem a necessidade de integrar a segurança nos processos do DevOps. Como parte de nosso relatório de uso de 2019, estamos explorando detalhes de segurança e conformidade pela primeira vez, além de vários detalhes sobre como os clientes usam contêineres, Kubernetes e muito mais.
Posição Sysdig exclusiva
A plataforma Sysdig Secure DevOps fornece uma perspectiva real sobre infraestrutura, aplicativos e contêineres. Nosso relatório abrange empresas em todo o mundo e em muitas áreas. Este ano, incluímos detalhes sobre usuários locais SaaS e Sysdig para fornecer uma imagem do uso comercial de dois milhões de contêineres implantados como exemplo.
Mais sobre os resultados.
Em nosso relatório de 2018, descrevemos como a Open Container Initiative (OCI) ajudou a introduzir ambientes alternativos de lançamento de contêineres. Em 2019, isso aconteceu em larga escala: o projeto de contenção obteve uma parcela significativa de 18%. Para ser justo, vale a pena notar que o container é usado pelo Docker. Anteriormente, seu mecanismo implementava funções de alto e baixo nível do ambiente de lançamento. Agora eles estão divididos em dois projetos separados: contains e runc.

O CRI-O estreou este ano. Entre outras coisas, fomos surpreendidos pelo baixo nível de desenvolvimento atual. O CRI-O, o tempo de execução leve do Kubernetes, apareceu na Red Hat em 2016 e foi aceito no CNCF © em 2019. Acreditamos que o nível de desenvolvimento aumentará assim que os usuários do Red Hat OpenShift migrarem da v3 para a v4, onde o CRI-O substitui o mecanismo Docker adotado anteriormente.
A densidade de contêineres em um servidor físico está crescendo a 100%
No ano passado, o número médio de contêineres por servidor físico aumentou para 30, dobrando em comparação com 15 em 2018 e 10 em 2017.

Acreditamos que esse número aumentará com base em vários fatores:
- Um aumento no número de aplicativos sendo migrados para a infraestrutura de nuvem;
- Inclusão de dados de clientes locais do Sysdig executando clusters maiores e mais densos;
- O crescimento da "potência" da computação, permitindo que mais contêineres funcionem em cada servidor.
Em 2019, a densidade máxima de contêiner por nó foi de 250, e esse é um aumento de 38% em relação a 2018.
Orquestra de Contêineres: Kubernetes Domina
Não é de surpreender que, como um instrumento de orquestração de fato, o Kubernetes tenha tomado até 77% da parte dos orquestradores usados. Esse número aumentará para 89% se você adicionar o Red Hat OpenShift e o Rancher - ambos criados no Kubernetes. E aqui está a situação atual em números:

Se você separar os dados das empresas que implantam a plataforma Sysdig localmente, a imagem da orquestração muda significativamente. Nesse segmento, a Red Hat OpenShift Container Platform está assumindo a liderança. O principal motivo é que as organizações de usuários, geralmente grandes e cautelosas, querem tirar proveito do Kubernetes, mas preferem fazer isso com soluções locais comercialmente suportadas, como Plataforma como Serviço (PaaS), como OpenShift.

Também no relatório de 2019, examinamos as estatísticas sobre o uso de nuvens públicas. Faça o download para obter detalhes .
Segurança e conformidade
"Implementar a segurança antecipadamente" tornou-se uma frase obsessiva. Ele descreve uma abordagem em que a segurança é incorporada nos estágios iniciais do ciclo de vida do desenvolvimento. Em geral, as organizações de contêineres entendem como integrar segurança e conformidade ao fluxo de trabalho do DevOps. Para obter informações sobre segurança e conformidade em contêineres e Kubernetes, analisamos dados das áreas de verificação de vulnerabilidades, segurança do ambiente de inicialização e conformidade com o CIS.
Gerenciamento de vulnerabilidades
Os clientes digitalizam imagens para detectar, bloquear e eliminar vulnerabilidades de contêiner em pipelines de CI / CD e registros de contêiner. No relatório completo, analisamos os registros utilizados, a porcentagem de imagens extraídas de repositórios públicos e privados. Também fornecemos a proporção de varreduras de imagens com êxito / sem êxito, em busca de vulnerabilidades. Aqui estão algumas conclusões.
Extração de Imagem: Repositórios Públicos x Privados
Quantos contêineres são recuperados de repositórios públicos ou privados? Descobrimos que 40% das imagens vêm de fontes publicamente disponíveis.

O uso de imagens de contêiner em repositórios abertos é complicado - porque apenas alguns deles atendem aos padrões ou são verificados quanto a vulnerabilidades de segurança. Tomemos, por exemplo, o Docker Hub : as imagens rotuladas como "Certificado", "Oficial" e "Editor verificado" são mais confiáveis. No entanto, dos três milhões de imagens hospedadas no servidor, menos de 1% tem essas designações. Para reduzir os riscos, as equipes de nuvem criam políticas para determinar quais registros de contêineres podem ser aprovados para uso em suas organizações.
Digitalização de imagem
Independentemente da origem, a varredura de uma imagem em busca de vulnerabilidades conhecidas antes de implantá-la em um ambiente de produção é uma prática recomendada que não pode ser negligenciada. Para avaliar a extensão dos riscos ou vulnerabilidades, coletamos amostras das imagens que passaram e falharam na verificação, verificadas por um período de 5 dias. Mais da metade das imagens não passou no teste, o que significa que foram identificadas vulnerabilidades conhecidas de alto e muito alto grau de perigo.

Riscos de segurança
Depois que os desenvolvedores resolvem problemas conhecidos, as equipes de nuvem devem estabelecer políticas que determinam comportamentos anormais e forçam um alerta de segurança a ser acionado em um ambiente de produção. O ambiente de inicialização de segurança do Kubernetes é algo novo para as empresas, mas elas entendem o que é o que, rapidamente. No ano passado, o Falco , o projeto de segurança de código aberto do CNCF para a segurança do ambiente de lançamento, contribuiu com o Sysdig do Docker Hub 6,7 milhões de vezes. Isso é 252% a mais do que no ano anterior.
Observamos uma violação da política no contexto do volume de alertas que os clientes receberam do Sysdig Secure, que automatiza a segurança do ambiente de inicialização com as políticas da Falco. Ele identifica os tipos de riscos à segurança mais comumente encontrados pelos usuários do contêiner. Entre eles, os mais comuns são:

1 - Tentativas de acessar volumes, diretórios ou arquivos confidenciais; 2 - Introdução com muitas permissões ou tentativas de expandir privilégios; 3 - Iniciando um shell de comando a partir de um terminal conectado
Em um relatório completo sobre o uso, examinamos em detalhes 10 violações, classificando-as por frequência e, ao mesmo tempo, descrevendo cada uma delas, explicando a ameaça em potencial.
Conformidade
Para reduzir riscos e atender aos padrões de conformidade, incluindo PCI-DSS, HIPAA e GDPR, as organizações devem revisar regularmente servidores e contêineres usando as melhores práticas. As auditorias realizadas usando os benchmarks integrados do CIS para verificações do Docker no Sysdig Secure mostram que ainda há espaço para melhorias. Por exemplo, descobrimos que geralmente em servidores de contêiner existem:

As 10 melhores soluções de contêineres de código aberto
O código aberto mudou a face do processamento de dados em toda a empresa. Ele não apenas impulsiona a inovação em toda a infraestrutura, mas também especialmente no desenvolvimento de aplicativos. O Sysdig abre automaticamente os processos dentro dos contêineres para ver as soluções que compõem os serviços em nuvem que nossos clientes executam no ambiente de produção. E aqui estão os 10 melhores:

Dos novos produtos deste ano são Node.js e Go (também conhecido como golang), que estão à frente do Java em termos de uso. Java é merecidamente considerado uma das linguagens de programação mais destacadas. As equipes de DevOps e nuvem parecem preferir opções mais novas, como Go, criadas pelos engenheiros do Google, em parte porque são mais fáceis de usar. Por exemplo, o Node.js, uma estrutura JavaScript, facilita a gravação de código que funciona igualmente bem em servidores e navegadores. Também é adequado para uma nova geração de bancos de dados, como o CouchDB e o MongoDB, que oferecem suporte a consultas gravadas em JavaScript.
Vida do recipiente
Os parâmetros de quanto tempo (ou quão pouco) os contêineres permanecem, as imagens e os serviços do contêiner são um dos tópicos mais populares em nosso relatório para 2018. Ele reflete como os aplicativos modernos são mais dinâmicos, tanto em termos de desenvolvimento quanto em tempo de execução.
Vida útil curta do contêiner
Comparando ano após ano a vida útil dos contêineres, descobrimos que o número de contêineres que vivem menos de 10 segundos dobrou e chegou a 22%. Ao mesmo tempo, o número de contêineres que vivem 5 minutos ou menos também dobrou.

Muitos contêineres exigem uma vida útil curta para apenas cumprir a função e se autodestruir imediatamente. Parece que os segundos não são suficientes, mas para alguns processos não é necessário mais. Acreditamos que o aumento do uso do Kubernetes Jobs, que executa tarefas finais como trabalhos em lotes, contribuiu para esse crescimento. Para dizer mais, esperamos um aumento no número de contêineres de baixa vida útil, especialmente em plataformas sem servidor que são adequadas para executar tarefas de curto prazo.
A natureza efêmera dos contêineres é uma das vantagens exclusivas da tecnologia. Ao mesmo tempo, isso complica muito tarefas como "ver problemas de segurança, desempenho e desempenho". Ferramentas de monitoramento, segurança e conformidade em tempo real que fornecem observabilidade em tempo real à luz de processos de curta duração são a chave para operações bem-sucedidas.
Desenvolvimento contínuo e vida útil das imagens
Os contêineres são o companheiro perfeito para agilidade. Eles ajudam a acelerar o desenvolvimento e a liberação de código, geralmente na forma de microseurises em contêiner. Descobrimos que mais da metade das imagens dos contêineres são substituídas - ou revisadas - em uma semana ou menos. Essa é uma indicação de como o tempo entre as liberações de código foi reduzido. Além disso, isso indica que os pipelines de CI / CD ajudam as equipes de desenvolvimento a fornecer atualizações de software em um ritmo extraordinariamente rápido.

Métricas de código especial
Métricas de código especiais permitem que os desenvolvedores e equipes do DevOps personalizem o código para coletar métricas exclusivas. Das três soluções fundamentais: JMX, StatsD e Prometheus, no ano passado, o Prometheus emergiu como líder em termos de usabilidade. De fato, ao longo dos anos, o uso das métricas do Prometheus para nossos clientes que usam métricas personalizadas aumentou 130%. As métricas JMX (para aplicativos Java) e StatsD são usadas cada vez menos (45% e 17%, respectivamente, este ano), à medida que o uso de novas estruturas de programação que oferecem suporte ao Prometheus está crescendo.

Para as principais métricas e exportadores de Prometheus usados pelos clientes da Sysdig, consulte o relatório completo.
Principais configurações de emergência
As configurações de emergência dos clientes Sysdig demonstram claramente quais comandos na nuvem são as maiores ameaças às operações de contêiner. As configurações de emergência mais comuns mudaram a favor da infraestrutura Kubernetes, continuando a se concentrar na utilização de recursos e no tempo de atividade. Aqui estão os 3 principais de mais de 800 configurações de emergência exclusivas distribuídas para clientes Sysdig:

Além disso, os alertas podem ser configurados para tags específicas ou atalhos na nuvem / Kubernetes. Digamos, usando o exemplo dos alertas acima, você pode vincular o alerta cpu.used.percent a um espaço para nome individual do tipo "istio-system" ou a um nome de Pod específico do tipo "enviado" dentro do espaço para nome. Veja as principais ligações de alerta no relatório completo.
Padrões de uso do Kubernetes
Quantos clusters os usuários estão gerenciando? Quantos pods em cada nó? Alguém usa os trabalhos do Kubernetes? O relatório de 2019 responde a essas e outras perguntas. Aqui está um exemplo de quais clientes estão implantando com o Kubernetes.
Alguns clientes instalam apenas alguns clusters - um maior e um pouco menor - enquanto outros possuem uma frota impressionante de muitos clusters de vários tamanhos. As tabelas abaixo mostram a distribuição do número de clusters e o número de nós por cluster para clientes da plataforma Sysdig:

Um grande número de clientes gerenciando um único cluster ou um pequeno número deles indica que muitas empresas estão apenas começando a desenvolver o Kubernetes. O resultado da observação também foi influenciado pelo uso dos serviços gerenciados do Kubernetes em nuvens públicas. Com serviços como Amazon Elastic Kubernetes Service (EKS), Google Kubernetes Engine (GKE), Azure Kubernetes Service (AKS) e IBM Cloud Kubernetes Service (IKS), os usuários podem girar e dividir clusters o mais rápido possível.
O número de pods por cluster
Os pods são o menor objeto implantável no Kubernetes. Eles consistem em um ou mais contêineres com armazenamento e rede comuns, além de uma especificação sobre como iniciar contêineres. Aqui está uma análise dos usuários da plataforma Sysdig:

Importante! Esta tabela foi atualizada para corrigir o erro na imagem original. Muito obrigado a Chris Collins, também conhecido como @ChrisInDurham, por perceber o problema!
Número de Pods por servidor físico
O pod existe no servidor físico até que todos os seus processos sejam concluídos, mas pode ser excluído ao se mudar para outro servidor, no caso de recursos insuficientes ou falha do servidor físico. Aqui está um instantâneo da distribuição de Pods para o servidor para usuários da plataforma Sysdig:

Informações sobre o número de namespaces, implantações, StatefulSets e tarefas do Kubernetes estão disponíveis no relatório completo.
Conclusões
Desde o nosso último relatório de uso, a densidade de contêineres dobrou e é óbvio que a velocidade do desenvolvimento aumenta à medida que você se acostuma. As principais conclusões do nosso terceiro relatório anual enfatizam a necessidade de as empresas tomarem medidas para se preparar para o rápido crescimento esperado:
- As organizações devem investir nas ferramentas do Kubernetes para simplificar as operações escalonáveis.
- A observabilidade em tempo real, fornecendo auditoria detalhada e registros analíticos para contêineres de baixa vida, é fundamental para a segurança das operações.
- Para superar os riscos ao tempo de execução, as equipes de nuvem devem agir agora - e integrar a segurança ao DevOps.
- À medida que o Prometheus fortalece sua posição como líder nos padrões de coleta de métricas de aplicativos em nuvem, os usuários devem aprender a usá-lo enquanto fornecem confiabilidade e escalabilidade.
Para descobrir todos os detalhes, baixe o relatório completo de uso do Sysdig para 2019 .