A Oracle lançou a Fn, uma plataforma serverless open source e com cloud-agnostic uma nova plataforma open-source, cloud-agnostic, sem servidor. Ao suportar “qualquer linguagem de programação”, o projeto Fn foi inicialmente lançado com muitas capacidades Java e com o framework de teste JUnit.
O projeto Fn é constituído por quatro principais componentes: Fn Server, Fn FDKs, Fn Flow e Fn Load Balancer. Escrito em Go, a Fn Server é a plataforma que executa o código.
Os desenvolvedores podem utilizar o FDK (Function Development Kit) para a sua linguagem favorita, que possibilita criar e testar as funções que implementam as funcionalidades de negócio. Uma vez que o código é empacotado, é realizado o deploy no Fn Server. O Fn Flow fornece uma ferramenta que possibilita sequenciar e orquestrar workflows para que as funções possam ser encadeadas para implementar processos de negócios de mais alto nível. Isso remove o problema de acoplamento que é comum nas arquiteturas de microservices devido à necessidade de um serviço chamar o outro. O Fn Load Balancer é uma ferramenta para equipes de operação que possibilita a implementação de clusters de Servidores Fn e fazer o roteamento do tráfego para eles.
Como o projeto recentemente anunciado da Spring Cloud Function, o Fn da Oracle fornece uma estrutura agnóstica da plataforma em nuvem. As funções são empacotadas como containers que podem ser executadas em qualquer plataforma que suporte Docker. Ser “container-nativo” foi um objetivo claro para a equipe que desenvolveu o projeto Fn, como também foi torna-lo open source. Em uma postagem no blog, Chad Arimura, vice-presidente de desenvolvimento de software da Oracle, afirmou que a equipe do Fn acredita que código aberto é a maneira como atualmente o software é entregue e adotado. Assim, o Projeto Fn está opensource com a licença Apache 2.0 e a estratégia parece estar trazendo resultados.
Arimura é o antigo fundador e CIO da Iron.io. Tanto ele quanto a equipe que desenvolveu IronFunctions (uma das pioneiras plataformas serverless), foram para a Oracle no ano passado e o resultado foi o projeto Fn. Possivelmente, um dos próximos passos no roteiro é lança-lo como um serviço no Oracle Cloud, embora Arimura considere a facilidade de análise da plataforma como um dos diferenciais comparado aos outros frameworks serverless. Por ser container-nativo, ter suporte mais completo ao desenvolvedor e ter um orquestrador agnóstico, Arimura acredita que essas características chaves ajudarão o projeto Fn a se destacar na área de plataformas serverless.
Embora o Oracle Fn tenha sido lançado com um abrangente Java FDK, Shaun Smith, diretor de gerenciamento de produtos da Oracle, disse ao InfoQ que já houveram pessoas que contribuíram com suporte à outras linguagens (incluindo Haskell), bem como aprimoramentos para o Fn Flow para executar AWS ASL .
Fonte: https://www.infoq.com/br/news/2017/12/OracleFn