Klappt bei Facebook – klappt bei uns

Continuous Architecture  –  0 Kommentare
Anzeige

Unternehmen wie Facebook leben von Software und entwickeln sehr große und komplexe Projekte. Wenn Vorgehen und Technologien so komplexe Probleme lösen – dann sicher auch die vergleichsweise einfachen Probleme anderer Unternehmen.

Facebook nutzt für die Entwicklung PHP. Kent Beck ist ein Software-Guru, Erfinder von eXtreme Programming, hat viel Zeit bei Facebook verbracht und begründet auf Quora die Wahl damit, dass PHP ein lokales Optimum darstellt. Facebook kontrolliert den kompletten Stack einschließlich aller Tools wie HHVM oder Hack und hat eine große PHP-Entwickler-Community. Mittlerweile hat das Unternehmen auch schon viel Geld in einen eigenen PHP-Stack investiert. Eine Migration würde viel Geld kosten – und das bei unklaren Vorteilen.

Anzeige

Aber Facebooks Wissen und Kontrolle über den PHP-Stack ist einmalig. Aus Facebooks Entscheidung kann man also nicht ableiten, dass PHP vor allem für große Codebasen sinnvoll ist.

Der Facebook-Code ist eine große monolithische Codebasis. Ein solches MonoRepo für allen Code hat zum Beispiel den Vorteil, dass ein Entwickler in einem Commit eine Bibliothek und alle abhängigen Projekte ändern kann. Dann müssen aber im Extremfall die gesamten 8 GByte Sourcecode erneut übersetzt werden. Dazu sind komplexe Optimierungen nötig.

Zweifellos lösen diese Ansätze die Herausforderungen bei Facebook. Andere Unternehmen sollten aber vorsichtig sein, diese Ideen einfach zu übertragen. Firmen wie Facebook haben eine unglaublich große Zahl an Entwicklern und Commits. Eine einzige große Codebasis, die jeden Tag zehntausende Commits hat, ist ungewöhnlich. So etwas ist nur ein Problem von Facebook oder anderen Firmen dieser Größenordnung. Gleichzeitig hat Facebook die Möglichkeit, hunderte Entwickler nur an Werkzeugen arbeiten zu lassen. Viele Projekte haben insgesamt nicht so viele Entwickler.

Also haben die meisten anderen Unternehmen weder die Möglichkeiten, solche Lösungen umzusetzen, noch die Probleme, die solche Lösungen erfordern.

Das gilt auch für die Technologien. Zwar bieten viele große Unternehmen wesentliche Teile ihrer Softwareinfrastruktur als Open-Source-Projekte an. Aber die Unternehmen haben direkten Zugriff auf deren Entwickler. Außerdem verdienen die Unternehmen nicht direkt mit den Projekten Geld. Sie haben oft kein so großes Interesse daran, die Nutzer der Projekte zufrieden zu stellen, wie Unternehmen, die von Open-Source-Projekten leben.

Große Unternehmen haben spezielle Probleme. Technologien oder Vorgehensweisen, die bei großen Unternehmen notwendig sind, müssen nicht unbedingt bei anderen Unternehmen vorteilhaft sein oder überhaupt funktionieren.

Anzeige