Начинайте с простого, но не в ущерб дальнейшему росту.

image

Начав свою карьеру как инженер-программист, впоследствии я стал технологическим предпринимателем и основал две SaaS компании, которые привлекли более 100 миллионов долларов венчурного капитала Силиконовой долины.

Проблема заключалась в том, что эти компании требовали огромных вложений, для того чтобы создать сложные, мультитенантные программные системы, которыми они являлись, которые к тому же требовали, чтобы специалисты по продажам и внедрению постоянно продвигали и поддерживали их работу. Поэтому в 2017 году я основал 8base.

В основе 8base лежит идея, что есть огромный спрос на платформы и инструменты, которые ускоряют, улучшают и удешевляют разработку программного обеспечения. 8base предоставляет готовую и понятную программную среду, и наша архитектура невероятно важна. Почему? Технологический стек предназначен не только для нас, но и для наших клиентов.

У нашей команды есть большой опыт работы в SaaS компаниях, и мы имеем четкие убеждения, которыми мы руководствуемся при выборе наших архитектурных решений. Вот некоторые из них:

Сначала API (API-first) — вычислительная инфраструктура, данные и бизнес-логика должны быть на стороне сервера и представлены с помощью единого динамического API.

Эластичность — вычислительная инфраструктура должна быть полностью настраиваемой услугой для работающего приложения.

Гибкость разработки фронтенда. В наши дни программное обеспечение это больше искусство, чем наука и компании выражают себя посредством технологий. Разработчики должны иметь возможность проектировать и создавать пользовательские интерфейсы в любом стиле в сочетании с различными форм-факторами.

Эти идеи мы вложили в основу 8base.

Технологический стек 8base


Прежде всего мы выбрали Amazon Web Services (AWS) в качестве вычислительной инфраструктуры, потому что это лидер на рынке облачных вычислений. Мы используем много сервисов AWS:

AWS Lambda для бессерверных вычислений (Serverless). Приложения, созданные с использованием 8base, также используют Lambda. Бессерверность — это относительно новая модель вычислений, которая выполняет код в ответ на события, автоматически управляя необходимыми вычислительными ресурсами. Lambda покрывает потребности в вычислительных ресурсах таким же образом, как и энергетическая компания: предоставляя настраиваемую и измеримую услуги. Это сводит к минимуму потребность в DevOps инженерах, что в свою очередь приводит к снижению затрат.

— Базы данных AWS Aurora MySQL и MongoDB Atlas. Каждая представляет собой database-as-a-service, что делает их быстрыми, надежными, отказоустойчивыми, управляемыми и масштабируемыми. 8base также предлагает выделенный Aurora MySQL для каждого рабочего пространства разработчика.

— Сервис для хранения объектов AWS S3 (Simple Storage Service). 8base решает задачу предоставления доступа к S3 для рабочих пространств и клиентских фронтенд приложений. Это позволяет с легкостью хранить документы, изображения, голосовые и видео файлы и многое другое. 8base также использует FileStack, чтобы разработчики могли легко подключать свои облачные хранилища, социальные и другие учетные записи. Мы выбрали S3, потому что он недорогой, быстрый, надежный и практически неограниченный по объему хранения.

AWS API Gateway используется движком 8base и по умолчанию доступен для клиентских приложений, созданных на 8base, как сервис для создания, публикации и обеспечения безопасности API REST и WebSocket.

8base сделала невероятно мощный движок GraphQL API частью платформы. GraphQL — это стандарт, разработанный Facebook и ставший open-source в 2015 году. Он представляет собой единый эндпоинт, который обеспечивает динамическую связь между фронтендом и бэкендом. GraphQL позволяет фронтенд разработчикам работать очень быстро, уменьшая зависимость от бэкенд разработчиков. Эта технология API помогает команде 8base и командам, использующим 8base, разрабатывать быстрее.

