Como escolhi uma pilha tecnológica com uma base para o futuro

Comece com um simples, mas não à custa de mais crescimento.

imagem

Tendo iniciado minha carreira como engenheiro de software, mais tarde me tornei um empreendedor de tecnologia e fundei duas empresas de SaaS que atraíram mais de US $ 100 milhões em capital de risco do Vale do Silício.

O problema era que essas empresas exigiam grandes investimentos para criar os sistemas de software complexos e multilocatários que eram, o que também exigia que especialistas em vendas e implementação promovessem e apoiassem constantemente seu trabalho. Portanto, em 2017, fundei a 8base .

No coração da 8base está a idéia de que há uma enorme demanda por plataformas e ferramentas que aceleram, melhoram e baratear o desenvolvimento de software. O 8base fornece um ambiente de software completo e compreensível, e nossa arquitetura é incrivelmente importante. Porque A pilha tecnológica foi projetada não apenas para nós, mas também para nossos clientes.

Nossa equipe tem uma vasta experiência trabalhando em empresas de SaaS e temos crenças claras que nos orientam na escolha de nossas soluções arquitetônicas. Aqui estão alguns deles:

- Primeiro, a API (primeira API) - infraestrutura de computação, dados e lógica de negócios deve estar do lado do servidor e representada usando uma única API dinâmica.

- Flexibilidade - A infraestrutura de computação deve ser um serviço totalmente personalizável para um aplicativo em execução.

- Flexibilidade de desenvolvimento de front - end . Atualmente, o software é mais uma arte do que a ciência e as empresas se expressam por meio da tecnologia. Os desenvolvedores devem ser capazes de projetar e criar interfaces de usuário em qualquer estilo combinado com vários fatores de forma.

Colocamos essas idéias no núcleo do 8base.

Pilha de tecnologia 8base


Primeiro, escolhemos o Amazon Web Services (AWS) como a infraestrutura de computação porque é líder de mercado em computação em nuvem. Usamos muitos serviços da AWS:

- AWS Lambda para computação sem servidor (sem servidor). Os aplicativos criados com o 8base também usam o Lambda. A ausência de servidor é um modelo de computação relativamente novo que executa o código em resposta a eventos, gerenciando automaticamente os recursos de computação necessários. A Lambda atende às necessidades de computação da mesma maneira que uma empresa de energia: fornecendo serviços personalizados e mensuráveis. Isso minimiza a necessidade de engenheiros de DevOps, o que, por sua vez, leva a custos mais baixos.

- Bancos de dados AWS Aurora MySQL e MongoDB Atlas . Cada um é um banco de dados como serviço, o que os torna rápidos, confiáveis, tolerantes a falhas, gerenciáveis ​​e escaláveis. O 8base também oferece Aurora MySQL dedicado para cada espaço de trabalho do desenvolvedor.

- Serviço para armazenamento de objetos AWS S3 (Simple Storage Service) . O 8base resolve o problema de fornecer acesso ao S3 para áreas de trabalho e aplicativos front-end de clientes. Isso facilita o armazenamento de documentos, imagens, arquivos de voz e vídeo e muito mais. O 8base também usa o FileStack para que os desenvolvedores possam conectar facilmente suas contas de armazenamento em nuvem, sociais e outras. Escolhemos o S3 porque é barato, rápido, confiável e praticamente ilimitado em volume de armazenamento.

- O AWS API Gateway é usado pelo mecanismo 8base e, por padrão, está disponível para aplicativos clientes criados no 8base como um serviço para criar, publicar e proteger as APIs REST e WebSocket.

O 8base fez do incrivelmente poderoso mecanismo da API GraphQL parte da plataforma. O GraphQL é um padrão desenvolvido pelo Facebook e tornou-se de código aberto em 2015. É um ponto final único que fornece uma conexão dinâmica entre o front-end e o back-end. O GraphQL permite que os desenvolvedores front-end trabalhem muito rapidamente, reduzindo a dependência de back-end dos desenvolvedores. Essa tecnologia de API ajuda a equipe 8base e as equipes que usam a 8base a se desenvolverem mais rapidamente.

