Arquivo

Archive for the ‘E-Commerce’ Category

Integração de sistemas – Melhores práticas

24/04/2014 3 comentários

A algum tempo escrevi esse artigo e nunca postei.
É bem interessante e uso como base para iniciar qualquer processo de integração.

———————-

Visão do negócio

É melhor contratar um freelance ou uma empresa de integração?

A decisão de contratar um freelance ou uma empresa depende 90% do budget ($$$). Toda empresa quer que seus sistemas se conversem, mas não quer pagar caro por isso porque ela já paga por manter várias outras tecnologias. E ela não quer gastar muito mais para manter esses sistemas conversando. Manter essas integrações funcionando é uma tarefa crítica que pode requerer vários profissionais e tempo. Muitas vezes as próprias empresas que cuidam desses sistemas (ERP, plataformas de e-commerce) se responsabilizam por manter os sistemas integrados a partir de um contrato mensal de manutenção.

O quadro abaixo exemplifica melhor os pontos positivos e negativos de cada uma das opções.

Freelancer

 Contratar um freelance é para pequenas empresas que não tem condições de contratar uma empresa/equipe para atendê-lo. Mas lembre-se que contratar o “filho do meu amigo” (que acabou de terminar a faculdade) tem grandes riscos:

  • Muitas vezes não tem a experiência necessária
  • Não tem 24 horas disponível para atender suas solicitações
  • Ele faz todos os papeis de uma empresa: atendimento, jurídico (contrato), marketing, projetos/operacional, arquitetura/desenvolvimento, suporte, etc. Lógico que uma única pessoa não consegue fazer tudo isso sozinho no mesmo tempo que uma empresa.
  • Normalmente ele tem um emprego fixo que é muito mais importante do que o seu projeto.

 

O que deve ser lembrado em um processo de integração!

A integração é um processo que precisa estar funcionando, mas sempre um lugar obscuro que fala uma linguagem mais “baixo nível” (Geek) e operacional. Para o cliente é sempre um buraco negro que ele prefere não colocar o nariz, mas necessita que esteja funcionando.

Imagina se os pedidos não descem para o ERP!

Na visão do negócio é importante ressaltar processos de integração podem falhar. A questão é como tratar o erro para que isso não cause grandes danos para o cliente. Por exemplo, se uma integração de estoque ou preço falharem, o que deve ser feito? Quem deve ser avisado? Deve haver um suporte 24×7? Se sim, quanto o cliente quer/pode pagar por isso?

  • Processo de integração (batch / online);
  • Modo de integração (http(s) / soap / wcf / rest / file / xml / …)
  • A carga inicial deve ser feita em um processo batch diferente da integração continua caso a quantidade de dados seja muito grande;
  • Separar as integrações críticas (como preço e estoque) em processos independentes;
  • Tratar as dependências entre integrações. Ex: Você precisa integrar as categorias antes de criar um produto;
  • Tratar o erro para que ele não trave sua integração;
  • Prever o reprocess manual/automático dos registros que derem erro.
  • Controlar a integração contínua através de uma chave iterativa (id/timestamp/ por exemplo);
  • Analisar se a melhor opção de “De/Para de informações“ deve ser feito nos dados de origem, integração ou destino?
  • Sempre processar informações em bloco. É necessário receber uma quantidade considerável de informações em cada integração. (Ex: a cada integração trazer 500 produtos)
  • É necessário prever performance. Não é necessário processar um dado que já foi processado exatamente com a mesma informação.
  • As regras de negócios devem necessariamente estar em um único local. Replicar a regra de negócio na integração não pode ser uma opção. O dado já precisa vir “processado”.
  • Escalabilidade: capacidade de aumentar o processamento de informações inserindo mais hardware.
  • Paralelismo: desenvolver a integração permitindo o processamento em threads.

 

Visão da tecnologia

O que deve ser lembrado em um processo de integração!

Olhando para o lado do desenvolvimento, existem muitas questões técnicas que devem ser lembradas quando desenvolvemos uma aplicação que deve fazer o “meio de campo”.

  • Utilização de Culture nas integrações. Independente da configuração do seu sistema operacional sua integração funcionará;
  • Formatação de data;
  • Tamanho de campo;
  • Tipo do campo;
  • Regra de negócio. Preferencialmente manter a regra de negócio fora da integração para facilitar a manutenção. Uma opção é que essas regras fiquem dentro de um CRM;
  • De/Para de Campos;
  • Controle de timeout para cada integração;
  • No controle de integração contínua lembrar que muitos registros podem ter sido atualizados exatamente no mesmo milissegundo. O melhor modelo é utilizar 2 chaves (id e timestamp) ;
  • Paginar as entregas de informação para garantir performance. Seguir modelo de grandes empresas como Twitter;
  • Controle de reprocessamento deve rodar separado e nunca em paralelo pois pode sobrescrever um dado mais atual. Controlar se dado de reprocess é mais atual do que o último processado.

 

Caso de uso

Abaixo temos um caso particular de integração que começou com muitos problemas de arquitetura até chegar a um modelo válido e performático.

O caso abaixo é referente a integração de catálogo de produtos entre 2 plataformas de e-commerce de uma multinacional.
O escopo do projeto era manter a integração contínua de catálogo de produtos/skus o mais próximo do “online”. Eles têm um total de 100 mil produtos ativos que tem constantes alterações de preço, descrição, estoque, imagem, categoria, etc.

