Perguntas frequentes sobre desenvolvimento de RPA em Python

This is a discussion topic for the original post at Perguntas frequentes sobre desenvolvimento de RPA em Python - Botcity | Blog

O desenvolvimento de RPA em Python, assim como outras automações, está ganhando cada vez mais adesão. Realizando demonstrações para times de RPA de diversas empresas, a equipe da BotCity teve a oportunidade de discutir diversos aspectos de adoção e escala de operações de RPA complexas. Independente do estágio da empresa, a possibilidade de desenvolver RPA em Python tem gerado bastante discussão.

Neste artigo abordamos as principais questões discutidas sobre desenvolvimento de RPA em Python:

DESENVOLVIMENTO:

Quais bibliotecas Python posso utilizar para desenvolver meu RPA?
Preciso desenvolver meus próprios conectores em Python?
Python é menos produtivo do que low-code para desenvolver os RPAs?
Como detectar falhas de execução de um RPA em Python?
RPAs Desenvolvidos em Python executam mais rápidos do que em tecnologias low-code?

ORQUESTRAÇÃO:

Como orquestrar RPA feito em Python?
Como executar vários RPAs ao mesmo tempo?
Como agendar execução de RPA em Python?
Como implantar Business Intelligence em operação de RPA em Python?
Como ser notificado quando a execução do meu RPA Python finalizar?
Se minha operação de RPA em Python ganhar escala, como irei acompanhar toda a operação?

DEPLOYMENT:

Quais serviços na nuvem posso utilizar para executar meu RPA?
Após alterar o código do meu RPA Python, como atualizar a versão nos ambientes de execução?
É possível visualizar a saída de texto do meu RPA Python sem acessar o ambiente de execução?

CUSTOS E LICENÇAS:

Quais licenças comerciais estão envolvidas num RPA feito em Python?


DESENVOLVIMENTO


Quais bibliotecas Python posso utilizar para desenvolver meu RPA?

Existem diversas bibliotecas open source que podem ser utilizadas para desenvolvimento de automações em Python. Algumas delas:

O artigo Top 8 Python Frameworks to Develop RPA explora a questão em maior profundidade.


Preciso desenvolver meus próprios conectores em Python?

Não. Conectores em ambientes low-code foram criados para abstrair conceitos técnicos para usuários não técnicos. Até mesmo uma tarefa simples como mover um arquivo, demanda um conector: Copy or Move Files – UiPath

Já conectores para tarefas mais complexas, na maioria dos casos foram criados para encapsular funcionalidades providas por SDKs de terceiro. O UiPath fornece um conector para Amazon Web Services. Porém, o desenvolvedor Python pode utilizar diretamente o SDK provida pela própria Amazon, na sua última versão com as funcionalidades mais modernas.

Há ainda diversos casos de sistemas nacionais não suportados pelas plataformas de low-code. Não há conectores para os serviços da Serpro, por exemplo. Entretanto, no Serpro Github encontramos diversos exemplos para consumir as APIs de forma bem simples.

No caso de funcionalidades comuns a diversos projetos de RPA, como quebra de captcha, leitura de arquivos excel ou PDF, gerenciamento de senhas, armazenamento na nuvem, dentre outras, a BotCity oferece uma Biblioteca Completa de Plug-ins Python.


Python é menos produtivo do que low-code para desenvolver os RPAs?

Muitos profissionais acreditam que o desenvolvimento de RPA em Python será menos produtivo pois precisará escrever código para todas as etapas do RPA. Mas na verdade, existem diversas ferramentas e abordagens para gerar códigos automaticamente ou reutilizar soluções. O BotCity Studio, por exemplo, é capaz de gerar código Python automaticamente para navegar em sistemas Desktop e Web. No ambiente Web, o desenvolvedor RPA tem a opção de utilizar gravadores de processos (ex: Selenium IDE, Katalon Recorder), que são capazes de gerar códigos automaticamente para navegar em sistemas web. Fluxos gerados automaticamente podem ser orquestrados como qualquer outro RPA em Python.

