Carga de trabalho
Na computação, uma carga de trabalho, tipicamente, é qualquer programa ou aplicativo que seja executado em qualquer computador. Uma carga de trabalho pode ser um simples despertador ou aplicativo de contato em execução em um smartphone, ou um aplicativo corporativo complexo hospedado em um ou mais servidores com milhares de sistemas clientes (usuário) conectados e interagindo com os servidores de aplicativos em uma vasta rede. Hoje, os termos carga de trabalho, aplicativo, software e programa são usados de forma intercambiável.
A carga de trabalho também pode se referir à quantidade de trabalho (ou carga) que o software mpõe aos recursos de computação subjacentes. De forma geral podemos dizer que, a carga de trabalho de um aplicativo está relacionada à quantidade de tempo e recursos de computação necessários para executar uma tarefa específica ou produzir uma saída a partir de entradas fornecidas. Uma carga de trabalho leve realiza suas tarefas pretendidas ou metas de desempenho usando relativamente poucos recursos de computação, como processadores, ciclos de CPU (unidade central de processamento), I/O de armazenamento (entrada/saída) e assim por diante. Uma carga de trabalho pesada exige quantidades significativas de recursos de computação.
As tarefas de uma carga de trabalho variam amplamente dependendo da complexidade e propósito pretendido do aplicativo. Por exemplo, um aplicativo de servidor web pode medir a carga pelo número de páginas da web que o servidor fornece por segundo, enquanto outros aplicativos podem medir a carga pelo número de transações realizadas por segundo com um número específico de usuários de rede simultâneas. Métricas padronizadas usadas para medir e relatar o desempenho ou a carga de um aplicativo são coletivamente referidas como benchmarks.
Tipos de cargas de trabalho
As cargas de trabalho são criadas para executar inúmeras tarefas diferentes de inúmeras maneiras, por isso é difícil classificar todas as cargas de trabalho em um único conjunto de critérios uniformes. Como exemplo, as cargas de trabalho podem ser classificadas como estáticas ou dinâmicas. Uma carga de trabalho estática está sempre em funcionamento, como um sistema operacional (OS), sistema de e-mail, planejamento de recursos corporativos (ERP), CRM (gestão de relacionamento com o consumidor) e muitos outros aplicativos centrais para as operações de uma empresa. Uma carga de trabalho dinâmica é efêmera e carrega e roda apenas quando necessário. Exemplos incluem instâncias temporárias rodadas para testar softwares ou aplicativos que realizam faturamento de fim de mês.
Como outro exemplo, as cargas de trabalho clássicas (da era do mainframe) eram frequentemente categorizadas como cargas de trabalho transacionais ou em lote. As cargas de trabalho transacionais trocam e processam dados de forma contínua, como sistemas de entrada de pedidos ou sistemas bancários/contábeis e, muitas vezes, são exemplos de cargas de trabalho estáticas. As cargas de trabalho em lote trocam e processam dados sob demanda ou conforme necessário, como sistemas de faturamento mensal e, normalmente, representam cargas de trabalho dinâmicas. Um terceiro tipo tradicional de carga de trabalho, computação em tempo real, enfatiza o alto rendimento e o baixo desempenho de latência para operar em ambientes sensíveis do mundo real, como sistemas médicos, militares e industriais.
A dramática diversificação do desenvolvimento de software introduziu inúmeras outras classificações de carga de trabalho. Por exemplo, cargas de trabalho analíticas analisam quantidades enormes de dados, às vezes de fontes variadas e desassociadas, para encontrar tendências, fazer previsões e direcionar ajustes às operações e relacionamentos comerciais. Esta é a noção subjacente por trás de uma programação mais avançada, como big data e tecnologias de software de machine learning.
Cargas de trabalho de computação de alto desempenho (HPC), frequentemente relacionadas a cargas de trabalho analíticas, realizam trabalhos computacionais significativos e, normalmente, exigem uma grande quantidade de recursos de processador (CPU) e armazenamento para realizar tarefas computacionais exigentes dentro de um prazo limitado, mesmo em tempo real.
As cargas de trabalho do banco de dados evoluíram como um tipo de carga de trabalho único, porque quase todos os aplicativos corporativos dependem de um banco de dados subjacente como uma dependência ou um serviço dentro da infraestrutura corporativa. As cargas de trabalho do banco de dados são amplamente ajustadas e otimizadas para maximizar o desempenho de pesquisa para outros aplicativos que dependem do banco de dados -- se o banco de dados tiver um desempenho ruim, isso causa um gargalo que reduz o desempenho dos aplicativos usando o banco de dados.
O surgimento da computação em nuvem na última década também impulsionou o desenvolvimento de mais tipos de carga de trabalho, incluindo software como serviço (SaaS), aplicativos baseados em microserviços e computação sem servidor.
Exemplos de cargas de trabalho que as organizações executam em servidores locais incluem máquinas virtuais, bancos de dados e aplicativos de negócios, como ERP e software de RH.
Escolhendo onde executar cargas de trabalho: Nuvem vs. local
A implantação da carga de trabalho - determinando onde e como a carga de trabalho é executada - é uma parte essencial do gerenciamento da carga de trabalho. Hoje, uma empresa pode optar por implantar uma carga de trabalho no local, bem como em uma nuvem.
Tradicionalmente, as cargas de trabalho são implantadas no data center corporativo, que contém todo o servidor, armazenamento, rede, serviços e outras infraestruturas necessárias para operar a carga de trabalho. A empresa é proprietária dos recursos de data center e computação e controla totalmente o provisionamento, otimização e manutenção desses recursos. A empresa estabelece políticas e práticas para a implantação do data center e da carga de trabalho, a fim de cumprir as metas de negócios e obrigações regulatórias vigentes.
Com o surgimento da internet, a computação em nuvem agora é uma alternativa viável a muitas implantações de carga de trabalho no local. A computação em nuvem pública é essencialmente a computação como um utilitário (sob demanda), permitindo que as organizações utilizem os recursos e serviços de computação de um provedor para implantar cargas de trabalho em instalações remotas de data center em locais ao redor do mundo, mas pagar apenas por esses recursos e serviços que são realmente consumidos em um determinado período de tempo -- normalmente, por mês. O provedor de nuvem emprega tecnologias complexas definidas por software para permitir que os usuários provisionem e usem seus recursos e serviços para arquitetar infraestruturas adequadas para cada carga de trabalho na nuvem.
O desafio para qualquer negócio é decidir exatamente onde implantar uma determinada carga de trabalho. Hoje, a maioria das cargas de trabalho de uso geral pode operar com sucesso na nuvem pública e, cada vez mais, os aplicativos são projetados e desenvolvidos para serem executados nativamente e exclusivamente em uma nuvem pública.
Tecnologicamente, as cargas de trabalho mais exigentes podem ter dificuldades na nuvem pública. Algumas cargas de trabalho exigem armazenamento de rede de alto desempenho ou dependem do volume suportado de tráfego da internet. Por exemplo, clusters de banco de dados que precisam de alto rendimento e baixa latência podem ser inadequados para a nuvem -- e o provedor de nuvem pode oferecer serviços de banco de dados de alto desempenho como uma alternativa. Aplicativos que dependem de baixa latência ou não são projetados para infraestruturas de computação distribuída são geralmente mantidos no local.
Questões técnicas à parte, uma empresa pode decidir manter cargas de trabalho no local por continuidade de negócios ou razões regulatórias. Os clientes em nuvem têm pouca visão real sobre o hardware subjacente e outras infraestruturas que hospedam as cargas de trabalho e os dados. Isso pode ser problemático para empresas obrigadas a atender requerimentos de segurança de dados e outros requisitos regulatórios, como auditoria clara e comprovante de residência de dados. Manter essas cargas de trabalho sensíveis no data center local permite que a empresa controle sua própria infraestrutura e implemente as auditorias e controles necessários.
Os provedores de nuvem também são empresas independentes que atendem seus próprios interesses comerciais e podem não ser capazes de atender às expectativas específicas de atividade ou resiliência de uma empresa para uma carga de trabalho. Interrupções de serviços acontecem e podem durar horas, mesmo dias, afetando negativamente as empresas clientes e sua base de clientes. Consequentemente, as organizações geralmente optam por manter cargas de trabalho críticas no data center local, onde uma equipe de TI dedicada pode mantê-las.
Algumas organizações implementam uma estratégia de nuvem híbrida que mistura serviços de nuvem no local, nuvem privada e nuvem pública. Isso proporciona flexibilidade para executar cargas de trabalho e gerenciar dados onde faz mais sentido, por razões que vão desde custos até segurança, governança e conformidade. Isso traz riscos calculados -- por exemplo, uma organização pode manter dados e cargas de trabalho confidenciais em seu próprio data center para preservar um controle mais direto sobre eles, mas também assume mais responsabilidades de segurança sobre eles.
Benefícios e desvantagens da execução de cargas de trabalho em nuvem
As empresas implantam cargas de trabalho na nuvem pública para utilizar uma série de benefícios potenciais que incluem:
- Gestão de custos. As empresas pagam por recursos e serviços públicos em nuvem sob demanda ou consumidos e são cobrados mensalmente. Esse modelo de custo permite que as empresas desempenhem muitas despesas de capital envolvidas na construção e manutenção de um data center local.
- Os provedores de nuvem pública suportam um grande número de recursos. Os usuários podem facilmente aumentar e reduzir as cargas de trabalho conforme necessário para lidar com quase qualquer demanda.
- As empresas podem implantar cargas de trabalho em uma ou mais regiões globais de nuvem pública para otimizar o desempenho da carga de trabalho (latência mais baixa) para áreas importantes do cliente que podem ser muito remotas para uma carga de trabalho no local.
- Residência de dados. As empresas podem estar sujeitas a regulamentações variadas de proteção de dados e residência de dados em diferentes países do mundo. O uso de uma nuvem pública com uma pegada global de data center pode permitir que uma empresa mantenha uma carga de trabalho e seus dados dentro da área geopolítica sujeitos a tais regulamentações.
Há também riscos sérios envolvidos com a computação em nuvem pública que todo usuário de nuvem deve considerar:
- Os usuários podem ver os recursos e serviços que são usados, mas geralmente não têm visibilidade, muito menos controle, sobre a infraestrutura multi-inquilino subjacente do provedor de nuvem. Isso torna impossível para uma empresa validar ou auditar demandas regulatórias para cargas de trabalho na nuvem pública.
- Interrupções. Paralisações às vezes ocorrem na nuvem pública, e os usuários são completamente dependentes do provedor de nuvem para solucionar problemas e corrigir interrupções dentro do contrato de nível de serviço (SLA) do provedor. Paralisações prolongadas impactam negativamente as empresas que usam a nuvem, bem como os clientes comerciais que dependem de cargas de trabalho implantadas na nuvem.
- Em última análise, uma nuvem pública é um parceiro de negócios, e as parcerias mudam com o tempo. Novos serviços aparecem, enquanto outros serviços são preteridos. O provedor pode se fundir ou ser adquirido, causando interrupção na nuvem e suporte. Os usuários de nuvem sempre precisam de um plano de prevenção anti-falhas de carga de trabalho para lidar com interrupções na nuvem.
Benefícios e desvantagens de executar cargas de trabalho no local
Muitas empresas continuam a construir e manter data centers mais tradicionais (embora, redimensionados) no local, o que pode fornecer benefícios para os negócios, incluindo:
- Visibilidade e conformidade. Uma empresa tem controle completo e visibilidade na infraestrutura do data center, incluindo todos os servidores, armazenamento, rede e outros hardwares, bem como sistemas operacionais e outros elementos da pilha de software. Os data centers no local são o alvo de implantação preferido para cargas de trabalho críticas ou exigentes de negócios que podem ser inadequadas para a implantação na nuvem pública, especialmente se envolverem conformidade regulatória ou problemas de alta segurança.
- Controle de infraestrutura. A empresa tem acesso a todos os arquivos de log e pode solucionar problemas, corrigir e auditar todas as atividades dentro do data center no local. As empresas podem tomar medidas proativas para proteger o ambiente local, fornecer pessoal adequado para resolver problemas em tempo hábil e manter os SLAs estabelecidos aos usuários da organização.
No entanto, os data centers no local também estão sujeitos a importantes desvantagens que podem afetar as operações de negócios:
- A construção de um data center tradicional pode ser um empreendimento significativo, especialmente para fornecer altos níveis de resiliência para atender às necessidades de cargas de trabalho que são fundamentais para o negócio. Há despesas altas de capital para construção e equipamentos, bem como despesas operacionais contínuas que incluem manutenção e utilidades que continuam independentemente da utilização da carga de trabalho.
- Proteção. O negócio também é completamente responsável por toda a proteção, como backups, instantâneos, a implementação de infraestruturas de alta disponibilidade (HA) e assim por diante. A proteção é vital para a continuidade dos negócios e muitas vezes está atrelada às demandas regulatórias. Proteger dados e manter cargas de trabalho críticas funcionando internamente requer políticas claras, ferramentas adequadas e conhecimento da equipe.
Ferramentas de gerenciamento de carga de trabalho
As ferramentas de software são elementos vitais do gerenciamento de carga de trabalho. As ferramentas podem informar sobre a disponibilidade, saúde e desempenho de cargas de trabalho importantes em ambientes locais ou em nuvem. As ferramentas podem, normalmente, rastrear os recursos e serviços disponíveis dentro da infraestrutura e relatar os comportamentos dos aplicativos desejados. Os administradores podem usar ferramentas para determinar rapidamente se um aplicativo está online, os recursos que consome e métricas relacionadas à sua atividade (como transações ou usuários simultâneos). Algumas ferramentas podem suportar cargas de trabalho no local e cargas de trabalho em grandes nuvens públicas no mesmo painel de vidro.
Existem muitas ferramentas de gerenciamento de carga de trabalho disponíveis. Muitas vezes, elas se enquadram nas categorias de monitoramento de desempenho de aplicativos ou gerenciamento de desempenho de aplicativos. Alguns exemplos incluem:
- AppDynamics
- AppEnsure
- CA Application Performance Management
- Datadog APM
- Dynatrace Application Performance Management
- ManageEngine Applications Manager
- New Relic APM
- SolarWinds Server and Application Monitor
- Splunk IT Service Intelligence
- WhatsUp Gold com add-on de monitoramento de aplicativos
Os provedores de nuvem geralmente oferecem ferramentas dedicadas projetadas para relatar os recursos e serviços consumidos por uma empresa, bem como a saúde e o desempenho de aplicativos em execução no ambiente em nuvem. Exemplos incluem o Console de Gerenciamento AWS e o portal Microsoft Azure.