# Welche Technologien für App und web?



## DevArmy-74 (24. Apr 2019)

Hallo Leute,

kollegen und ich wollten eine App entwickeln und sind schon am überlegen welche Technologien wir verwenden sollen.
Hier wird jedenfall eine grosse Datenbank benötigt da login daten, sehr viele bilder und Videos gespeichert werden müssen(Ich weis dass nicht die datei sondern der pfad gespeichert wird). Die Datenbank wird auch andere Informationen beinhalten. Die App wird auch so ähnlich wie Instagram agieren jedoch ohne die Chat funktion (hat seine Gründe).

Nun zu den technologien:

```
Backend:
- Spring Boot Java (Rest-API) / Gradle

Frontend:
- React native (IOS/Android)
- React web

Datenbank:
- mySQL

Backend Unterstützung:
- Microservices
- CI/CD - Jenkins
- ELK-Stack(Elastic)

Server:
- Docker

Authentifizierungs token:
- oAuth2 (JWT)
```

Was hält ihr davon?
Würde mich auf erweiterungs und änderungs vorschläge sehr freuen.
Gerne auch API's vielleicht lernt man ja wieder was neues


----------



## mrBrown (24. Apr 2019)

Der Stack sieht zumindest sinnvoll aus 

Generell solltet ihr im Hinterkopf behalten, was Microservices & Docker für DB und FileStorage bedeuten. Da sollte man von Anfang an  an Lösungen denken, die Server-Unabhängig sind und die Daten entsprechend repliziert vorhalten. UU ist für das Speichern der Dateien etwas in Richtung AWS S3 passend, gibt vermutlich auch ähnliche Angebote von anderen Anbietern.



Kleine Anmerkungen zu der Liste:
Der Backend Unterstützungs-Teil sieht aber nach einem "keine Ahnung wo es hinpasst"-Teil aus, das sind drei Dinge, die nicht wirklich was miteinander zu tun haben. Microservices sind ein Konzept, aber keine Technologie, und hat als Konzept Einfluss auf alles.  CI/CD ist auch keine wirklich genutzte Technologie, und auch nicht aufs Backend begrenzt - würde ich festhalten, aber eher seperat (wie auch gradle, ist ja auch keine Laufzeit-Technologie). ELK-Stack passt allerdings durchaus unter "Backend Unterstützung".


----------



## DevArmy-74 (24. Apr 2019)

Erstmals einen Riesen Dank 

Das mit AWS S3(oder andere Anbieter) finde ich eine super Idee. Sollte ich aufjedenfall zu Herzen nehmen.
Den Begriff "Technologien" habe ich groß gehalten sorry. 
Im Backend Bereich haben wir schon eine Architektur gebastelt wie es Ablaufen soll.

Ich überlege auch schon nach dem du gesagt hast doch kein CI/CD zu verwenden, jedoch überlege ich mir diese


----------



## mrBrown (24. Apr 2019)

DevArmy-74 hat gesagt.:


> Ich überlege auch schon nach dem du gesagt hast doch kein CI/CD zu verwenden, jedoch überlege ich mir diese


Nicht falsch verstehen: ihr solltet in jedem Fall CI nutzen, und nach Möglichkeit auch das eine und das andere CD.
Ich finde es nur so essentiell für alle Teile des Projekts, dass ich es nicht als "Backend" und auch nicht als "Unterstützung" aufführen würde, ähnlich wie man git (oder andere VCS) auch nicht dort einsortieren würde.

(Das war auch nur meckern über den Begriff "Backend Unterstützung", die Dinge die da stehen würde ich alle in jedem Fall nutzen)


----------

