Bagaimana saya memilih tumpukan teknologi dengan fondasi untuk masa depan

Mulai dengan yang sederhana, tetapi tidak dengan mengorbankan pertumbuhan lebih lanjut.

gambar

Setelah memulai karir saya sebagai insinyur perangkat lunak, kemudian saya menjadi pengusaha teknologi dan mendirikan dua perusahaan SaaS yang menarik lebih dari $ 100 juta modal ventura Silicon Valley.

Masalahnya adalah bahwa perusahaan-perusahaan ini membutuhkan investasi besar untuk menciptakan sistem perangkat lunak multi-tenant yang kompleks seperti mereka, yang juga mengharuskan spesialis penjualan dan implementasi untuk terus mempromosikan dan mendukung pekerjaan mereka. Karena itu, pada 2017, saya mendirikan 8base .

Di jantung 8base adalah gagasan bahwa ada permintaan besar untuk platform dan alat yang mempercepat, meningkatkan, dan memangkas pengembangan perangkat lunak. 8base menyediakan lingkungan perangkat lunak yang lengkap dan komprehensif, dan arsitektur kami sangat penting. Mengapa Tumpukan teknologi dirancang tidak hanya untuk kita, tetapi juga untuk pelanggan kita.

Tim kami memiliki pengalaman luas bekerja di perusahaan SaaS, dan kami memiliki keyakinan yang jelas yang memandu kami dalam memilih solusi arsitektur kami. Inilah beberapa di antaranya:

- Pertama, API (API-first) - infrastruktur komputasi, data dan logika bisnis harus sisi-server dan diwakili menggunakan API dinamis tunggal.

- Fleksibilitas - Infrastruktur komputasi harus menjadi layanan yang sepenuhnya dapat disesuaikan untuk aplikasi yang sedang berjalan.

- Fleksibilitas pengembangan frontend . Perangkat lunak lebih merupakan seni saat ini daripada sains dan perusahaan mengekspresikan diri melalui teknologi. Pengembang harus dapat merancang dan membuat antarmuka pengguna dalam gaya apa pun yang dikombinasikan dengan berbagai faktor bentuk.

Kami menempatkan ide-ide ini ke dalam inti 8base.

Stack Teknologi 8base


Pertama-tama, kami memilih Amazon Web Services (AWS) sebagai infrastruktur komputasi karena merupakan pemimpin pasar dalam komputasi awan. Kami menggunakan banyak layanan AWS:

- AWS Lambda untuk komputasi tanpa server (Serverless). Aplikasi yang dibangun menggunakan 8base juga menggunakan Lambda. Serverlessness adalah model komputasi yang relatif baru yang mengeksekusi kode dalam menanggapi peristiwa, secara otomatis mengelola sumber daya komputasi yang diperlukan. Lambda menangani kebutuhan komputasi dengan cara yang sama dengan perusahaan energi: menyediakan layanan yang dapat disesuaikan dan terukur. Ini meminimalkan kebutuhan insinyur DevOps, yang pada gilirannya menyebabkan biaya lebih rendah.

- AWS Aurora MySQL dan MongoDB Atlas Database. Masing-masing adalah basis data sebagai layanan, yang menjadikannya cepat, andal, toleran terhadap kesalahan, dapat dikelola, dan dapat diskalakan. 8base juga menawarkan Aurora MySQL khusus untuk setiap ruang kerja pengembang.

- Layanan untuk menyimpan objek AWS S3 (Layanan Penyimpanan Sederhana) . 8base memecahkan masalah menyediakan akses ke S3 untuk ruang kerja dan aplikasi front-end klien. Ini membuatnya mudah untuk menyimpan dokumen, gambar, file suara dan video dan banyak lagi. 8base juga menggunakan FileStack sehingga pengembang dapat dengan mudah menghubungkan penyimpanan cloud, akun sosial dan lainnya. Kami memilih S3 karena murah, cepat, dapat diandalkan, dan secara virtual tak terbatas dalam volume penyimpanan.

- AWS API Gateway digunakan oleh mesin 8base dan secara default tersedia untuk aplikasi klien yang dibangun di atas 8base sebagai layanan untuk membuat, menerbitkan, dan mengamankan API REST dan WebSocket.

8base telah menjadikan engine GraphQL API bagian dari platform yang sangat kuat. GraphQL adalah standar yang dikembangkan oleh Facebook dan menjadi open-source pada tahun 2015. Ini adalah titik akhir tunggal yang menyediakan koneksi dinamis antara frontend dan backend. GraphQL memungkinkan pengembang front-end untuk bekerja sangat cepat, mengurangi ketergantungan pada pengembang back-end. Teknologi API ini membantu tim 8base dan tim yang menggunakan 8base berkembang lebih cepat.