Outro fator importante é a reutilização de soluções. Em nível de código, é muito simples reutilizar soluções criadas por outros desenvolvedores ou empresas em formato de bibliotecas, SDKs ou trechos de código. Além disso, é natural que empresas desenvolvendo RPAs em Python crie suas próprias bibliotecas para problemas comuns em múltiplos processos. Conforme a base de solução cresce, o time vai se tornando cada vez mais produtivo, demandando menos linhas de código para colocar uma nova solução em produção.


Como detectar falhas de execução de um  RPA em Python?

Reagir rapidamente a cenários de adversidade ou falha é fundamental para uma operação robusta de RPA Python. Neste ponto, quando um robô falha, desejamos:

  • Saber que o robô travou imediatamente por notificação.
  • Saber em que passo do processo automatizado aconteceu a falha.
  • Obter o máximo de informações sobre o ponto de falha.

No caso do orquestrador BotCity Maestro, múltiplas funcionalidades são fornecidas para atacar essa questão. Quando um robô trava, imediatamente todo o time pode ser notificado por notificação de sistema e e-mail. No alerta, é possível informar o passo que o robô travou e fornecer detalhes adicionais.

Para facilitar ainda mais, na próxima versão do BotCity Maestro, estará disponível uma tela exclusiva para tratamento de erros. Nela será possível visualizar dados da tarefa em questão, passo em que o robô falhou, informações do stack de erro e inclusive a tela de sistema no momento da falha. 


RPAs Desenvolvidos em Python executam mais rápidos do que em tecnologias low-code?

Sim. No momento da execução, os RPAs desenvolvidos em low-code são mais lentos pois não são programas de computador e precisam passar por interpretador de fluxo low-code. Por outro lado, RPAs desenvolvidos em linguagens de programação, ao final do processo, são programas de computador que podem tirar o máximo dos recursos computacionais disponíveis. Além disso, em nível de código é possível fazer diversas otimizações como uso de multi-threading, indexação em mapas para consultas, processamento otimizado de arquivos dentre outras estratégias.

Em código, o desenvolvedor tem a liberdade de otimizar as soluções utilizando diversas estratégias já consolidadas em desenvolvimento de software.

ORQUESTRAÇÃO

Como orquestrar RPA feito em Python?

Existe o mito de que RPA feito em Python não pode ser orquestrado. Normalmente, esse argumento surge de pessoas que conhecem exclusivamente soluções low-code. Existem plataformas exclusivamente para orquestração de automações criadas em Python. O BotCity Maestro, por exemplo, permite gerenciar deployment, agendar tarefas, gerenciar filas de execução, monitorar automações por log, notificar time por alertas dentre outras diversas funcionalidades de orquestração.


Como executar vários RPAs ao mesmo tempo?

Uma vantagem do desenvolvimento de RPA em Python é a possibilidade de rodar múltiplos RPAs no mesmo ambiente de execução. No caso de automações web, projetadas para executar em modo headless (background, sem tela), é possível executá-las numa mesma máquina virtual, cada uma com seu próprio processo independente do navegador em modo headless.

Esta estratégia dá uma escalabilidade muito maior para operações de RPA em Python.


Como agendar execução de RPA em Python?

No caso do orquestrador BotCity Maestro, isso é muito simples de fazer. Basta acessar a tela “Minhas Automações”, escolher a automação em questão, e especificar uma regra CRON para esta automação. Dada a regra CRON, novas tarefas esta automação serão adicionadas a Fila de Execução automaticamente. 


Como implantar Business Intelligence em operação de RPA em Python?

No caso do orquestrador BotCity Maestro, é possível utilizar conectores Google Data Studio e Power BI para levar dados da operação de RPA em Python para uma plataforma de data analytics. Dentro da plataforma, o usuário pode customizar visualizações conforme suas necessidades de acompanhar e entender seu operação de RPA baseada em dados.


Como ser notificado quando a execução do meu RPA Python finalizar?

