Telefon
WhatsApp

Kaliteli Hizmet, Güvenilir Ödeme ve Hızlı Teslimat Güvencesi..

İLETİŞİM

En Popüler DevOps Mülakat Soruları

En Popüler DevOps Mülakat Soruları

İş görüşmelerinde en sık sorulan DevOps mülakat soruları ve cevapları neler?

DevOps, yazılımları etkili ve güvenli bir şekilde dağıtmak için developerlara yardımcı olan bir uygulama ve metodolojidir. Bu anlamda DevOps daha önce Agile ile de karşılaştırılmıştır. Agile da aynı DevOps gibi proje yönetimi ile ilgili araçların, işlemlerin ve felsefelerin tamamını kapsayan geniş bir terimdir.

Büyük ve web tabanlı kuruluşlarda DevOps’un benimsenmesi hızlanırken DevOps terimin tam olarak ne anlama geldiği konusunda kafa karışıklıkları devam ediyor. DevOps bir yaklaşım mı, kültür mü yoksa farklı kişiler için farklı anlamlar mı ifade ediyor?

“DevOps Nedir? Dijital Dönüşümde DevOps Kültürü” blog yazımıza göz atarak DevOps kültürü hakkında daha detaylı bilgi sahibi olabilirsiniz.

DevOps mülakatlarına girmeden önce sizin için hazırladığımız rehber niteliğindeki bu sorulara mutlaka göz atmalısınız! ????

Temel Seviye DevOps Engineer Mülakat Soruları
???? DevOps nedir?
DevOps, IT alanında yeni ortaya çıkan bir terimdir. Hem yazılım geliştiricilerin hem de dağıtım (operasyonlar) ekibinin işbirliğini ve iletişimini vurgulayan bir uygulamadır.

Daha iyi geliştirme yapmak ve sürümlerin hata oranını düşürmek için geliştirilmiş disiplinler bütünü ve kültürüdür. DevOps bir felsefe veya yaklaşım olarak düşünülebilir.

???? DevOps’un temel işlemleri nelerdir?
DevOps’un temel işlemleri;
Uygulama geliştirme: kod oluşturma, kod kapsamı, birim testi, paketleme ve deployment’dır.

Altyapı: sağlama, yapılandırma, orkestrasyon ve deployment’dır.

DevOps; işbirliği, iyileştirme, yayınlama, güvenlik, hız, ölçek ve güvenilirlik sağlar.

???? En popüler DevOps araçları hangileridir?
DevOps bir yazılım geliştirme ve dağıtım sürecidir. Ürün yönetimi, yazılım geliştirme ve operasyon uzmanları arasındaki işbirliği ve iletişimi vurgulayıp süreçlerin koordinasyon içinde en iyi şekilde sonuçlanmasını sağlar. Bu süreçler içeresinde kullanılabilecek en iyi DevOps araçları:

Jenkins
Nagios
Monit
ELK (Elasticsearch, Logstash, Kibana)
Jenkins
Liman işçisi
Ansible
Git
???? DevOps anti-pattern kavramı nedir?
Bir pattern yani kalıp, genellikle izlenen yaygın kullanımdır.
Başkaları tarafından yaygın olarak kabul edilen bir model projeniz için gerekli değilse ve onu kullanmaya devam ediyorsanız, bir anti-model benimsiyorsunuzdur.

Anti-Pattern 1: DevOps yalnızca geliştirme ve operasyon ekiplerini birleştirir.
Anti-Pattern 2: Agile ve DevOps aynıdır.
Anti-Pattern 3: DevOps araçlarla ilgilidir.
Anti-Pattern 4: Özel bir DevOps ekibine ihtiyacınız vardır.
Anti-Pattern 5: DevOps yalnızca otomasyonla ilgilidir.
Anti-Pattern 6: DevOps ve güvenlik düşmandır.
Anti-Pattern 7: DevOps işlemlerden kurtarır.
Anti-Pattern 8: DevOps, eski sistemlerle uygulanamaz.

 

 

 


???? Agility’den ayrılmasını sağlayan bazı temel farklılıklar nelerdir?
DevOps yazılım mühendisliği mülakat soruları arasında mutlaka sorulan sorulardan biridir.

Aralarındaki en büyük farklardan biri de, Agility zaman yönelimli iken, DevOps aynı konuya hem zaman hem de kalite olarak yaklaşır.

Bir diğer farklılık, geribildirime dayalıdır.
Agility tamemen müşteriye odaklanırken DevOps iç denetim mekanizmalarını kullanır.

???? Sürüm Denetimi nedir?
Sürüm denetimi, kod içerisinde zaman içinde yapılan değişiklikleri takip etmeye yardımcı olan yazılımdır.
Yazılımcı kod düzenleme sürecindeyken sürüm denetimi sistemi dosyaların anlık görüntüsünü alır ve bu görüntüyü kalıcı olarak kaydeder.

Sürüm denetimi sistemleri, yazılan kodun tüm sürümlerini tutarak ve yönetimini yaparak sadece takıma aynı anda tek bir sürüm sunarak bu sorunu çözer.

