Home / Project Guides Orijinal makale

DevOps ve Sürekli Teslimat Sistemi

Üretim dağıtımına kod gönderiminden otomatik akış hatları ve ölçülebilir ve sürdürülebilir teslimatın oluşturulması, işbirliğine, testlere, ulaşıma ve dağıtıma yönelik engellerle kapalı döngüler.

ZHIHUA OIGINAL Profesyonel UygulamaOtomatik akış hatları ile yazılım teslimatlarının artan verimlilik ve istikrarı, kaliteli kapı kapatmaları ve gözlemlerDevOps ve ZhiHua Tech orijinal makale

Uygulama

Yazılım geliştirme ekibi neredeyse kaçınılmaz olarak üç kişi ve sistem arasında manuel temasa geçmek için “önderme sıklığı artıyor, ancak erişim hızı yavaş hale geliyor; farklı araçlar ve süreçler geliştiriliyor, test ediliyor ve diğerinde çalıştırılıyor, üç kişi ve sistem arasında bir süre iletişim kurmak; çevresel farklılıklar “benim makinemde” bir sözlü tartışma yapıyor; ve hattın başarısızlığı, hangi bir log sayısı gerektiren bir dizi kullanıcı kaybı.

Sorun, takımın zor çalışmıyor olması değil, ama öyle.Otomatik bir sistem ve işbirliği normlarının gelişimi, test, dağıtım, ulaşım ve iletişim kurma eksikliğiBurada açıklanan sahneler, standart DevOps uygulamaları ve sürekli teslimat yetenekleri inşa etmeyi bekleyen yazılım takımları içindir ve sayfalar üzerinde görüntüleniyor.ZhiHua Tech (Shanghai e-Seok-shu Hsien-Shui Information Technology Ltd.)Mevcut DevOps sistemi inşaatı ve teslimat yöntemleri belirli müşteriler için verilerin açıklanmasını temsil etmiyor.

Tipik operasyonel zorluklar

1. Uzun salıverme döngüsü, çoklu manuel işlemler ve yüksek hata oranı

  • Oluşturma ve dağıtmaKılavuz, manuel yükleme sunucusu, kod geliştirildikten sonra manuel yeniden başlatma hizmeti - basit bir sürüm güncellemek için yarım saat sürebilir.Her sürüm stresli bir operasyondur ve hafif bir sızıntı başarısız olabilir.
  • Çevre incoherenceGeliştirme ortamı, test ortamı, pre-ya dalım ortamı ve üretim ortamı arasında gizli farklılıklar vardır - işletim sistemi versiyonu, ara konfigürasyon, kütüphaneye küçük sürüm numaralarına olan güven.Bu farklılıklar testin geçtiğinden sonra, bu farklılıklar üretime aktarılır.
  • Standart roll geri dönme mekanizmalarının eksikliği: Yayından sonra ciddi bir arıza tespit edildiğinde, rollback manuel işlemlere ve hatta yedekleme kurtarmaya bağlıdır ve geri dönüş süresi birkaç dakikadan daha fazla ölçülür.

2. Test ve manuel alt-up kalitesinden geri bildirim

  • Test zinciri bir şişenck.Test süresi, gönderilen kodu geliştirmeden bir hafta boyunca sürebilir. Geliştirme ekibi kodu ileri yazmaya devam ediyor ve test geri dönüşleri sırasında, gelişim uzun bir yol gitti ve Bug'in onarımı acı verici bir "psikolojik arkaorite" haline geldi.
  • Regresyon testi kapsamı yetersizdir• Yayınlanmadan önce manuel runback vakaları, zaman ve insan gücü ile sınırlı, genellikle sadece ana süreci kapsar. Marginalization ve bozulma genellikle kullanıcı şikayetlerinden sonra tespit edilir.