Notificação de usuários sobre evento de interesse é uma das responsabilidades de uma plataforma de orquestração. No caso do BotCity Maestro, basta acessar o seu perfil de usuário e ativar as notificações que desejar. Toda vez que um evento de interesse ocorrer, você receberá um e-mail ou notificação em outro canal de comunicação.


Se minha operação de RPA em Python ganhar escala, como irei acompanhar toda a operação?

Iniciativas de RPA em Python tendem a escalar mais rápido do que iniciativas em outras tecnologias principalmente pelo perfil do time envolvido nos projetos e a flexibilidade da tecnologia. Portando, será fundamental diversos módulos de monitoramento e gestão a sua operação de RPA.

O BotCity Maestro é um Orquestrador Enterprise que foi desenvolvido para atender iniciativas de RPA Python em ambientes complexos, com centenas de automações e ambientes de execução e milhares de execuções diárias de trabalhos.

Os principais módulos de monitoramento do BotCity Maestro e seus propósitos:

Fila de Tarefas

Permite visualizar todas as tarefas, de todas as suas automações, enfileiradas para execução. É possível visualizar status e tempo de execução, controlar prioridades e outras propriedades.

Ambientes de Execução

Permite visualizar telas, status e logs de todos os seus ambientes de execução, sejam Máquinas Virtuais ou Serverless.

Alertas e Notificações

Seu time será notificado em tempo real sobre eventos de interesse da sua operação de RPA.

Tratamento de Erros

Toda vez que um robô entrar num ponto de falha, é possível visualizar a tela (screenshot), stack trace e outras informações associadas ao erro direto no Orquestrador.

Controle de Acesso

Todas as operações realizadas pelos usuários na plataforma de orquestração são registradas e podem ser consideradas para entender incidentes e atividades de auditoria.

DEPLOYMENT


Quais serviços na nuvem posso utilizar para executar meu RPA?

Uma vez que RPAs em Python são como qualquer outro programa de computador, você pode executá-los em qualquer solução de nuvem, seja AWS, Azure, GCP ou outro. Basicamente, você precisa configurar o ambiente para ter todas as dependências para execução do seu RPA Python.

O BotCity Runner é um processo que pode ser instalado em qualquer máquina virtual (AWS, Azure, GCP ou outras) ou container. As vantagens de utilizar o BotCity Runner no seu ambiente de execução:

  • Execução orientada a Fila de Tarefas
  • Download automático da versão de release do RPA.
  • Setup automatico do virtual environment de execução com todas as dependências.
  • Envio de logs e telas para o orquestrador automaticamente.

Após alterar o código do meu RPA Python, como atualizar a versão nos ambientes de execução?

Utilizando uma plataforma de orquestração, você não precisará se preocupar com a atualização das suas automações nos ambientes de execução. Toda vez que fizer uma alteração em um dos seus robôs, basta realizar o deployment no orquestrador e a partir desse momento, qualquer nova execução desta automação já será na nova versão.


É possível visualizar a saída de texto do meu RPA Python sem acessar o ambiente de execução?

Sim. Tudo que o seu robô imprimir durante a execução será direcionado para um arquivo de log que está acessível via interface web direto no Orquestrador de Automações.

CUSTOS E LICENÇAS


Quais licenças comerciais estão envolvidas num RPA feito em Python?

Uma grande diferença no desenvolvimento de RPA em Python quando comparado com plataformas de low-code é a forma que as tecnologias são licenciadas. O produto final de automações Python é puramente código Python e bibliotecas open source. Portanto, os robôs são propriedade intelectual de seus criadores, sem qualquer licença comercial envolvida. 

Plataformas de RPA em Python, como a BotCity, licenciam soluções para acelerar o desenvolvimento dos robôs e plataforma orquestradora para gerenciar e escalar a operação em ambiente de produção.

Tem uma sugestão de pergunta para ser respondida neste artigo?

Deixe sua pergunta nos comentários ou no nosso Canal no Slack.

Deseja utilizar BotCity Studio e Maestro gratuitamente?

Crie sua conta de Comunidade agora!

1 Like