A CloudEvents é uma especificação open source que descreve dados de eventos de maneira padrão e destina-se a facilitar a declaração e entrega de eventos em serviços e plataformas. A força motriz por trás da especificação é a Cloud Native Computing Foundation (CNCF), que anunciou recentemente que a especificação atingiu um marco na versão 1.0.
Em abril de 2017, o CNCF iniciou um grupo de trabalho (WG, Working Group em inglês) para explorar os pontos semelhantes entre a tecnologia nativa da nuvem e a tecnologia serverless fortalecida pelos participantes da AWS, Google, Microsoft, IBM, IBM, SAP, Red Hat, VMware e muito mais. Clemens Vasters, arquiteto principal do Serviços de Mensagens e Padrões da Microsoft, compartilhou com o InfoQ sua visão sobre a colaboração:
Estamos envolvidos no projeto CloudEvents desde o início, trazendo a experiência em aplicações de mensagens e eventos em grande escala e os requisitos e cenários dos clientes. Do ponto de vista da colaboração, este projeto foi extremamente bem-sucedido. O CloudEvents foi formado por mais de vinte organizações diferentes, incluindo todos os principais provedores de plataforma de nuvem pública e muitos usuários da plataforma. A atmosfera foi muito produtiva durante todo o projeto, apesar da concorrência acirrada no mercado. Estamos orgulhosos com o resultado final.
O CNCF aceitou o CloudEvents como um projeto Sandbox em maio de 2018, como um início para amadurecer em direção à incubação e, finalmente, ser graduado ao atender aos critérios do CNCF. Agora, o Comitê Técnico de Supervisão da CNCF (TOC, Technical Oversight Committee em inglês) havia promovido o projeto de sandbox da CloudEvents para o nível de "incubação", que é a camada intermediária no modelo da CNCF. O próprio WG continuará focado no CloudEvents até chegar ao nível de maturidade, ou "graduação", no futuro. Vasters comentou ao InfoQ:
O nível de graduação na maturidade dependerá principalmente da aceitação. Os SDKs ainda precisarão evoluir, e haverá outras extensões, mas não planejamos atualizações significativas para o núcleo daqui em diante. O objetivo é que a especificação seja estável.
Com a especificação, os desenvolvedores devem ter a possibilidade de criar facilmente aplicações serverless, que possam aceitar eventos de várias outras plataformas na nuvem, aproveitando os metadados padronizados que o CloudEvents oferece. Vasters salintou:
Por fim, todos queremos que os clientes criem aplicações orientados a eventos de maneira consistente, independentemente de onde os eventos são gerados. Acreditamos que atingimos esse objetivo com o CloudEvents v1.0 e estamos ansiosos para que o setor adote essas convenções, e então os clientes devem esperar que o CloudEvents desempenhe um papel significativo nas ofertas da plataforma Azure em o futuro próximo.
Além disso, Vasters afirmou:
O objetivo era fornecer uma definição do setor e uma estrutura aberta para o que é um "evento", quais são os elementos semânticos mínimos, como os eventos são codificados para transferência, como são transferidos e como o fazem usando as principais codificações e protocolos de aplicações em uso. Tudo isso, analisando o que já temos, sem a necessidade de reinventar a roda.
Atualmente, vários participantes do grupo de trabalho adotaram CloudEvents nas ofertas de serviços, tais como Fluxo de Eventos da Red Hat, e plataformas Kyma da SAP. Além disso, a Microsoft apoiou uma versão anterior CloudEvents no serviço de Event Grid, e a expectativa é incluí-lo como formato nativo em breve, com a versão 1.0, deixando o obsoleto formato proprietário no passado.
Além de fornecedores de nuvem que suportam o CloudEvents, alguns oferecem serviços que não necessariamente endossam esse formato. Por exemplo, a Amazon possui o EventBridge, um serviço para os clientes criarem e gerenciarem soluções orientadas a eventos. Ou o TriggerMesh, que lançou recentemente a oferta da plataforma EveryBridge, um barramento de eventos entre nuvens que permite aplicações nativas da nuvem orientados a eventos em vários provedores de nuvem e infraestruturas locais.