प्रत्येक साधनाने काहीतरी वाईट गोष्ट बदलली — आणि तेच साधन कुठेतरी चुकीचे ठरते. या कोर्समधील प्रत्येक मोठ्या कल्पनेसाठी: ती येण्याआधी जीवन कसे होते, तिचे प्रामाणिक फायदे ✅ आणि तोटे ❌, आणि कुठे वापरावी 👍 विरुद्ध कुठे नाही 👎.
मर्ज-डे चे युग: प्रत्येक जण आठवडे-आठवडे स्वतःच्या खाजगी प्रतीवर काम करत असे, मग सत्राच्या शेवटी सगळे एकत्र जोडले जाई — conflict, compile न होणारे build, दिवसच्या दिवस ते चिकटवण्यात घालवणारा एक 'build master', आणि कोणीतरी विसरलेली छापील चाचणी-यादी. रात्रीच्या build ने थोडी मदत केली; CI सर्व्हर (CruiseControl 2001, Hudson/Jenkins 2005–2011) आणि नंतरच्या hosted सेवांनी प्रत्येक push तपासणे ही कामाची सामान्य पद्धत बनवली.
Build job एका सर्व्हरवर web UI मध्ये क्लिक करून करून बनवले जात, आणि तो सर्व्हर अपग्रेड करायची कोणाची हिंमत नसे; 'job 37' काहीतरी महत्त्वाचे करत असे आणि ते फक्त बॉबला माहीत असे. Jenkinsfile (2016), .gitlab-ci.yml, .circleci/config.yml आणि workflow फाइलींनी pipeline repo मध्ये, कोडच्या शेजारी आणली.
दीर्घकालीन cloud keys CI च्या secrets मध्ये चिकटवलेल्या, पाच repo मध्ये copy केलेल्या, क्वचितच बदललेल्या, आणि log, fork किंवा जुन्या लॅपटॉपमधून गळालेल्या — सार्वजनिक घटना-अहवालांमध्ये पुन्हा पुन्हा दिसणारी गोष्ट. OIDC federation मुळे CI run सहीबंद ओळख-token दाखवते आणि काही मिनिटांत संपणारी credentials मिळवते.
sub अट सूक्ष्मपणे चुकणे सोपे (खूप रुंद = कोणताही repo role घेऊ शकतो)ज्याच्याकडे production चा पासवर्ड असे तो deploy करत असे; बदलांच्या वेळा एका सामायिक spreadsheet मध्ये असत; 'शुक्रवारी deploy करू नका'; आणि कोणी काय मंजूर केले हे कोणीच सांगू शकत नसे. संरक्षण-नियम असलेली Environments production च्या पुढे एक नावानिशी माणूस, एक staging पायरी आणि एक audit नोंद उभी करतात.
'देखभालीची वेळ 02:00–04:00', सगळे एकाच वेळी deploy करणारे big-bang deploy, आणि मागच्या आठवड्याचा tarball परत ठेवून केलेले rollback. Rolling update, blue/green आणि canary टाचण्या हळूहळू बदलतात — आणि कालची सूचना काही सेकंदांत परत लावू देतात.
ज्या लॅपटॉपकडे योगायोगाने kubeconfig असे त्यावरून kubectl apply — 'माझ्या cluster वर चालते'. Push pipeline ने ते पुन्हा पुन्हा करण्याजोगे केले: कुरिअर cluster पर्यंत जातो आणि apply करतो. ही मोठी सुधारणा आहे — एका आंधळ्या जागेसह, जिथून ArgoCD शाळा सुरू होते.
टेबलाखाली ठेवलेला एक Jenkins बॉक्स, कधीच अपग्रेड न केलेला, release च्या दिवशी disk भरलेली. Hosted सेवा (Travis CI 2011, CircleCI 2011, GitLab CI 2012, GitHub Actions 2019) मेलरूम सेवा म्हणून विकतात; self-hosted runner मुळे यंत्रे तुमच्याकडे राहतात आणि वेळापत्रक SaaS कडे.