Donnerstag, 2. Februar 2023

Managing Dependencies for Micro Services

Dependency Hell, das kennen viele Softwareentwickler oft aus mature Projekten. Was bedeutet das fuers Projekt?

  1. Es kann nicht auf aktuelle Versionen von Libs migriert werden, Java eingeschlossen. Dadurch bleiben nuetzliche Funktionen verschlossen.
  2. Das Projekt ist statisch wie Beton und nur unter sehr grossem Zeitauswand aenderbar.
  3. CVEs koennen nicht behoben werden.

Um Dependencies effiktiv zum meisten und obige Schwaechen zu umschiffen, hier ein paar Best Pracices im Umgang mit Dependencies.

  1. Goldene Regeln
    1. Less is more
    2. Convention over configuration
  2. Versuche mit moeglichst wenig Konfigurationen auszukommen.
  3. Versiuche moeglichst wenig Dependencies zu benutzen.
  4. Benutze Parents wenn moeglich.
  5.  Benutze Dependeny Management (Maven) wenn es moeglich ist.
  6. Benutze nur fixe Versionen von Libs wenn sie nicht im Parent verfuegbar sind.
  7. Wenn du Excludes/Includes brauchst z.B. um CVEs zu fixen, dann hinterlasse einen entsprechenden Kommentar mit der CVE Nummer. So kann diese Konfiguration spaeter sehr einfach entfernt werden.
  8. Update regelmaessig deine Dependencies um keinen Wartungsstau aufkommen zu lassen. Du kannst leicht einen Check Step in der Build Pipeline einbauen die dir Anzahl der outdated Libs ausgibt.
  9. Aktuelle Libs verbessern die Sicherheit, aktuelle Libs haben weniger CVEs. 
  10. Pruefe ob Dependencies noch benutzt werden
    1. Grep isy dein Freunf fuer Compile Scope Dependencies: grep -r com.strange-package src/
    2. Organize your imports
  11. Das Build file ist genauso ein Teil deines Softwareprojetes wie der Code selbst.

 

Keine Kommentare:

Kommentar veröffentlichen