Estou escrevendo um software de pesquisa de marketing quantitativo e tenho uma situação de "cego líder cego" no trabalho.
Não estou acostumado a escrever aplicativos da Web ou configurar servidores; a maior parte do código que escrevo deve ser executada apenas por mim, na minha máquina. O chefe diz que chegou a hora de interfaces web agradáveis e um piloto em escala corporativa de um dos meus projetos de pesquisa, e cabe a mim especificar a arquitetura. Os caras do servidor da empresa só estão acostumados com as pilhas de LAMP de baunilha e estão ansiosos para ajudar, mas estão confiando em mim para a direção. (?!)
Veja o que estou tentando fazer:
- Coloque alguns produtos e emails de clientes em uma base de dados criada especificamente.
- Escolha um subconjunto de e-mails de clientes e alguns produtos do
banco de dados.
- Escolha alguns produtos e crie páginas da Web de pesquisa relacionadas.
- Envie e-mails para os clientes solicitando que eles façam uma pesquisa.
- Registre as respostas da pesquisa.
- Analise as respostas.
- Apresentar as respostas em uma interface da Web.
A análise e a interface são muito específicas do setor, e não há fornecedores terceirizados desse software de pesquisa de mercado, daí o DIY.
Veja como me propus a fazer isso:
- Interface da web para inserção de produtos e e-mails hospedada na intranet da empresa. Banco de dados para aceitar apenas conexões internas. Provavelmente script python no servidor para realmente fazer a inserção de dados, porque muita verificação de erros e outro processamento relacionado ao produto tem que acontecer primeiro e eu não quero fazer isso em php.
- Acesse endereços de e-mail no banco de dados e crie e-mails solicitando participação na pesquisa. Novamente, escreva isso em python. Interface com o Amazon SES para a entrega de correspondência em massa. Eu sou o único com acesso de execução a este script. Faça isso no meu PC.
- Crie pesquisas (no meu PC). Descarregar o conteúdo da pesquisa manualmente em uma pilha alugada do Azure que chamarei de VM1 por meio de sFTP. Devo estar usando nginx para esta pilha? O servidor só tem experiência de configuração com o Apache. A VM tem que lidar com conexões de 10k por hora nos dias em que os e-mails saem (é claro, vou começar devagar e monitorar isso).
- Sirva páginas HTML de pesquisa, usando php para fornecer o conteúdo certo para as pessoas certas, dependendo da variável de ID de pesquisa com hash que elas passam.
Escreva as respostas da pesquisa para o banco de dados armazenado em outra VM do Azure (chamada "VM2") usando php. Acesse através de um túnel VPN entre as duas VMs.
- Após alguns dias, leia as respostas da pesquisa por meio de outra VM executando o R. (túnel da VPN da VM2 para a VM3). Depois de carregar os dados em R, feche o túnel da VPN para isolar a VM3. Ainda na VM3, processe usando R e sirva isso via nginx, php e um addon de módulo de criação de gráficos javascript por meio de uma conexão SSL com outras pessoas interessadas na empresa.
Estou propondo algo realmente estúpido nessa lista? Está segregando o banco de dados em uma VM separada, adicionando alguma segurança ou estou apenas me enganando?