Hur jobbar ni med databaser? Samt andra funderingar

Diskussion i 'Applikationsutveckling' startad av JockeJocke, 23 sept 2022.

  1. JockeJocke

    JockeJocke Infant Droid Medlem

    Blev medlem:
    23 sept 2022
    Inlägg:
    2
    Mottagna gillanden:
    1
    Hej,

    Jag har fått för mig att jag ska försöka göra en app, som man skulle kunna likna med ett quiz.

    Vill helst kunna sälja appen till både Android och ios och har därmed trocklat mig fram till att jag ska testa bygga appen med hjälp av Kivy. Rätt eller fel, förslag mottages gärna! Målet är väl att inte behöva skriva två appar..

    Då jag vill ha mina frågor med tillhörande bilder utanför appen så antar jag att jag behöver en databas. Men vilken djungel det är med information!? Hur löser ni som kan det här? Vad ska jag lära mig mera om? Hur lägger jag enklast in frågor och bilder till databasen?

    Jag började med att göra en webbapp (ej klar) som tanken var att underlätta arbetet med att skriva in frågor. Men går jag över ån efter vatten? Och kan jag använda en vanlig databas från mitt webbhotell, eller är det andra typer av tjänster jag ska kolla på?

    Troligtvis kör jag väl fast och i bästa fall blir det något halvdant med få användare. Men om man får drömma, säg att jag får 1000 användare i månaden. Vilka kostnader kan man tänkas att databasen skulle kosta mig?


    Stort tack till den som vill hjälpa mig åt rätt riktning!
     
  2. DanielÖ

    DanielÖ Adult Droid Medlem

    Blev medlem:
    1 sept 2013
    Inlägg:
    967
    Mottagna gillanden:
    797
    Operatör:
    Comviq
    Telefon:
    Google Pixel 7 Pro

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Google Pixel 7 Pro
    Nu är jag ingen utvecklare men jobbar en del med olika databaser åt kunder. Jag räknade på det i Microsoft Azure med fyra olika sorters DB; Cosmos DB, MySQL, PostgreSQL och MariaDB som du kan se själv och editera här: Cloud Computing Services | Microsoft Azure

    Det viktigaste som jag ser det förutom pris är skalbarhet. Du vill inte sitta med en DB som är låst till nån storlek när/om du lyckas överskrida ett visst antal användare eller transaktioner. Fördel med molntjänster (jag jobbar själv med Azure) är skalbarheten där du kan skruva upp prestandan ett steg med ett knapptryck, oftast utan någon som helst nedtid. En annan fördel här är också att när du raderar något slutar du också betala för resursen utan bindningstider på något sätt.

    Amazon Web Services (AWS) och Google Cloud Platform (GCP) bör funka snarlikt men dem har jag inte egen erfarenhet av så där kan jag inte säga mycket.
     
    bernard och tpalsson gillar detta.
  3. JockeJocke

    JockeJocke Infant Droid Medlem

    Blev medlem:
    23 sept 2022
    Inlägg:
    2
    Mottagna gillanden:
    1
    Stort tack för ditt svar,

    Då ska jag kolla vidare på den typen av tjänster, spar mycket tid när man kan sätta sig in i rätt saker direkt.

    Hängde dock inte med i kalkylatorn, den kostnaden som stod där, är det för att komma igång antar jag? Och om jag skulle få igång lite trafik så bör det bli dyrare? Ska läsa på själv, men jag chansar och hör mer dig som har erfarenhet.

    Hur hanterar ni normalt indata? Eller ni kanske jobbar med helt andra saker så det går mer automatiskt än när jag tänkt lägga in frågor manuellt. Finns det något ui där man i azure kan lägga in direkt så som i myphpadmin, eller behöver jag knacka klart något eget för att spara innehållet?


    Stort tack!
     
    DanielÖ gillar detta.
  4. DanielÖ

    DanielÖ Adult Droid Medlem

    Blev medlem:
    1 sept 2013
    Inlägg:
    967
    Mottagna gillanden:
    797
    Operatör:
    Comviq
    Telefon:
    Google Pixel 7 Pro

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Google Pixel 7 Pro
    Man gör en uppskattning till kalkylatorn på hur mycket data som kommer processas. I ditt fall valde jag nog 100GB per månad bara för att få en uppskattning. Är antagligen mycket mindre till en början. Allt det där kalkyleras automatiskt baserat på förbrukningen. Skalningen får man däremot be om själv genom att trycka på en knapp ungefär.

    Jag gör inte själv mycket med databaserna utan ger mest redskapen till utvecklarna, men generellt finns det olika verktyg att ansluta med till databasen för att arbeta med det. Finns nog lite som man kan göra direkt i portalen men det är ingen höjdare att koda därigenom. Jag kör t.ex. VS Code för allt jag kodar/scriptar mot Azure.

    Kostnaden som du ser i kalkylatorn är allt du behöver för att komma igång med en databas. Har man sen servrar som behöver kommunicera med den bygger man virtuella nät med private endpoints för privat kommunikation, men det lär nog vara överkurs för det du tänkt dig i början :)
     
  5. DanielÖ

    DanielÖ Adult Droid Medlem

    Blev medlem:
    1 sept 2013
    Inlägg:
    967
    Mottagna gillanden:
    797
    Operatör:
    Comviq
    Telefon:
    Google Pixel 7 Pro

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Google Pixel 7 Pro
    Kanske inte var helt tydligt men kostnaden växer när du lägger in mer data. Det är inte så att du betalar för en viss låst mängd data förutom undantagsfall. Pay-as-you-go funkar klockrent eftersom du inte betalar för mer än du förbrukar.
     
  6. schrödinger

    schrödinger Senior Droid Medlem

    Blev medlem:
    8 apr 2020
    Inlägg:
    1 036
    Mottagna gillanden:
    1 334
    Operatör:
    Universal, Tele2

    MINA ENHETER

    Operatör:
    Universal, Tele2
    Jag är starkt emot att betala för etablerade molntjänster. De är väldigt duktiga på att låsa in dig och sedan mjölka ur så mycket pengar som det bara går. Vi hade t.ex. en kund som körde lite databaser, en reverse proxy och lite compute/containers hos Amazon. De betalade 22 000 SEK i månaden för det. Vi fick i uppdrag att flytta över lösningen till ett mindre hosting-bolag i Sverige, deras kostnader sjönk till en femhundring i månaden.

    Mitt tips är att prenumerera på en billig VPS och börja där. Sätt upp databaserna själv antingen direkt på maskinen eller via Docker. Både OVH och DigitalOcean erbjuder VPSer för runt 50 SEK i månaden.

    Gällande vilken databas man vill köra så är smaken lite som baken. Har du erfarenhet med t.ex. SQL så är det nog enklast att fortsätta på det spåret. Annars rekommenderar jag starkt MongoDB, särskilt om du skriver ditt backend i Javascript eller Typescript.
     
    DanielÖ och paycheck gillar detta.
  7. DanielÖ

    DanielÖ Adult Droid Medlem

    Blev medlem:
    1 sept 2013
    Inlägg:
    967
    Mottagna gillanden:
    797
    Operatör:
    Comviq
    Telefon:
    Google Pixel 7 Pro

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Google Pixel 7 Pro
    För mindre lösningar är det ju inga problem att köra saker hos mindre bolag som du nämner. Behöver man däremot en lite mer avancerad lösning som t.ex. koppling med övriga resurser i nätet skulle jag inte vilja köra det hos åtminstone någon av de leverantörer jag sett.

    En fördel med jättarna är upptiden och skalbarheten, men behöver man inte den skalbarheten så behöver de ju inte vara lika intressanta.

    Å andra sidan kan man ju alltid lösa flytt av en databas, eller åtminstone innehållet om man sedan skulle behöva mer funktioner.
     
  8. schrödinger

    schrödinger Senior Droid Medlem

    Blev medlem:
    8 apr 2020
    Inlägg:
    1 036
    Mottagna gillanden:
    1 334
    Operatör:
    Universal, Tele2

    MINA ENHETER

    Operatör:
    Universal, Tele2
    Nä, men nu handlar det ju om en person som vill realisera en idé, och då är det bäst att börja småskaligt. När användarbasen sedan växer rekommenderar jag att man flyttar över till Kubernetes, då får man en lösning som går att flytta mellan i princip alla molnleverantörer (inklusive Amazon, Azure, Google, etc) och då får man en mycket bättre förhandlingsposition.

    Hos oss har vi slutat erbjuda utveckling mot molnjättarnas egna lösningar, vi erbjuder enbart Kubernetes nu för tiden.
     
    DanielÖ gillar detta.
  9. DanielÖ

    DanielÖ Adult Droid Medlem

    Blev medlem:
    1 sept 2013
    Inlägg:
    967
    Mottagna gillanden:
    797
    Operatör:
    Comviq
    Telefon:
    Google Pixel 7 Pro

    MINA ENHETER

    Operatör:
    Comviq
    Telefon:
    Google Pixel 7 Pro
    Absolut, i detta skede finns ju ingen anledning att slå på stora släggan med dunderbygge. Jag utvecklade bara hur vi brukar jobba, det var ju trots allt frågeställningen från början :)

    Kubernetes vet jag inget om men kör en del Docker privat och det är ju som du säger smidigt att jobba med.
     
  10. pekspro

    pekspro Baby Droid Medlem

    Blev medlem:
    31 aug 2012
    Inlägg:
    26
    Mottagna gillanden:
    4

    MINA ENHETER

    Här är ett sent svar :-) Jag hade nog valt Azure Blob Storage för att lagra bilder:

    Azure Storage Blobs Pricing | Microsoft Azure

    0,26 kr per GB månaden för lagringen. Sedan tillkommer överföringskostnader. Drygt 6 kr för en miljon läsningar om jag läser allting rätt.

    För database, Azure Table Storage:

    Azure Tables Storage Pricing | Microsoft Azure

    En NoSQL-databas. Kan inte säga att jag har använt det särskilt mycket. Men tror det hade fungerat fint för en Quiz-app.

    Har du ett webbhotell med databas redan så är det inte fel att använda det tycker jag. Bilder och eventuellt frågor kan du kanske lagra som statiska filer, och hålla mer dynamiska data i databasen.
     
  11. stantemo

    stantemo Adult Droid Medlem

    Blev medlem:
    31 jul 2009
    Inlägg:
    751
    Mottagna gillanden:
    83

    MINA ENHETER

    Vet inte om du hunnit börja men jag kan rekommendera Flutter för att bygga appen och Firebase för att få till en backend smidigt.

    För mig som jobbar med utveckling till vardags tog det ca 1 månad (någon timme varje kväll) att känna mig hemma med Flutter. Har kikat på både React och Angular och webben för att göra en iOS- och Android-app och inget av det passade mina behov eller kriterier för en långsiktigt lösning.

    Jag har också vacklat mellan att hosta backend själv eller gå på en molnlösning. Och efter att ha skrivit om hela backen tre ggr (Firebase -> NodeJs -> ServerPod). Gick jag tillbaka till Firebase då kostnaden för min app inte överstiger tiden jag behöver lägga på att underhålla backend. Med Firebase får man mycket "på köpet" om man också utvecklar i Flutter.

    Det finns en kille på YouTube som har grymma tutorials på det mesta som man behöver https://www.youtube.com/@JohannesMilke