46 Sıkça Sorulan DevOps Mülakat Soruları ve Cevapları [2023]
Yayınlanan: 2023-01-12Bir sonraki DevOps görüşmenizde hangi soruları soracağınızı bilmek ister misiniz? Kullanışlı kılavuzumuzla başlayın.
DevOps terimi 2007-2008'de ortaya çıktı ancak şimdi yazılım mühendisliğinde en popüler kariyerlerden biri haline geldi. DevOps, geliştirme ve operasyonların her yönüne dokunan bir kültürel değişimdir.
İki ekip (geliştirme ve operasyonlar), planlama ve oluşturmadan izleme ve yinelemeye kadar birlikte çalışır. Bir DevOps mühendisi rolü arıyorsanız, karşılaşmanız muhtemel olan en yaygın sorular bunlardır.
DevOps nedir?
DevOps, geliştirme ve operasyonların kısa biçimidir. Bu yazılım mühendisliği uygulaması, bir projenin her aşamasını otomatikleştirmek için geliştirme ve operasyon ekiplerini bir araya getirir. Bir DevOps ekibi, Kaynak yönetimi, iletişim ve ekip çalışmasına odaklanır.
DevOps metodolojisindeki farklı aşamalar nelerdir?
- Sürekli gelişim. Bu planlama ve kodlama aşamasıdır.
- Sürekli entegrasyon Bu, geliştirme ekibinin farklı bileşenleri entegre ettiği ve kodun bozulmamasını sağladığı aşamadır.
- Sürekli test. Bu, önceden planlanmış ve otomatikleştirilmiş test aşamasıdır.
- Sürekli dağıtım. Bu aşama, tüm uygulamanın performansını etkilemeyen sorunsuz geliştirme sağlar.
- Sürekli izleme. Bu aşama, uygulamanın genel etkinliğini sağlar.
- Sürekli geri bildirim. Son kullanıcılar tarafından bildirildiği şekliyle sorunlar ve performans analiz edilir.
- Sürekli işlemler. Geliştiricilerin ürünün daha iyi sürümlerini oluşturmasına ve sorunları hızlı bir şekilde tespit etmesine olanak tanır.
DevOps'un faydaları nelerdir?
- Daha hızlı ve daha iyi ürün teslimatı
- Daha fazla ölçeklenebilirlik
- Hızlı sorun çözümü
- Daha iyi kaynak kullanımı
Bazı DevOps araçlarını adlandırın
- Jenkins gibi Sürekli Entegrasyon Araçları
- Git gibi Sürüm Kontrolü
- Maven gibi Araçlar oluşturun
- Chef gibi Konfigürasyon Yönetimi Araçları
- Docker gibi Konteyner Platformları
Bazı DevOps KPI'ları adlandırın
- Dağıtım sıklığı
- Hacmi değiştir
- dağıtım süresi
- Başarısız dağıtım oranları
- Zaman algılama
- Kusur kaçış oranı
DevOps ve çevik arasındaki fark
DevOps, yazılımın geliştirilmesi ve bakımında yer alan tüm ekip üyeleri arasında işbirliğini teşvik eden bir kültürdür.
Agile, ekipleri üretken hale getirmek ve değişen ihtiyaçlara göre sürümleri yönlendirmek için tasarlanmış bir geliştirme metodolojisidir.
DevOps'ta AWS'nin Rolü Nedir?
AWS, şirketlerin uygulamaları güvenilir ve hızlı bir şekilde geliştirmesine yardımcı olan bir dizi esnek hizmete sahiptir. AWS hizmetleri, kod dağıtmayı, altyapı sağlamayı ve basitleştirmeyi, yazılım yayınlama süreçlerini otomatikleştirmeyi ve altyapı performansını izlemeyi basitleştirir.
SSH'nin kullanımı nedir?
SSH (Secure Shell), farklı bilgisayarlar arasında güvenli bağlantı sağlayan bir protokoldür. SSH, teklif verme gibi farklı amaçlara hizmet eder; güçlü kimlik doğrulama, güçlü şifreleme, bağlantı bütünlüğünü koruma, güçlü bağlantı ve güvenlik.
Sürekli entegrasyon nedir?
Sürekli entegrasyon, yazılım geliştiricilerin kodlarını merkezi bir havuzda birleştirmelerine olanak tanır. Kod daha sonra otomatik derlemeler ve testlerden geçirilir.
Yapılandırma yönetimi nedir?
Bir sistemin/ürün performansının ve yaşam döngüsü boyunca işlevsel ve fiziksel özelliklerinin tutarlılığını sağlama ve sürdürme mühendislik sürecidir.
Sürekli test nedir?
Bu, geliştirme devam ederken bir uygulamanın önceden planlanmış ve otomatikleştirilmiş testidir.
Git nedir?
Bu, kaynak kodu yönetimi için açık kaynaklı ve ücretsiz bir araçtır. Bu araç, küçük ve büyük projeleri işlemek için tasarlanmıştır.
Bazı temel Git komutlarından bahsedin
- Git klonu
git clone <https://name-of-the-repository-link>
- git şubesi
git branch <branch-name>
- Git ödeme
git checkout <name-of-your-branch>
- git ekle
git add <file>
- Git taahhüdü
git commit -m "commit message"
- git itme
git push <remote> <branch-name>
- git çekme
git pull <remote>
Git birleştirme ve Git yeniden oluşturma arasındaki farkı açıklayın
Git birleştirme komutu, geliştiricilerin farklı Git dallarını birleştirmesine izin verirken, ilgili dalların taahhüt günlükleri bozulmadan kalır.
Git rebase komutu, geliştiricilerin değişiklikleri bir daldan diğerine entegre etmesine olanak tanır ve işlem tamamlandıktan sonra günlükler değiştirilir.
Git getirme ve Git çekme arasındaki farkı açıklayın
Git getirme, git'e orijinalden en son meta verileri almasını/kontrol etmesini söyler. Ancak, herhangi bir dosya aktarımı yapmaz, sadece kontrol eder.
Git çekme, uzak havuzdaki değişiklikleri denetler ve yerel projeye getirir.
Birleştirme çakışması nedir?
Birleştirme çakışmaları, iki dalı rakip taahhütlerle birleştirdiğinizde ortaya çıkar. Birleştirme çakışmaları genellikle farklı geliştiriciler aynı kod veya dosya satırını değiştirdiğinde ortaya çıkar.
Sürüm kontrolü nedir ve farklı türleri nelerdir?
Sürüm kontrolü (kaynak kontrolü), yazılım kodundaki değişiklikleri izleme ve yönetme sürecidir.
Bunlar, farklı sürüm kontrol türleridir;
- Merkezi - bir sunucuda kaynak kodun tek bir "merkezi" kopyasına sahip olun ve tüm değişiklikler "merkezi" kopyaya kaydedilir. Subversion (SVN) ve Performance, merkezi sürüm kontrollerine örnektir.
- Dağıtılmış (DVCS) - tüm proje dosyalarını depolamak için merkezi bir sunucuya sahip değilsiniz. Git ve Mercurial, DVCS örnekleridir.
Sürüm kontrolünü kullanmanın faydaları nelerdir?
- Geliştiricilerin verimliliği ve çevikliği korumasına yardımcı olur
- Bir projeye/dosyaya yapılan her değişikliğin eksiksiz bir günlüğünü verir
- İzlenebilirliği geliştirin
- Birleştirme ve dallanmayı yönetmeye yardımcı olur
- İşbirliğini etkinleştirir
dallanma nedir?
Dallanma, ana deponun ayrı/yeni bir sürümünün oluşturulması anlamına gelir. Şubeler, ana şubeyi etkilemeden projenin çeşitli bölümlerinde çalışmanıza olanak tanır.
Dallanma stratejileri nelerdir?
Birleştirme stratejileri, yazılım geliştirme ekiplerinin kod yazarken, birleştirirken ve dağıtırken benimsediği metodolojilerdir. Böyle bir yaklaşım, hataların ve hataların ana proje ile birleştirilmeden önce şube aşamasında düzeltilmesini sağlar.
Otomasyon testi nedir ve DevOps'ta test nasıl otomatikleştirilir?
Otomasyon testi, kodu otomatik olarak gözden geçirme ve doğrulama tekniğidir. İşlevsellik (iş mantığı), kod stili ve kullanıcı deneyimi için kalite standartlarının karşılanıp karşılanmadığını kontrol etmek için otomasyon testi yapılır.
Otomasyon testi, Selenium ve Katalon gibi araçlar kullanılarak yapılır.
Jenkinsfile nedir?
Jenkinsfile, Jenkins ardışık düzeninin tanımını içeren bir metin dosyasıdır. Jenkinsfile, kaynak kontrol deposunda kontrol edilir. Kullanımlarından bazıları; işlem hattı için bir denetim izine izin verir, işlem hattında kod incelemesine ve yinelemeye izin verir ve işlem hattında tek bir doğruluk kaynağı verir.
Jenkins'teki mimariyi açıklayın
Jenkins, master-slave mimarisine sahiptir. Bu, bir "efendi" için çalışan birçok "köle" olduğu anlamına gelir. Jenkins Dağıtılmış Yapı, böylece izleme için ana düğümde toplanan ve birleştirilen sonuçlarla farklı ortamlarda aynı testleri çalıştırabilir.
En iyi Jenkins eklentileri nelerdir?
- Jenkins için Blue Ocean Eklentisi
- Jenkins için Posta Gönderici Eklentisi
- Jenkins için Git eklentisi
- Jenkins için Jira eklentisi
- Jenkins için Docker eklentisi
- Jenkins için Maven Entegrasyon Eklentisi
- Jenkins için Kubernetes eklentisi
- Jenkins için SonarQube Eklentisi
- Jenkins için Amazon EC2 Eklentisi
Selenyum IDE nedir?
Selenium IDE, test durumları için tarayıcı etkileşimlerini kaydeden bir araçtır. Selenium Integrated Development Environment ile hatalar oluştuğunda kesme noktaları ayarlayabilir ve değişkenleri kontrol edip duraklatabilirsiniz.
Farklı Selenyum bileşenleri nelerdir?
- Selenyum IDE
- selenyum RC
- Selenyum Web Sürücüsü
- selenyum ızgara
Selenium'daki farklı test türleri nelerdir?
- Uçtan uca test
- Gerileme testi
- Sistem testi
- Performans testi
- Uyumluluk testi
Selenium'daki farklı istisnalar nelerdir?
- ElementNotSelectableException
- NoAlertPresentException
- GeçersizSelectorException
- NoSuchSessionException
- StaleElementReferenceException
- NoSuchWindowException
- NoSuchFrameException
- NoSuchElementException
- Zaman Aşımı İstisnası
- ElementNotVisibleException
WebDriver'da driver.close() ve driver.quit() nedir?
driver.close()
komutu, tarayıcı penceresini odakta kapatır. Yalnızca bir tarayıcı açıksa, tüm tarayıcı oturumunu kapatır.
driver.quit()
komutu, tüm tarayıcı oturumunu tarayıcı açılır pencereleri, sekmeleri ve pencereleriyle kapatır.
Docker dosyası nedir?
Dockerfile, kullanıcının bir görüntüyü birleştirmek için komut satırında kullanabileceği tüm komutları içeren bir metin belgesidir.
Liman işçisi görüntüleri ile liman işçisi konteyneri arasındaki farklar
Docker görüntüleri, herhangi bir uygulamanın herhangi bir işletim sisteminde veya platformda başarılı bir şekilde çalışması için gereken kaynak kodları, araçlar, kitaplıklar, dış bağımlılıklar ve diğer dosyalarla hazırlanmış salt okunur şablonlardır.
Bir liman işçisi konteyneri, liman işçisi görüntü şablonlarını çalıştıran bir kutudur.
Docker'ın mimarisini açıklayın
Docker, bir İstemci-Sunucu mimarisini izler ve Docker Client, Docker Host ve Docker Registry'den oluşur.
Docker Client , Sunucu (Docker Daemon) ile iletişim kurmak için REST API'lerini ve komutları kullanır.
Docker Client, bu komutları çalıştırmak için CLI kullanır
docker build docker pull docker run
- Docker Host , uygulamaları yürütmek ve çalıştırmak için bir ortam sağlar. Docker arka plan programı, depolama, görüntüler, kapsayıcılar ve ağlardan oluşur.
- Docker Registry , Docker görüntülerini yönetir ve depolar.
Docker'ı destekleyen bulut platformları
Liman işçisi barındırmayı destekleyen platformlar;
- Kamatera
- Google Bulut Koşusu
- A2 Barındırma
- StackPath
- Özensiz.io
- Amazon ECS'si
- Microsoft Azure
- HostPresto
- Vultr
Nagios nedir?
Nagios, iş süreçlerinin, sistemlerin, hizmetlerin ve uygulamaların düzgün çalışmasını sağlamak için tüm BT altyapısını izleyen bir araçtır.
Nagios nasıl çalışır?
- izleme BT personeli, ağ protokollerini, sistem ölçümlerini, uygulamaları, ağ altyapısını, hizmetleri ve sunucuları izlemek için Nagios'u yapılandırır.
- uyarı Nagios, kritik bileşenler arızalandığında uyarılar gönderir. Uyarılar SMS, özel kod veya e-posta yoluyla olabilir.
- yanıt BT ekibi uyarıları kabul eder ve harekete geçer.
- Raporlar Daha sonra incelenmek üzere bildirimlerin, kesintilerin, uyarı yanıtlarının ve olayların geçmiş kaydını sağlayan raporlar oluşturulur.
- Bakım Planlanmış kapalı kalma süresi, bakım sırasında uyarıların gönderilmesini engeller.
Nagios'taki bazı Eklentilerden Bahsedin
- Resmi Nagios eklentileri - resmi ekip tarafından geliştirildi ve sürdürüldü
- Bireysel ihtiyaçlara uyacak şekilde bireyler/işletmeler tarafından yazılan özel eklentiler
- Nagios topluluğu üyeleri tarafından geliştirilen topluluk eklentileri
Nagios ile sanallaştırmayı açıklayın
Nagios, çeşitli sanallaştırma platformlarında çeşitli ölçümleri izleme yeteneği sunar. Nagios, Xen, Amazon EC2, VMware ve Microsoft Virtual PC gibi çeşitli sanallaştırma platformlarından çalışabilir.
Nagios izleme konusunda nasıl yardımcı olur?
Nagios, sunucunuzla ilgili istatistikleri toplamak ve ölçümler önceden tanımlanmış eşiğin üzerindeyse bir uyarı göndermek için NRPE, check_mk veya SNMP gibi aracılar kullanır.
Nagios izleme amacıyla hangi port numaralarını kullanıyor?
SNMP, bağlantı noktaları 161 ve 162
Nagios ağ analizcisi nedir?
Nagios ağ analizörü, kullanıcıların iş operasyonlarını kesintiye uğratmadan önce anormal davranışları, kesintileri ve güvenlik tehditlerini proaktif olarak çözmelerine olanak tanıyan bir akış veri analizi yazılımıdır. Bu ticari sınıf araç, ağ trafiğine ve BT altyapısına ilişkin kapsamlı bilgiler sunar.
Nagios'ta kalıtımı ve yinelemeyi etkileyen değişkenler
- Ad - nesne değişkenlerini/özelliklerini devralabilen bir 'ad' şablonu.
- Kullan- belirt değişkenleri/özellikleri devralmak istediğiniz şablonun nesne adı.
- Register , şablon nesnesinin adının Nagios'a 'kayıtlı' olup olmayacağını belirtir.
Kukla nedir?
Kukla, yazılım yapılandırma yönetimi ve dağıtımı için açık kaynaklı bir araçtır.
Kukla manifestosu nedir?
Kukla bildirimi, kaynakların nasıl yapılandırılması gerektiğini açıklayan Kukla yapılandırma dilini içeren bir dosyadır.
Kukla kodu nedir?
Kukla kod, bildirimsel bir koddur, yani onu oraya ulaşmak için gereken adımları değil, sisteminizin istenen durumunu kullanarak tanımlarsınız.
Şef nedir?
Chef, altyapıyı koda dönüştüren bir yapılandırma yönetim aracıdır. Bu araç, manuel işlem yerine kod yazmaya odaklanır.
Şef nasıl çalışır?
Chef'in işi, sistem yöneticileri veya geliştiriciler otomatikleştirilecek görevleri tanımladığında başlar. Yemek kitapları ve tarifler (alana özgü bir dilde yazılmış küçük programlar) daha sonra yakalanır ve Test Kitchen, ChefSpec ve Foodcritic gibi çeşitli araçlar kullanılarak test edilir.
Yemek kitapları ve tarifler beklendiği gibi çalışıyorsa bıçak ve şef komut satırı araçları kullanılarak Chef sunucusuna dağıtılır. Bir şef devreye alma işleminde bir Şef sunucusu, iş istasyonları ve düğümler bulunur. 3000'den fazla yemek kitabı şablonu arasından seçim yapabilir ve bunları ihtiyaçlarınıza göre özelleştirebilirsiniz. Aşçı daha sonra işin geri kalanını halleder.
Özet
Glassdoor'a göre, ABD'de bir DevOps mühendisinin ortalama maaşı yılda 104281 dolar. DevOps yeni bir kariyer olmasına rağmen, artık daha fazla şirketin bu rol için işe aldığını ve profesyonelleri temel becerilerle donatmak için çeşitli kurslar yayınladığını görebiliyoruz. Yukarıda, bir DevOps görüşmesinde muhtemelen karşılaşacağınız bazı sorular yer almaktadır.
DevOps'u öğrenmek için bazı iyi çevrimiçi kursları da keşfedebilirsiniz.