Von manuell zu automatisiert: Bereitstellung transformieren und Sicherheit verbessern

Wichtige Herausforderungen
Crimson hat Schwierigkeiten mit seinem Release-Prozess, die hauptsächlich durch Probleme mit dem Auto-Scaling verursacht werden. Ausfallzeiten der Website während der Bereitstellungen treten zu häufig auf und beeinträchtigen den Geschäftsbetrieb. Der aktuelle Bereitstellungsprozess ist manuell, was zu mehreren Problemen führt, wie z. B. Bereitstellungsverzögerungen, menschliche Fehler, die zu Website-Ausfällen führen, mangelnde Transparenz bei früheren Bereitstellungen und weitere Probleme, wenn das Unternehmen wächst.
Wichtige Ergebnisse
Crimson verbesserte die Bereitstellungseffizienz um 40 % und eliminierte manuelle Fehler durch automatisierte CI/CD-Pipelines mit Jenkins. Die Implementierung von EC2 Auto-Scaling verbesserte die Systemskalierbarkeit, während AWS WAF und GuardDuty eine robuste Sicherheit boten. Diese Änderungen führten zu einer besseren Betriebseffizienz, Zuverlässigkeit und Geschäftskontinuität.
Übersicht
Crimson hat Schwierigkeiten mit dem Release-Prozess, Probleme mit der Autoskalierung. Ausfallzeiten der Website während der Bereitstellung beeinträchtigen den Geschäftsbetrieb. Der aktuelle Bereitstellungsprozess ist manuell, was zu Problemen wie Bereitstellungsverzögerungen, menschlichen Fehlern, die zu Website-Ausfällen führen, und mangelnder Transparenz bei früheren Bereitstellungen führt.
Herausforderungen
Manuelles Deployment: Altlasten Anfänglicher Widerstand und Anpassungsschwierigkeiten beim Übergang von manuellen Bereitstellungsprozessen zu automatisierten CI/CD-Pipelines. Überwindung der organisatorischen Trägheit und Sicherstellung der Akzeptanz durch die Stakeholder für die Einführung von DevOps-Praktiken.
Komplexität bei Autoscaling-Strategien: Konfiguration und Feinabstimmung von EC2-Auto-Scaling-Richtlinien und -Strategien zur Optimierung der Ressourcennutzung ohne Über- oder Unterprovisionierung.
Sicherheitskonfiguration und -management: Sicherstellung der korrekten Konfiguration von AWS WAF-Regeln und AWS GuardDuty-Alarmen, um Fehlalarme zu minimieren und gleichzeitig Sicherheitsbedrohungen effektiv zu identifizieren und zu entschärfen.
Schnelles Management und Reaktion auf Sicherheitsvorfälle basierend auf Alarmen, die von Überwachungstools generiert werden.
Überwachungs- und Alarmmüdigkeit: Bewältigung einer großen Anzahl von Überwachungsalarmen und Sicherstellung, dass kritische Alarme priorisiert und umgehend beantwortet werden, während unkritische Alarme effektiv verwaltet werden.
Kontinuierliche Verbesserung und Anpassung: Kontinuierliche Verfeinerung von Bereitstellungspipelines und Überwachungskonfigurationen, um sich an sich entwickelnde Geschäftsanforderungen und technologische Fortschritte anzupassen. Abwägung zwischen Innovation und Stabilität bei der Einführung neuer AWS-Dienste und deren Integration in die bestehende Infrastruktur.
Die Bewältigung dieser Herausforderungen erforderte eine Kombination aus technischem Fachwissen, strategischer Planung und teamübergreifender Zusammenarbeit, um die skizzierten Schlüsselergebnisse zu erzielen und die betriebliche Effizienz und Zuverlässigkeit von Crimson zu verbessern.
Lösung
Wir haben EC2-Auto-Scaling eingerichtet, um sicherzustellen, dass wir die richtige Anzahl von Maschinen zur Bewältigung des Datenverkehrs hatten. Wir haben die Auto-Scaling-Gruppen erstellt und die entsprechenden Server darin platziert. Hier haben wir die minimale und maximale Anzahl von Instanzen in der Autoscaling-Gruppe festgelegt, um die Begrenzung einzuhalten. Und die Strategie hinzugefügt, alte Instanzen herunterzufahren, sobald die neuen einsatzbereit sind und Anfragen bearbeiten.
Wir haben die automatische Bereitstellung eingerichtet, indem wir den Job in verschiedenen Umgebungen mit Jenkins Pipeline erstellt haben. Jenkins hilft, den Bereitstellungsprozess von Crimson zu automatisieren, sodass Ressourcen immer auf sichere Weise zur Verfügung gestellt werden. Dieser Prozess erfüllt die Anforderungen, keine manuellen Änderungen in der Produktion vorzunehmen und nur automatisierte Methoden zu verwenden. Wenn Code zu GitLab hinzugefügt wird, startet dies unseren Jenkins CI/CD-Workflow. Wir haben verschiedene Gruppen für unterschiedliche Umgebungen eingerichtet, wie UAT und Produktion. Sobald die Bereitstellung und Änderungen in UAT reibungslos erfolgt sind und die Entwickler ihre Zustimmung gegeben haben, können die Produktionsjobs beginnen.
Sobald die Änderungen im GitLab-Quellcode committet sind, startet der Entwickler den Job. Während des Builds werden Kommentare auf dem Jenkins-Server ausgeführt und anschließend die Build-Dateien auf die Zielmaschine kopiert. Außerdem haben wir Jenkins in Slack integriert, sodass wir bei einer Bereitstellung eine Nachricht mit dem Fortschritt und der benötigten Zeit für den Abschluss des Jobs erhalten.
AWS WAF ist konfiguriert, um vor gängigen Web-Exploits und Angriffen wie SQL-Injection, DDoS-Angriffen und Cross-Site-Scripting (XSS)-Angriffen zu schützen. Wir verwenden AWS Managed Rules und Custom Rules, um Anfragen zu überwachen und sie basierend auf den in den Regeln festgelegten Bedingungen entweder zuzulassen oder zu blockieren. Dies hilft uns, Bedrohungen zu verstehen und zu erkennen, ob die Protokolle bekannte Anfragen aufweisen.
Wir haben AWS Config aktiviert, um nachvollziehen zu können, wie Ressourcen eingerichtet wurden und welche Änderungen an ihrer Steuerung im Laufe der Zeit vorgenommen wurden. Es informiert uns über die Ressourcensammlung und benachrichtigt uns, wenn sich die Konfiguration einer Ressource ändert. Wir haben AWS CloudTrail mit Amazon S3 verbunden, um Protokolle und Historien von Konfigurationsänderungen aufzeichnen und speichern zu können.
Amazon GuardDuty ist zur Bedrohungserkennung eingerichtet, um umfassende Sicherheitsergebnisse zu liefern, die eingesehen und behoben werden können. Es überwacht unsere AWS-Prozesse, wie den Schutz von EC2, S3, EKS, Lambda und RDS. Durch den Einsatz von AWS Inspector konnten wir unsere Bewertungen automatisieren, sodass unsere Anwendung kontinuierlich auf Sicherheitslücken und Netzwerkexpositionen über alle unsere Konten hinweg gescannt werden konnte. Alle Überwachungsmetriken sind mit Alarmen für alle Schwellenwerte konfiguriert.
Geschäftsergebnis
- Verbesserte Skalierbarkeit und Verfügbarkeit durch die Implementierung von Auto-Scaling und Rolling Updates.
- Optimierte und automatisierte Bereitstellung über verschiedene Umgebungen hinweg reduzierte den Zeitaufwand um 40 %, wodurch das Risiko manueller Fehler eliminiert wurde.
- Echtzeit-Überwachung und -Sicherheit durch die Konfiguration von AWS WAF, GuardDuty.