Мы поддерживаем любые фронтенд фреймворки, однако сам 8base сделан с использованием React. React — это open-source библиотека JavaScript, поддерживаемая Facebook и сообществом разработчиков. Он оптимален для получения быстро изменяющихся данных. В наши дни React невероятно популярен, а так же предлагает React Native, фреймворк для создания нативных приложений на iOS и Android.

Наконец, мы выбрали платформу Auth0 для аутентификации. Разработчики могут очень легко интегрировать Auth0 в свои клиентские приложения, в то же время у них есть возможность использовать и других провайдеров для аутентификации. Auth0 обеспечивает интеграцию более чем с 30 социальными и корпоративными сервисами для авторизации, в дополнение к многофакторной аутентификации и многим другим мощным функциям.

Советы


Проектируйте для масштабирования

Подход «бережного стартапа» (lean startup) часто практикуется путем быстрого написания программного продукта, чтобы основатели могли сразу же приступить к поиску своей рыночной ниши. Я призываю основателей задуматься о том, с какими проблемами они могут столкнуться, когда их продукты нужно будет переписывать после нахождения ниши.

Лучше строить на прочном основании с возможностью постоянных итераций по улучшению продукта, при этом не жертвуя возможностью дальнейшего масштабирования. Мы сделали так с 8base, и сейчас это приносит плоды, так как мы тратим наше время на постоянное улучшение продукта, а не на его техническое обновление или рефакторинг старого кода, что по сути является невидимым для наших клиентов.

Будьте осторожны с разработчиками, которые делают продукты для стартапов, не продумывая модель данных.

Некоторые из существующих сегодня решений для бэкендов позволяют фронтенд разработчикам, а особенно разработчикам мобильных приложений, просто выгружать в них данные без учета какой-либо модели данных или структуры. И для некоторых приложений это нормально. Но для большинства приложений — увы нет. Убедитесь, что выбираете неструктурированный подход к данным, потому что это правильный выбор, а не самый простой. В противном случае ваши данные будут похожи на спагетти… когда они сварены.

Если вы являетесь нетехническим основателем и привлекаете агентство, чтобы помочь вам с разработкой, задайте им следующие восемь вопросов.

Агентства, как правило, занимаются оказанием профессиональных услуг, и в их интересах делать это как можно дольше. Их цели не всегда совпадают с вашими. Чтобы проверить это, можно задать следующие вопросы:

1. Каков ваш подход к разработке программного обеспечения: сначала дизайн(design-first) или сначала проектирование (engeneering-first)?
2. Как будут выглядеть первые полученные результаты: будут ли это законченные дизайны или же прототипы или и то и другое?
3. Каким стартапам вы помогали, нашли ли они свою рыночную нишу и стали ли финансово устойчивыми?
4. Каким образом вы будете проектировать архитектуру приложения, чтобы мне никогда не пришлось её менять?
5. Смогут ли другие разработчики, работать над проектом?
6. Смогу ли я масштабировать мое программное обеспечение, когда будет необходимо?
7. Что если мы захотим изменить дизайн основываясь на новых маркетинговых данных?
8. Что будет необходимо для поддержки нашего продукта после его запуска?

Создание технологических продуктов — это путешествие для предпринимателя, которое никогда не заканчивается. Изначальные решения о том, что, кто и как, могут отделять успех от провала. Эти решения также включают ответы на вопросы о том, кто решает, что должен делать продукт, кто будет его проектировать и разрабатывать, и какие основные технологии будут использоваться.

Правильные ответы на эти вопросы дают предпринимателю шанс на победу, в противном случае решения приведут к потере времени, дополнительным расходам и, возможно, неудаче.
Спасибо, что прочитали! Буду рад комментариям, или обращайтесь ко мне с вопросами по адресу albert@8base.com.

Перевод выполнен в компании 8base


8base – это готовый к использованию GraphQL back-end-as-a-service, который постепенно превращается в полноценную low code платформу разработки. Наша цель – дать возможность разработчикам, обладающим навыками front-end или мобильной разработки, создавать масштабируемые бизнес-приложения.

Подробнее 8base.com.

Комментарии (0)