3. Low, online ve pasif başarısızlık yanıt yanıtını gözlemledi

  • Logs dağınık ve bağlanmak zordurMikro hizmet mimarisi altında, bir kullanıcı isteği 5-10 hizmet örneği yayılabilir. Servislerin Logları farklı sunucular üzerinde dağıtılır ve sorunlar tek bir izID seri ile bir log-by-line temel üzerinde kontrol edilir.
  • gözetim için geç kalıyoruz.alarmın kuralları geniştir - çoğu zaman sadece kullanıcıların sayısı önemli ölçüde azaldı ve iş zarar gördü - ve alarmı tetikledi. Operasyonel göstergeler için bir bağlantı analizi ve erken uyarı eksikliği (düşük miktar, başarı oranı) ve altyapı göstergeleri.

Program tasarım düşünme

1. Bina standart CI/CD akış hatları

  • Kod gönderme tetikleyicileriBir Push kodun belirli bir şubeye gelişimi otomatik olarak bir akış hattının inşaatını tetikler - derleyici, üniteyi test edin, kodu tarama (SonarQube), güvenli tarama, ayna inşaatı.Eğer herhangi bir bağlantı başarısız olursa, geliştirici IDE veya Enterprise IM'de anında bildirim alır.
  • Çevre kendi kendine hizmetTest ortamı ve ön-konuş ortamı, altyapının standart tanımı veya kodu (terraform/Ansible) tarafından tanımlanır ve herhangi bir ekip üyesi tam ortamı tek bir anahtarla yaratabilir.
  • Grayscale release and canary deploymentÜretim sürümleri ilk olarak% 5-10 oranında dağıtılır ve temel göstergelerin gözlemi (miytings, gecikmeler, iş verileri) normaldir ve tam hacmine kadar ölçeklenir.

2. Otomatik test bağlama sistemlerinin oluşturulması

  • Test Piramiti: Çok sayıda birim testi (hız, güvenilir) Doğru bir entegrasyon testi Küçük bir son test testleri test eder.Her akış hattı ilk olarak birim testleri (saniyeler) tarafından çalıştırılır ve sonra sadece geçiş entegre test yapılır.
  • Regresyon testinin OtomasyonuAnahtar arayüzünün performans temel satırı her binada otomatik olarak test edilir. Bir arayüz P99'da bir gecikmede bir gecikme sonucu eşiği aşılırsa, otomatik olarak bir başarısızlık olarak yapılır.

3. Tüm zincir algılama kabiliyetine sahip olmak

  • Birleşik giriş ve bağlantı izlemeELK/Loki + OpenTelemetriye dayanarak, tüm hizmet girişleri toplanır ve TraceID'e yerleştirilir. tam bağlantı ve her düğüm çağırmak için zaman ayırdığı bir soru ararken bir TraceID girin.
  • D.D. İzle ve akıllı alarm.Altyapı izleme (CPU/RAM/disk/network) + Uygulama izleme (QPS/delayed/mistake) + Operasyonel izleme (düşük/ödeme başarısı) üç katla bağlantılıdır. alarm kuralları, aynı-to-symmetric/ring algılamayı yanlışlama ve sabit eşlerin kapatılmasından kaçınmak için destekler.

Sistem kapasitesinin kapsamı

Kod ve Yönetim Kur

  • GitFlow /Trunk-Based
  • Entegre inşa ve çoklu projeler için yönetime güvenmek
  • Code kaliteli kapı çubuğu: statik tarama, güvenlik boşluk algılama, test kapsama denetimi
  • Ürün depolarının bütünleşik yönetimi (Docker ayna / JAR / WAR / NPM paketi)

• Devamlı entegrasyon ve dağıtım

  • Jenkins / Gitlab CI / GitHub Actions Waterline
  • Multi-environmental otomatik dağıtım (geliş/test/pre-publication/proje)
  • Greyscale release, Blue Green deployment, yuvarlanma stratejisi
  • Değişim kayıtlarının onay akışının ve otomasyonun

Otomasyon testleri

  • Modül Test / Tümleşik Test / End-to-end Test Katman Politikası
  • Performans kriteri ve regresyon testleri
  • Interface sözleşme testi (Pact) hizmetlerinin karşılıklılıklarını sağlamak için
  • Kaospu testi esnekliği doğrulamak için