Suportamos qualquer estrutura de front-end, mas o 8base em si é criado usando o React . React é uma biblioteca JavaScript de código aberto mantida pelo Facebook e pela comunidade de desenvolvedores. É ideal para dados que mudam rapidamente. Hoje, o React é incrivelmente popular e também oferece o React Native, uma estrutura para criar aplicativos nativos no iOS e Android.

Por fim, escolhemos a plataforma Auth0 para autenticação. Os desenvolvedores podem facilmente integrar o Auth0 em seus aplicativos clientes, ao mesmo tempo em que podem usar outros provedores para autenticação. O Auth0 fornece integração com mais de 30 serviços sociais e corporativos para autorização, além de autenticação multifatorial e muitos outros recursos poderosos.

Dicas


Projetar em escala

A abordagem de inicialização enxuta é geralmente praticada escrevendo rapidamente um produto de software para que os fundadores possam começar imediatamente a procurar seu nicho de mercado. Peço aos fundadores que pensem em quais problemas eles podem enfrentar quando seus produtos precisarem ser reescritos depois de encontrar um nicho.

É melhor criar uma base sólida com a possibilidade de iterações contínuas para melhorar o produto, sem sacrificar a possibilidade de dimensionamento adicional. Fizemos isso com o 8base, e agora está valendo a pena, pois gastamos nosso tempo aprimorando constantemente o produto, e não em sua atualização técnica ou refatoração do código antigo, que é essencialmente invisível para nossos clientes.

Tenha cuidado com os desenvolvedores que fazem produtos de inicialização sem pensar em um modelo de dados.

Atualmente, algumas das soluções de back-end existentes permitem que desenvolvedores front-end e, especialmente, desenvolvedores de aplicativos móveis, simplesmente carreguem dados para eles sem levar em consideração nenhum modelo ou estrutura de dados. E para algumas aplicações isso é normal. Mas para a maioria das aplicações - infelizmente, não. Certifique-se de escolher uma abordagem não estruturada para os dados, porque é a escolha certa , não a mais fácil. Caso contrário, seus dados parecerão espaguete ... quando cozidos.

Se você é um fundador não técnico e envolve uma agência para ajudá-lo no desenvolvimento, faça as oito perguntas a seguir.

As agências tendem a fornecer serviços profissionais, e é do interesse deles fazê-lo pelo maior tempo possível. Seus objetivos nem sempre correspondem aos seus. Para verificar isso, você pode fazer as seguintes perguntas:

1. Qual é a sua abordagem para o desenvolvimento de software: primeiro design (primeiro design) ou primeiro design (primeiro engenharia)?
2. Como serão os primeiros resultados obtidos: serão desenhos ou protótipos acabados ou ambos?
3. Quais startups você ajudou, elas encontraram seu nicho de mercado e se tornaram financeiramente estáveis?
4. Como você projetará a arquitetura do aplicativo para que eu nunca precise alterá-lo?
5. Outros desenvolvedores poderão trabalhar no projeto?
6. Serei capaz de escalar meu software quando necessário?
7. E se quisermos mudar o design com base em novos dados de marketing?
8. O que será necessário para dar suporte ao nosso produto após seu lançamento?

Criar produtos tecnológicos é uma jornada para um empreendedor que nunca acaba. Decisões iniciais sobre o que , quem e como , podem separar o sucesso do fracasso. Essas decisões também incluem respostas a perguntas sobre quem decide o que o produto deve fazer, quem o projetará e desenvolverá e quais tecnologias básicas serão usadas.

As respostas corretas para essas perguntas dão ao empresário a chance de vencer; caso contrário, as decisões levarão à perda de tempo, custos adicionais e, possivelmente, falha.
Obrigado pela leitura! Ficarei feliz em comentar ou entre em contato comigo com perguntas em albert@8base.com .

Source: https://habr.com/ru/post/pt471700/


All Articles