???? DevOps’un anahtar bileşenleri ve kullanılan programlama dilleri nelerdir?
DevOps’un temel bileşenleri; entegrasyon, denetleme, ulaştırma ve denetlemedir.

DevOps temel olarak, Ruby ve Python ile kullanılabilir.

???? AWS, DevOps’a nasıl dahil olur?
AWS, Amazon Web Services (Amazon Web Hizmetleri) ‘dir. Şirketinizde DevOps uygulaması yapmanıza yardımcı olarak hizmetler sağlar. Bu araçlar, manuel görevleri otomatikleştirir, ekiplerin karmaşık ortamları uygun ölçekte yönetmesine yardımcı olur ve mühendislerin DevOps tarafından sağlanan yüksek hızın kontrolünü elinde tutmasını sağlar .

AWS çoğu şirkette ürünlerini ve ürün teslimatlarını işletmesi için kullanılır. DevOps ise yalnızca bunu yaparken kullanılan metoda denir.

AWS, DevOps’ta aşağıdaki role sahiptir:

Esnek hizmetler – Yazılım kurulumuna gerek kalmadan kullanıma hazır, esnek hizmetler sağlar.
Ölçek – Tek bulut sunucusunu yönetebilir veya AWS hizmetlerini kullanarak binlerce kişiye ölçekleyebilirsiniz.
Otomasyon – AWS, görevleri ve süreçleri otomatikleştirmenize olanak tanır ve size yenilik yapmak için daha fazla zaman kazandırır.
Güvenli – AWS Identity and Access Management (IAM) kullanarak kullanıcı izinlerini ve politikalarını ayarlayabilirsiniz.
Büyük iş ortağı ekosistemi – AWS, AWS hizmetleriyle entegre olan ve bunları genişleten büyük bir iş ortağı ekosistemini destekler.
???? ‘Ekstrem Programlama’ nedir?
Ekstrem programlama veya XP, yazılım geliştirme metodudur.
XP’nin temel amacı müşteri memnuniyetidir. Bütün hedefler, planlar ve çalışma yöntemleri bu tek amaç için işler.

DevOps kullanan şirketlerin çoğu, aynı zamanda XP’yi de uygularlar.

???? DevOps’un temel bileşenleri nelerdir?
Sürekli Entegrasyon: Çevik sürecin çok önemli bir bileşenidir. Geliştiriciler bir sprint içindeki özellikler üzerinde çalışırlar ve değişikliklerini sürüm kontrol havuzuna uygularlar.
Sürekli Teslimat: Geliştiricilerin geliştirdikleri özellikleri en kısa sürede son kullanıcıya ulaştırmalarına yardımcı olan Sürekli Entegrasyonun bir uzantısıdır.
Sürekli Test: Uygulamayı son kullanıcıya ulaştırmak için Sürekli Entegrasyon hedefinden, öncelikle sürekli teslimatı mümkün kılmaktadır. Bu, yeterli miktarda birim testi ve otomasyon testi yapılmadan tamamlanamaz.
Sürekli İzleme: Uygulama geliştirildikten sonra dağıtım aşamasına geçtiğinde, uygulamanın performansını izlemeniz gereklidir. İzleme daha önce tespit edilmemiş olabilecek sorunları ortaya çıkarmanızı sağlar.
???? ‘Design patterns’ nedir?
DevOps mülakat soruları arasında en sık sorulardan biri de design patterns yani tasarım şablonu sorusudur. DevOps yazılım mühendisliği mülakat soruları arasıjda bu soru, sık sık karşınıza çıkacaktır.

Çok basitçe tanımıyla, bir tasarım şablonu, geliştiricinin karşılaşacağı belli türde bir soruna çözüm getirmektir.

Bu şablonlar geliştiricilerin potansiyel sorunlara ve problemlere karşı yardımcı olmasını sağlamakla birlikte bunu da potansiyel şablonlar ve çözümler sunarak gerçekleştirir.

Bir geliştiricinin bahsedebileceği temel olarak üç tane tasarım şablonu türü vardır: Davranışsal, yaratımsal ve yapısaldır.


???? Component-Based Development (Bileşen Yönelimli Geliştirme) nedir?
Mevcut bileşenlerin sisteme entegre edilme sürecine bileşen yönelimli geliştirme denir.

CBD sayesinde geliştiriciler, zaten var olan, iyi yapılandırılmış ve test edilmiş bileşenleri yeni bir marka ve orjinal ürün olarak ortaya koyarlar.
Bu yaklaşımla birlikte, giderek artan bileşen standartları ortaya çıkmıştır.

Süreç Aşamaları:
Bileşen analizi
Gereksinim değişimi
Sistemin yeniden tasarımı
Geliştirme ve entegrasyon

???? DevOps’un son birkaç yılda önem kazanmasının sebebi sence nedir?
Netflix ve Facebook gibi şirketler, uygulama dağıtımını otomatikleştirmek ve hızlandırmak için DevOps’a yatırım yapmaya başladılar.