1ª solução

Receber um “feed“ completo com todas as informações e atualizar no 2º ambiente.

integracao_melhorespraticas01

Essa é a solução mais simples e sua única vantagem é que o “feed” retorna toda a informação necessária. Nesse caso não existe dependência de informações. Mas essa solução só atende processos muito simples, pois não tem nenhuma performance ou escalabilidade.

integracao_melhorespraticas02

2ª solução

Receber um “feed“ páginado com todas as informações e atualizar no 2º ambiente.

integracao_melhorespraticas03

Nessa solução a paginação resolve parte do problema de performance da integração pois não precisa buscar todos os dados de uma única vez. Mas essa solução não atende grande quantidade de atualização, podendo nunca chegar a estar online.

integracao_melhorespraticas04

3ª solução

Separar as integrações utilizando paginação e atualizar no 2º ambiente.

integracao_melhorespraticas05

Essa solução prevê que atualizações importantes precisam ter um processo separado (por exemplo: preço e estoque).
Mas existe uma forte dependência de informação (Ex: caso a integração receba o preço antes do produto). A solução também não é escalável e não pode ser paralelizada.

integracao_melhorespraticas06

4ª solução

O “feed” de origem traz apenas a chave (id) do que foi alterado. A integração é responsável por buscar o dado atualizado em outro “feed” e atualizar o destino.

integracao_melhorespraticas07

Agora sim estamos partindo para uma solução mais profissional. Sempre que existe alguma alteração, a integração recebe apenas o ID do registro que deve ser atualizado. A própria integração é responsável por buscar as informações atualizadas em outros “feeds” e então enviar o dado para o destino necessário.
Está resolvido o problema de paralelismo já que a máquina de integração pode ser multiplicada. Vale lembrar que ela é responsável por controlar a busca de informação, ou seja, precisa trabalhar usando a mesma base de dados.

integracao_melhorespraticas08

5ª solução

O “feed” de origem traz apenas a chave (id) do que foi alterado. A integração que lê essa informação e coloca em uma fila de processamento.
Outro processo da integração lê da fila, indica que está lendo esse  dado. Esse mesmo processo é responsável por buscar o dado atualizado em outro “feed” e atualizar o destino.

integracao_melhorespraticas09

Chegamos a uma solução robusta que atende grande parte das integrações.
Utilizando essa arquitetura é possível aumentar as máquinas de integração, permitindo que a integração contínua se torne escalável. É importante lembrar que a fila é responsável por controlar e entregar para cada máquina o próximo item a ser processado.

integracao_melhorespraticas10

Anúncios

BIN do cartão de crédito

28/03/2014 2 comentários

Como sempre, estou trabalhando com e-commerce. E agora desenvolvendo integração com Gateways de pagamento. Uma coisa muito interessante é entender o que é o BIN (Bank Identification Number) de um cartão de crédito.
Aquele número no seu cartão de crédito indica várias coisas:

  • Qual o banco emissor
  • Bandeira
  • Dados da sua conta
  • Dígito verificador

Mais informações e detalhes aqui.

No BinDB existe um DataBase de BINs e alguns exemplos. Bem interessante.

Abraços

Categorias:E-Commerce

TecNagem-Hospedagem-ebitSaiu o relatório webshoppers 2014 feito pela e-bit. Esse relatório mostra todas as tendências do mercado de e-commerce. Vale muito a pena absorver todo esse conteúdo.

http://www.ebit.com.br/webshoppers

Aproveitem.

 

Categorias:E-Commerce

A psicologia dos consumidores e os checkouts no e-commerce

Pesquisa retirada 100% desse endereço: http://www.business2community.com/infographics/consumer-psychology-e-commerce-checkout-0688677

Muito legal analisar e estudar os resultados.

Consumer-Psychology-and-ECommerce-Checkouts-Infographic-SML

Categorias:E-Commerce

Processo de deploy automático várias vezes ao dia

Uma das coisas que temos discutido bastante dentro da empresa é como ser mais ágil e conseguir disponibilizar melhorias e correções de bugs o mais rápido possível para o cliente.
Temos discutido muito qual a melhor forma de estruturar/arquitetar equipes e sistemas para que isso seja possível.
Abaixo tem um post muito interessante de como a http://www.hubspot.com/ está fazendo isso.

http://dev.hubspot.com/blog/how-we-deploy-300-times-a-day

 

Categorias:E-Commerce, Tecnologia

E-commerce KPI’s

Achei um site bem interessante sobre vários KPI’s para o e-commerce.
http://www.shopify.com/blog/7365564-32-key-performance-indicators-kpis-for-ecommerce#axzz2kWBXyuXB

Vai ajudar na criação do Dashboard que estamos desenvolvendo aqui na empresa!!!

Aproveitem

Categorias:E-Commerce

SEO: Como Fazer Redirecionamentos em Lojas Virtuais

Um guia muito legal de como o redirecionamento pode ser uma coisa bem complexa de ser tratada dentro de um e-commerce.

http://www.profissionaldeecommerce.com.br/redirecionamentos-em-lojas-virtuais/

Muito legal. Aproveitem.

 

Categorias:E-Commerce