Kami mendukung semua kerangka frontend, tetapi 8base sendiri dibuat menggunakan React . React adalah pustaka JavaScript open-source yang dikelola oleh Facebook dan komunitas pengembang. Ini optimal untuk data yang berubah cepat. Hari ini, React sangat populer, dan juga menawarkan React Native, sebuah kerangka kerja untuk membuat aplikasi asli di iOS dan Android.

Akhirnya, kami memilih platform Auth0 untuk otentikasi. Pengembang dapat dengan mudah mengintegrasikan Auth0 ke dalam aplikasi klien mereka, sementara pada saat yang sama mereka memiliki kemampuan untuk menggunakan penyedia lain untuk otentikasi. Auth0 menyediakan integrasi dengan lebih dari 30 layanan sosial dan perusahaan untuk otorisasi, selain otentikasi multi-faktor dan banyak fitur canggih lainnya.

Kiat


Desain untuk skala

Pendekatan lean startup sering dipraktikkan dengan cepat menulis produk perangkat lunak sehingga para pendiri dapat segera mulai mencari ceruk pasar mereka. Saya mendesak para pendiri untuk memikirkan masalah apa yang mungkin mereka hadapi ketika produk mereka perlu ditulis ulang setelah menemukan ceruk.

Lebih baik untuk membangun di atas fondasi yang kuat dengan kemungkinan iterasi berkelanjutan untuk meningkatkan produk, tanpa mengorbankan kemungkinan penskalaan lebih lanjut. Kami melakukan ini dengan 8base, dan sekarang terbayar, karena kami menghabiskan waktu untuk terus meningkatkan produk, dan bukan pada pembaruan teknis atau refactoring kode lama, yang pada dasarnya tidak terlihat oleh pelanggan kami.

Berhati-hatilah dengan pengembang yang membuat produk startup tanpa memikirkan model data.

Beberapa solusi backend yang ada saat ini memungkinkan pengembang front-end, dan terutama pengembang aplikasi mobile, untuk hanya mengunggah data ke mereka tanpa memperhatikan model atau struktur data apa pun. Dan untuk beberapa aplikasi ini normal. Tetapi untuk sebagian besar aplikasi - sayangnya, tidak. Pastikan untuk memilih pendekatan data yang tidak terstruktur karena itu adalah pilihan yang tepat , bukan yang termudah. Jika tidak, data Anda akan terlihat seperti spageti ... saat dimasak.

Jika Anda adalah pendiri non-teknis dan melibatkan agensi untuk membantu Anda dalam pengembangan, tanyakan delapan pertanyaan berikut kepada mereka.

Lembaga cenderung menyediakan layanan profesional, dan mereka berkepentingan untuk melakukannya selama mungkin. Tujuan mereka tidak selalu sesuai dengan tujuan Anda. Untuk memverifikasi ini, Anda dapat mengajukan pertanyaan berikut:

1. Apa pendekatan Anda terhadap pengembangan perangkat lunak: desain pertama (desain-pertama) atau desain pertama (engeneering-pertama)?
2. Seperti apa hasil yang diperoleh pertama kali: apakah akan selesai desain atau prototipe atau keduanya?
3. Apa startup yang Anda bantu, apakah mereka menemukan ceruk pasar dan menjadi stabil secara finansial?
4. Bagaimana Anda mendesain arsitektur aplikasi sehingga saya tidak perlu mengubahnya?
5. Apakah pengembang lain dapat mengerjakan proyek?
6. Apakah saya dapat meningkatkan skala perangkat lunak saya bila perlu?
7. Bagaimana jika kita ingin mengubah desain berdasarkan data pemasaran baru?
8. Apa yang diperlukan untuk mendukung produk kami setelah diluncurkan?

Menciptakan produk teknologi adalah perjalanan bagi seorang wirausahawan yang tidak pernah berakhir. Keputusan awal tentang apa , siapa dan bagaimana , dapat memisahkan kesuksesan dari kegagalan. Keputusan ini juga mencakup jawaban atas pertanyaan tentang siapa yang memutuskan apa yang harus dilakukan produk, siapa yang akan merancang dan mengembangkannya, dan teknologi dasar apa yang akan digunakan.

Jawaban yang benar untuk pertanyaan-pertanyaan ini memberi pengusaha peluang untuk menang, jika tidak, keputusan akan menyebabkan hilangnya waktu, biaya tambahan dan, mungkin, kegagalan.
Terima kasih sudah membaca! Saya akan senang berkomentar, atau menghubungi saya dengan pertanyaan di albert@8base.com .

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


All Articles