Schlagwörter
Skills
Programmiersprachen:
Sehr gut: PHP / Symfony
Gut: Typecript, Node.js
DevOps:
Ansible, Kubernetes, Docker, vmware, redhat, Amazon Cloud (ACD)
Zusätzlich:
Viel Erfahrung mit Datenbanken (MySql / MariaDB, Mongo, Postgres,...)
Projekthistorie
- PHP Services- und Systemmigration zu Kubernetes und CI/ CD in Gitlab
- Setup zum Provisioning von Servern inklusive Monitoring, Backups, Logging und Benachrichtigungen (Ansible, Kubernetes)
- Aufbau eines Messenger-Systems für die Pflegeindustrie (PHP / Symfony, Algolia, JavaScript)
- Offline-Online Funktionalitäten (Fax zu Digital)
Zusammenfassung
bett1.de ist ein Online-Shop für Matratzen auf Magento-Basis. Code-Änderungen werden mit git verfolgt, Abhängigkeiten mit composer und yarn verwaltet. Außerdem gibt es einen Build-Prozess, um CSS + Javascripts für die Produktion zu minimieren. Es verwendet einen Microservice auf Basis des symfony-Frameworks, der Paketverfolgungsinformationen extrahiert und normalisiert und diese als API dient, um Statistiken zu sammeln und erweiterte Benutzerinformationen anzuzeigen. Es läuft als Docker-Container und wird mit Docker-swarm bereitgestellt. Während meiner Zeit bei bett1.de mussten wir das System von einem einzigen Server-Setup auf eine neue verteilte Infrastruktur migrieren. Auch das Caching mit Lack und die Verwendung von Cloudflare als CDN sorgt für hohe Performance.
Haupttechnologie(n) verwendet:
PHP / Symfony, Magento 1, MySql Datenbank / Maria DB, Elasticsearch, Varnish
Technologie Details
Sprachen:
-
PHP: Webshop, microservices
-
Javascript: Frontend
Generell:
-
Läuft dockerized
Verwendete Software:
Mariadb, Cloudflare, Nginx, Elasticsearch, Kibana, Logstash, Filebeat, Redis, Docker, Docker-Swarm, Varnish
Zusammenfassung
Es verwendet einen Microservice auf Basis des symfony-Frameworks, der Paketverfolgungsinformationen extrahiert und normalisiert und diese als API dient, um Statistiken zu sammeln und erweiterte Benutzerinformationen anzuzeigen.
Haupttechnologie(n) verwendet:
PHP / Symfony
Zusammenfassung
Die Web-App, die der wichtigste Interaktionspunkt mit dem Benutzer ist, basiert auf dem symfony Framework. Code-Änderungen werden mit git verfolgt, Abhängigkeiten mit composer und yarn verwaltet. Automatische Linteraufgaben und Tests tragen dazu bei, eine hohe Codequalität zu gewährleisten. Außerdem gibt es einen Build-Prozess, um CSS + Javascripts für die Produktion zu minimieren. Die Bereitstellung der App wird mit benutzerdefinierten capistrano (Ruby) Skripten verwaltet. Ein angemessener Teil der Anwendung wurde irgendwann von mir bearbeitet oder erstellt.
Neben der App sind mehrere Microservices beteiligt, die spezielle Aufgaben wie das Versenden von Briefen, das Speichern von Beweisen oder das Abrufen von Informationen über den Website-Besitzer übernehmen. Diese Dienstleistungen basieren ebenfalls auf Symfony und stellen eine API für die App und die Worker-Prozesse bereit.
Haupttechnologie(n) verwendet:
PHP / Symfony, JS / Node.js, Ansible, Docker
Details zu Technologie
7 Server
Sprachen:
-
PHP: main app + microservices
-
Javascript (Node.js): frontend /worker services/ Lambda-functions
-
Ruby: deployment scripts (capistrano)
7 different Microservices + 13 different Worker-Applications
Setup mit Firewall-Regeln, Backups, Monitoring (Prometheus + node-exporter + custom ), Aggregated Logging (ELK-Stack), Alerting, Provisioned mit Ansible
Verwendete AWS-Services:
API-Gateway, S3, Lambda, DynamoDB, SQS, SNS, Route53, CloudFormation, Step Functions, EC2
Zusammenfassung
Bei ecocode haben wir mehrere Kundenprojekte mit ihrem Code, der in Git verwaltet wird und den Anforderungen entspricht unseren Kunden Staging-Systeme zur Verfügung zu stellen, die Vorschauen ermöglichen. Wir haben uns entschieden, unsere Repositories von Bitbucket auf unser eigenes Gitlab zu migrieren, mit Portus als Docker-Registry-Frontend. Mit gitlabCI nutzen wir Pipelines, die automatisch jede Niederlassung aufbauen, einrichten und bedienen die auf ihrer dedizierten Domäne zusammengeführt werden muss.
Für den Betrieb der Container und Pipelinebetreiber dieser Projekte wurde ein Kubernet-Cluster eingerichtet. Mit portus verwalten wir den Zugriff auf die Docker-Registry. Die gleichen Dockerimages werden auch für die lokale Entwicklung verwendet, um systembezogene Unterschiede so gering wie möglich zu halten. Das resultierende System ist in der Lage, automatisch Stagingumgebungen mit SSL, aktuellen Datenbanken und einem produktionsnahen Erlebnis zu erstellen.
Jedes Staging-System hat seinen eigenen Applikationsstapel mit allen benötigten Diensten - Datenbank, Redis usw., der isoliertes Testen und Überprüfen ermöglicht. Benutzerdefinierte Jobs ermöglichen es dem Entwickler, die Datenbanken zurückzusetzen, die standardmäßig zwischen den Code-Updates ständig wechseln. Kubernetes cert-manager wird verwendet, um ssl-Zertifikate von Staging-Systemen mit letsencrypt Wildcard-Zertifikaten auf dem neuesten Stand zu halten. Die Server wurden mit ansible ausgestattet.
Haupttechnologie(n) verwendet:
Ansible, Docker, Kubernetes
Details zu Technologie
Ansible, Docker, Kubernetes, gitlabCI, AWS-Route53
Zusammenfassung
Ein wichtiger Bestandteil des Copytrack-Angebots ist sein Crawler, der nach Fakes der Kundenbilder im Web sucht. Er hat eine Mikroservice-Architektur und läuft auf einem Bare-Metal-Kubernetes-Cluster, das mit Ansible und 23 verschiedenen Mikroservices mit 115 Instanzen ausgestattet ist. Er umfasst 57 Knoten und enthält derzeit 11 TB an gecrawlten Informationen in einem 6 Knoten Cassandra-Cluster. Die Mikroservices sind in Typescript geschrieben, mit Webpack kompiliert und für den Einsatz in AWS-ECR zu Docker-Images verpackt.
Haupttechnologie(n) verwendet:
Node.js, Typescript, Kubernetes, Ansible, Docker
Details zu Technologie
57 Servers:
-
Bare-Metal Kubernetes-Cluster
-
Redis (1)
-
RabbitMQ (1)
-
Prometheus + Grafana (94+ spezielle Leistungsparameter )
-
ELK - Stack
-
Cassandra (6 node cluster) (11.7 TB)
-
Elasticsearch (6 node cluster) (6GB)
23 verschiedene Mikroservices mit 115 laufenden Instanzen
Sprachen:
-
Javascript (Node.js): Mikroservices
-
Javascript (Node.js / TypeScript)
Verwendete AWS-Services:
API-Gateway, S3, Lambda, DynamoDB, SQS, SNS, Route53, ECR
Verwendete Software:
Nginx, Redis, Elasticsearch, Kibana, Logstash, Filebeat, Kubernetes, Docker, RabbitMQ, Mariadb
Zusammenfassung
Das Staging-System verwendet für jede relevante Niederlassung eine CI-Pipeline mit gitlab-CI, die automatisch Zweigcontainer erstellt und eine dedizierte Umgebung für die Überprüfung mit dynamischer Domäne bereitstellt, die mit AWS-Route53 und ssl-Zertifikat verwaltet wird. Es nutzt gesampelte und anonymisierte Backups als Vorschau-Daten und läuft auf einer kubernetischen Umgebung.
Haupttechnologie(n) verwendet:
Ansible, Docker, Kubernetes
Technologie Details
Verwendete Software:
Ansible, Docker, Kubernetes, gitlabCI, AWS-Route53
Zusammenfassung
Eine von mir für Bett 1 entwickelte Software führt eine in Python geschriebene ETL-Pipeline durch, die Google-BigQuery nutzt, um Performance-Insights für TV-basierte Werbeeinblendungen zu erhalten. Die Daten liegen in verschiedenen Quellsystemen einschließlich Google-Cloud-Storage und werden während der Pipeline zusammengeführt. Die Daten werden dann vorverarbeitet und in einem Bericht in Google-DataStudio gesichert.
Haupttechnologie(n) verwendet:
Python, Google-DataStudio, Google-BigQuery
Technologie Details
Sprachen:
-
Python: Analysis pipeline based on luigi with Google-BigQuery
Verwendete Software:
Google-DataStudio, Google-BigQuery