• Observable platformları

  • ELK / Grafana Loki Central Log Platform
  • Prometheus + Grafana Gösterge İzleme ve Görselleştirme
  • OpenTelemetri, tam bağlantı izleme.
  • + Multi-channel Bildirim (cruising/mikro/fly book/PagerDuty)

Altyapı kodlanmıştır

  • Terraform / Pulumi Bulut Kaynak Organizasyonu
  • Ansible / SaltStack Yapı Yönetimi
  • Kubernetes Cluster Yönetimi ve Auto-Scalp
  • Helm Chart Standart Uygulama İşbirlikleri

Teslimatlar

Phase Teslimat Teslimatı Main elements
DevOps Değerlendirme Mevcut durumun teşhisi Mevcut araştırma ve geliştirme süreçleri ve araç zinciri değerlendirme, ağrı puanlarının ölçülmesi, olgunluk derecelendirmesi ve yol haritasının iyileştirilmesi için iyileştirme
Su hattı çalışıyor. CI/CD mevcut çizgi Operatable inşaat, kod tarama, güvenlik testi ve otomatik test entegrasyonu dahil olmak üzere akış hatlarının test ve dağıtımları
Kontrol sistemi Gözlemsel platform Logs/indicators/links tamamlandı, anahtar uyarı yönetimi yapılandırmaları dağıtıldı, büyük disk teslimatı takip edildi
Regulate Document DevOps Kodbook Branş politikası, Kod İnceleme süreci, serbest bırakma süreci, geri dönüş süreci, görev ve acil yanıt normları
Takım güçlendi. Eğitim ve egzersiz Tool zincir operasyonu eğitimi, Acil Açıklama (Game Day), Fragment şablon ve takip edilen izleme eğitimi

Intended value Orient

  • Her iki frekans ve salıvermenin güvenilirliği: Yukarı ve hatta daha sık, aylık serbest yayınlar talep üzerine yapılır, her salıverme küçük bir değişiklik seti tarafından önemli ölçüde azaltılır.
  • % 70 +• Yapay bağlantıların ve otomatik akış hatlarıyla bağlantıları bekleyen.
  • Başarısızlıkların onarımı (MTTR) bir ebeveynden bir dakikaya kadar sıkıştırılır: Tam zincir izleme + akıllı alarm, pozisyon kökü artık tahmin edilmedi.
  • Takım işleri "zösterler ve bu yüzden" birlikte "bir araya" sola sokulmaya gitti.: Çevre kendine hizmet, otomatik test geri bildirim, geliştirme ve QA artık birbirlerini beklemez.

Daha fazlasını bilir:

  • Ürün Teslimi Ulaşım - ZhiHua Tech Deployment, Alerts ve Transport Hostage Hizmetlerinin İzlenmesi
  • Custom Software Development - İş benzersiz iş süreçleri için Sisteme özgü tasarım ve geliştirme
  • Proje işbirliği ve teslimat rehberi - kabul etmek ve denetime başvurmak için iletişimden tam işbirliği süreci
  • Ücretsiz tavsiye - ZhiHua Tech ekibi ile özel ihtiyaçlarınızı iletişim kurun
ZhiHua Tech için profesyonel hizmetler

Mevcut işletmenin durumu bağlamında daha fazla analize ihtiyaç var mı?

IT teknik tavsiye, işletme bilgi inşaatı, yazılım projesi Outlook, FDE Enterprise AI uygulama ve yazılım ürün tasarımı ve teslimat hizmetleri sunuyoruz.

Liaison Danışmanları
Content responsibility statement ifade

Yayın organı: ZhiHua Tech gibi Şanghay, teknik ve proje karar verme amaçları için kullanılır; gerçekler, veriler ve dış perspektifler sayfada sunulmaktadır ve belirli bir projenin sonuçları için bir taahhüt oluşturamaz.İçerik tespitini kontrol etmek, bilgi kaynağı ve düzeltme politikası