Jens Hinrichs
CTO @ Carnect
HAW Hamburg
Head of Web Development @ "Wer liefert was"
jensblond
jensblond
Die führende B2B Marktplatz im deutschsprachigen Raum
Kein Startup mehr (gegründet 1932)
…aber Startup Feeling!
1565 text files.
1530 unique files.
1053 files ignored.
http://cloc.sourceforge.net v 1.62 T=6.34 s (154.0 files/s, 25594.7 lines/s)
--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
YAML 138 315 399 71007
Ruby 647 8083 3254 42017
Javascript 78 3834 2300 15292
SASS 56 952 157 5214
HTML 5 1916 0 3097
Bourne Shell 10 139 517 1028
SQL 23 58 69 775
CSS 1 80 70 649
XML 3 25 84 297
CoffeeScript 9 32 3 150
Tcl/Tk 2 37 92 126
RobotFramework 1 0 0 75
Bourne Again Shell 2 13 1 36
Perl 1 2 0 7
--------------------------------------------------------------------------------
SUM: 976 15486 6946 139770
--------------------------------------------------------------------------------
Einzelne Funktionalitäten sollten rausgelöst werden oder neue Features in eigenen Apps entwickelt werden
Die Firmenregistrierung
Was waren die nächsten Schritte?
In der Vergangenheit wurden die Änderungen an einer Firma nur einmal in der Nacht an das Web übertragen.
Damit SAP seine Änderungen in Echtzeit in das Web publizieren kann, haben wir uns für das AMQP entschieden.
Da SAP aber nicht nativ über einen AMQP Adapter verfügt, haben wir das Problem mit einem AMQP Proxy gelöst, der über ein REST API Messages erzeugt.
Die Entwicklungsteams sollten sich vorab über ein einheitliches API Design abstimmen. Dabei hilft ein Manifest oder ein Design Guide.
Wir haben uns an der API Referenz von heroku orientiert
Problem:
Bei der Entwicklung von Features die mehrere Services beinhalten muss der finale Integrationstest manuell ausgeführt werden.
Lösungsansatz:
Die Testabdeckung der API erfolgt bei uns durch Contract-Test
Jedes Team kann für APIs, die sie konsumieren Tests in den jeweiligen Codebasen erstellen.
Problem:
REST API Anfragen sind von Natur aus langsamer als Datenbank Zugriffe. Wie kann man am Besten mit den Performance Verlusten umgehen?
Lösung:
Einsatz von Caches. Wir verwenden teilweise Varnish als Cache Technologie.
Suchindices verwenden (z.B. ElasticSearch)
Problem:
Die REST API Zugriffe wurden seriell abgearbeitet
Lösung:
Bulk Requests und Asynchrone Requests implementieren
Problem:
Resourcen auf den Servern werden nicht optimal genutzt
Lösung:
Docker, Mesos und Co.
JSON Web Tokens sind ein offener Industrie Standard.
Sie eignen sich perfekt für eine Micro Services Umgebung.
Mit JWT lassen sich Informationen sicher über mehrere Systeme transportieren. Implementationen gibt es für sehr viele Programmiersprachen. Die Informationen werden sicher mit einem Token signiert.
1647 text files.
1634 unique files.
916 files ignored.
http://cloc.sourceforge.net v 1.62 T=6.21 s (193.5 files/s, 16393.8 lines/s)
--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
Ruby 892 9719 1969 45585
Javascript 97 3883 2452 14451
YAML 129 367 545 6153
SASS 56 1032 242 5304
HTML 4 1903 1 3014
SQL 1 915 825 1391
CSS 1 80 70 649
Bourne Shell 7 54 248 404
Bourne Again Shell 4 69 16 255
RobotFramework 2 0 0 95
CoffeeScript 5 8 3 47
XML 3 0 0 28
--------------------------------------------------------------------------------
SUM: 1201 18030 6371 77376
--------------------------------------------------------------------------------
By Jens Hinrichs
Unser Weg vom Monolithen zu einer Microservice Architektur