Facebook sürekli dağıtım ve kod sahipliği modellerine ve bunların ölçeklenmeye yardımcı olmasıyla birlikte aynı zamanda deneyim kalitesinide sağlamaktadır.

Netflix ise, tamamen otomatik süreçler ve sistemlerle benzer uygulamaları takip eder.

Bu şirketler, DevOps’un kuruluşların sürümler için daha yüksek başarı oranları sağlamasına, hata düzeltmeleri arasındaki tedarik süresini kısaltmasına, otomasyon yoluyla düzene koyup sürekli teslimatı ve insan gücü maliyetlerinde genel bir düşüş sağlamasına nasıl yardımcı olabileceğinin harika örnekleridir.

???? DevOps için kullanılan metodoloji ve araçlar nelerdir?
DevOps mülakat soruları arasında en sık sorulardan biri de kullanılan metadoloji ve araçlardır.
Dünya çapında en sık kullanılan DevOps yöntemleri, Scrum, Kanban ve Agile’dir.

Scrum: Scrum, bir takımın üyelerinin geliştirme ve kalite güvence projelerini hızlandırmak için birlikte nasıl çalışması gerektiğini tanımlar. Scrum uygulamaları, temel iş akışlarını ve belirli terminolojiyi içerir.
Kanban: Kanban, geliştirme ekibine aşırı yüklenmeden ürünlerin yaratılma sürecini yönetme yöntemidir. Kanban, ekiplerin birlikte verimli çalışmasına yardımcı olmak için tasarlanmıştır.

Çevik (Agile): Scrum ve Kanban dahil olmak üzere birçok DevOps yöntemi, Agile programlamayı içerir.

Scaled Agile Framework (SAFe) – İşletmelere uygulamalarını ölçeklendirme sırasında rehberlik eden organizasyon ve iş akışı modelidir.
Yalın geliştirme: Lean, Agile organizasyonlarını destekleyen en iyi uygulamaların yanı sıra kavramsal bir çerçeve, değerler ve ilkeler sunar.
Ekstrem programlama (XP): XP, yazılım kalitesini artırmayı amaçlar.

???? Kullandığınız branch stratejilerini açıklayın.
Feature branching modeli, belirli bir unsur için tüm değişiklikleri bir dalın içinde tutar. Özellik tamamen test edildiğinde ve otomatik testlerle doğrulandığında, dal daha sonra ana olarak birleştirilir.
Task branching: Bu modelde her görev, dal adında bulunan görev anahtarı ile kendi dalında uygulanır. Hangi kodun hangi görevi gerçekleştirdiğini görmek kolaydır, sadece şube adında görev anahtarını arayın.
Release branching ise geliştirme dalı bir sürüm için yeterli özelliği edindikten sonra, bir Yayın dalı oluşturmak için o dalı klonlayabilirsiniz. Bu dalın oluşturulması bir sonraki sürüm döngüsünü başlatır, bu nedenle bu noktadan sonra yeni özellikler eklenemez, yalnızca hata düzeltmeleri, belge oluşturma ve diğer yayın odaklı görevler bu dalda yer almalıdır. Sürüm, gönderilmeye hazır olduğunda, ana sürümle birleştirilir ve bir sürüm numarasıyla etiketlenir. Ek olarak, sürüm başlatıldığından beri ilerlemiş olabilecek geliştirme dalına geri birleştirilmelidir.
???? Jenkins’i bir sunucudan diğerine nasıl taşıyabileceğinizi veya kopyalayabileceğinizi açıklayın.
Bunu yapmanın birçok yolu vardır;

Bir işi, karşılık gelen iş dizinini kopyalayarak bir Jenkins kurulumundan diğerine taşıyabilirsiniz.
Farklı bir adla bir iş dizininin bir kopyasını oluşturarak mevcut bir işin bir kopyasını oluşturun.
Bir dizini yeniden adlandırarak mevcut bir işi yeniden adlandırın. Bir işin adını değiştirirseniz, yeniden adlandırılmış işi çağırmaya çalışan başka bir işi değiştirmeniz gerekeceğini unutmayın.
???? DevOps başarısı için izlenen ölçümler nelerdir?
En önemli ve ilk adım, teslimat hızıdır.

Sonraki adım, dağıtım ve ne kadar zaman alacağıdır.

Üretim ortamına göre kusur sayısını takip etmek oldukça değerlidir. Çevik metodolojilerin kullanılması bu duruma yardımcı olur.

Önceki sürüme geri dönmek için bir mekanizmaya sahip olmak çok önemlidir.

DevOps uygulamasında, birim testi, işlevsel testin yanı sıra anahtardır.

Bir sorun olması durumunda kurtarılması için gereken gerçek veya ortalama süreyi ölçmek çok önemlidir. Bu, Ortalama Kurtarma Süresi (MTTR) olarak adlandırılır ve kısa olmalıdır.

Uygulamanın performansı, herhangi bir dağıtım yapıldıktan sonra izlenmesi gereken bir diğer önemli ölçüdür.

Başarı için çok önemli bir faktör, müşteriler tarafından rapor edilen ve öncelikle uygulamanın kalitesine bağlı olan hataların sayısıdır.