Escale depois

Você ainda não tem um problema de escalabilidade

"Meu aplicativo vai escalar conforme milhões de pessoas comecem a usá-lo?"

Sabe de uma coisa? Espere até que isso realmente aconteça. Se você tem um grande número de pessoas sobrecarregando seu sistema, então parabéns! Esse é um ótimo problema para se ter. A verdade é que a grande maioria dos aplicativos web nunca vai chegar a essa fase. E mesmo que você comece a ficar sobrecarregado, geralmente não é um problema de tudo ou nada. Você terá tempo para ajustar e responder ao problema. Além disso, você terá mais dados do mundo real e benchmarks após o lançamento, que você pode usar para descobrir as áreas que precisam ser abordadas.

Por exemplo, nós rodamos o Basecamp em um único servidor durante o primeiro ano. Porque optamos por uma configuração tão simples, levou apenas uma semana para implementar. Não começamos com um cluster de 15 máquinas ou gastamos meses preocupados com escalabilidade.

Nós enfrentamos alguns problemas? Alguns. Mas também percebemos que a maioria dos problemas que temíamos, como uma breve lentidão, realmente não era tão grande assim para os clientes. Contanto que você mantenha as pessoas informadas e seja honesto sobre a situação, elas entenderão. Em retrospectiva, estamos bastante felizes por não termos atrasado o lançamento por meses para criar "a configuração perfeita".

No começo, faça da construção de um produto central sólido a sua prioridade em vez de se obcecar com escalabilidade e fazendas de servidores. Crie um ótimo aplicativo e depois se preocupe com o que fazer uma vez que ele seja um sucesso estrondoso. Caso contrário, você pode desperdiçar energia, tempo e dinheiro fixando-se em algo que nunca acontece.

Acredite ou não, o problema maior não é escalar, mas chegar ao ponto em que você precisa escalar. Sem o primeiro problema, você não terá o segundo.

Você terá que revisitar de qualquer forma

O fato é que todo mundo tem problemas de escalabilidade, ninguém consegue lidar com o serviço passando de zero para alguns milhões de usuários sem revisitar quase todos os aspectos de seu design e arquitetura.

—Dare Obasanjo, Microsoft (de “Scaling Up and Startups”)