Dado este expectativas, que língua ou sistema que você escolheria para implementar a solução? [fechadas]

StackOverflow https://stackoverflow.com/questions/455618

  •  19-08-2019
  •  | 
  •  

Pergunta

Aqui estão as estimativas do sistema deve lidar com:

  • 3000 usuários finais
  • 150+ escritórios ao redor do mundo
  • 1500 usuários simultâneos nos horários de pico
  • 10.000+ atualizações diárias
  • 4-5 commits por segundo
  • 50-70 transações por segundo (leituras / pesquisas / atualizações)

Esta será a única aplicação de negócios internos, dedicada a empresa ajuda o transporte com a gestão de embarque em todo o mundo.

Qual seria a sua escolha de tecnologia, por que essa escolha e aproximadamente quanto tempo levaria para implementá-lo? Obrigado.

Nota: Eu não estou recrutando. : -)

Foi útil?

Solução

Então, você perguntou como eu iria lidar com esse projeto a. No mundo Smalltalk, as pessoas parecem concordar que Gemstone torna as coisas um pouco escala magicamente.

Então, o que eu realmente fazer é esta: eu começar a desenvolver em uma imagem Squeak simples, usando SandstoneDB . Então, neste momento viria em que uma única imagem começa a ser demasiado lento.

GemStone então se encarrega de copiar seus objetos públicos (aquelas visíveis a partir de uma determinada raiz ) para trás e para a frente entre todos os casos. Você começa sessões e funcionalidades de consulta aprimorados, além de um bom VM rápido.

Ele compartilha dados com C, Java e Ruby.

Na verdade, eles têm a sua própria VM para rubi, que é também olhar um valor.

Outras dicas

wikipedia gere muito mais exigentes requisitos com MySQL

Seus volumes são significativos, mas não é provável que se esforçar qualquer RDBMS credível se programado de forma eficiente. Se sua equipe é desleixado (ie, casualmente colocando consultas SQL diretamente em componentes que são então compostas em componentes maiores), você enfrenta a probabilidade de um efeito "multiplicador", onde uma exigência lógica (obter os dados necessários para esta página) se transforma em um elevado número de consultas de banco de dados físicos.

Então, ao invés de focar na capacidade dos seus RDBMS, você deve se concentrar na capacidade dos seus programadores e o grau em que a sua linguagem de implementação e meio ambiente facilitar a criação de perfil e refatoração.

O cenário que se propõe é claramente um 24x7x365 um, também, então você também deve considerar a necessidade de requisitos de monitorização / painel.

Não há nenhuma maneira de esforço de desenvolvimento estimativa baseada nas necessidades que você apresentados; é ótimo que você analisou suas transações com este nível de granularidade, mas o principal determinante do esforço de desenvolvimento serão os requisitos de domínio e de interface do usuário.

Escolha a tecnologia de seus desenvolvedores sabem e estão familiarizados com. Todas as principais tecnologias lá fora, vai lidar com esses requisitos com facilidade.

Seus números de atualização diária vs commits não se somam. Quatro commits por segundo = 14.400 por hora.

Você não mencionou nada sobre o tamanho do banco de dados esperado.

Em qualquer caso, gostaria de concentrar meus esforços em escolher um back-end robusto como Oracle, Sybase, MS etc. Esta escolha vai fazer mais diferença no desempenho. A extremidade dianteira poderia ser um aplicativo de desktop ou web app, dependendo das necessidades. Uma vez que este será usado em muitos escritórios ao redor do mundo, um aplicativo web pode fazer mais sentido.

Eu iria com MySQL ou PostgreSQL. Não é provável a ter problemas com qualquer um dos dois para suas necessidades.

I Love objeto-bases de dados. Em termos de commits por segundo e banco de dados de ida e volta, nenhum banco de dados relacional pode realizar-se. Confira db4o . É absolutamente fácil de aprender, confira os exemplos!

Quanto à linguagem de programação e estrutura de interface do usuário: Bem, pegue o que sua equipe é bom. linguagens dinâmicas com menos desperdício meta-tempo provavelmente irá poupar tempo.

Não há informação suficiente aqui para dar uma recomendação apropriada. Um pouco mais de diligência está em ordem.

  • O que é a cultura de TI, como? Será que eles preferem lotes de pequenos servidores ou menos servidores maiores ou ferro grande? Qual é a sua posição sobre virtualização?
  • O que é a cultura corporativa como? Qual é o clima político como? As ofertas de código aberto pode muito bem lidar com a carga, mas você pode precisar de ir com um fornecedor proprietário só porque eles já são utilizados para navegar os ventos políticos de uma grande empresa. A percepção é importante.
  • O que é o nível de organização maturidade? Será que eles já tem um Enterprise Architecture equipe no lugar? Será que eles sequer sabem o EA é?
  • Você descreveu o lado operacional, mas que sobre o lado analítico? Que tecnologia OLAP eles estão esperando para usar ou já tem no lugar?
  • Falando de integração, que outros sistemas será que você precisa para se integrar com?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top