← Back to list

BackEnd - DevOps Mülakat Süreçleri Soru & Cevap

Herkese merhaba,

Emre Ayhan · 2024-05-04 16:52 · 6 claps · 5.5 min read
#backend #devops #mülakat #soru #cevap
Open on Medium ↗
Wiki topics: 🌐 · Web Development ☁️ · DevOps & Cloud

BackEnd - DevOps Mülakat Süreçleri Soru & Cevap

Herkese merhaba,

Mülakatlarda karşılaştığım soruları toplamak ve yeni mülakat sorularını güncel tutmak amacıyla, sadece soruların bulunduğu bir GitHub deposu oluşturmaya ve cevaplarını buraya yazmaya karar verdim. Repo içerisinde sorular.md klasöründe soruları bulabilirsiniz.

  1. Örnek bir senaryoda elinde bir adet static IP var. Bu static IP’nin gelen her isteği kabul etmemesi lazım. Nasıl bir yol izlersin?
  • Firewall
  • VPN Kullanımı: VPN kullanarak, static IP’ye sadece VPN üzerinden erişim sağlanarak senaryoya bağlı güvenlik sağlanabilir.
  • IP Tabanlı Filtreleme vs…

2. Local bilgisayarda olan projede herhangi bir CI/CD kullanmayacaksam Git kullanılmalı mı? Neden kullanılmalı veya neden kullanılmamalı?

Git, proje yönetimi ve sürüm kontrolü için oldukça kullanışlı bir araçtır, ancak CI/CD kullanmadığınızda Git’i kullanmanın artıları ve eksileri vardır.

Sürüm kontrolü, geçmiş geliştirmeleri izleme, yedekleme, kurtarma, gibi konularda artı olsa da, zaman, kurulum, güvenlik gibi konularda dikkat edilmediği sürede eksi olarak bizlere yansıyabilir.

3. Git Nedir?

Git, yazılım geliştirme süreçlerinde kullanılan, hız odaklı, dağıtık çalışan bir sürüm kontrol ve kaynak kod yönetim sistemidir.

4. Git Tag nedir?

Belirli bir commiti etiketlemek için kullanılan bir işaretlemedir. Genellikle, önemli sürüm yayınları, hata düzeltmeleri veya belirli bir noktada stabil bir durumun işaretlenmesi için kullanılır. Tag’ler, belirli bir noktadaki kod durumunu daha kolay takip etmenize ve geri dönmenize olanak tanır.

5. Git Flow nedir?

Yazılım geliştirme sürecini organize etmek için bir dizi belirlenmiş kural ve kılavuzlar içeren bir yönetim modelidir. Git Flow, yazılım geliştirme sürecini yönetmek için bir branching ve merging stratejisi sunar.

6. Git Stash nedir?

Git Stash, çalışma dizinizde yaptığınız değişiklikleri geçici olarak depolamanızı sağlar. Bunu yaparken, mevcut çalışmanızın kopyasını geride bırakır.

7. TCP / UDP nedir?

Bilgisayar ağlarında veri iletimi için kullanılan iki temel iletişim protokolüdür. TCP bağlantı tabanlı bir protokoldür, UDP bağlantı tabanlı değildir . TCP’de akış kontrolü vardır, UDP’de akış kontrolü yoktur. TCP ve UDP arasındaki en önemli farklardan biri hızdır. TCP, UDP’den daha yavaştır, çünkü verinin karşı tarafa ulaşıp ulaşmadığını kontrol eder.

8. TLS nedir?

Bir bilgisayar ağı üzerinden iletişim güvenliğini sağlamak için tasarlanmış bir şifreleme protokolüdür. TLS e-posta, anlık mesajlaşma ve IP üzerinden ses gibi uygulamalarda yaygın olarak kullanılmaktadır, Https’nin güvenliğinin sağlanmasında kullanımı, en yaygın olan protokoldür.

9. Web servislerini ve stored procedures(saklı prosedürleri) kullanmak dışında eski bir uygulamayla hiç entegrasyon yaptınız mı?

10. Bir web uygulamasının güvenliğini artırmak için yapacağınız veya yapmaktan kaçınacağınız şeyler nelerdir?

  • HTTPS and SSL/TLS Encryption
  • Firewall
  • Authentication: (Two Factor Authentication vb.)
  • Software Dependencies Control and Updates
  • Rate Limiting & Cors vs..

11. Horizontal Scaling ve Vertical Scaling nedir?

  • Horizontal Scaling, bir sistem veya uygulamanın kapasitesini artırmak için daha fazla fiziksel veya sanal makine ekleme işlemleridir.
  • Vertical Scaling, bir sistem veya uygulamanın kapasitesini artırmak için mevcut sunucu veya makinenin donanım kaynaklarını (CPU, RAM, depolama vb.) artırma işlemidir.

12. SOLID prensipleri hakkında bilgilendirme yapar mısın?

SOLID prensipleri yazılım geliştirme sürecinde daha iyi kod kalitesi, sürdürülebilirlik ve esneklik sağlamak için önemlidir. SOLID prensiplerinin uygulanması, daha temiz, daha okunabilir ve daha kolay bakım yapılabilir kodlar üretmeye yardımcı olur.

  • Single Responsibility Principle : Bir sınıfın yalnızca bir amaç veya sorumluluğu olmalıdır. Bir sınıfın tek bir işi yapması, sınıfın daha kolay anlaşılmasını, değişikliklere daha uygun olmasını ve yeniden kullanılabilirliğini artırır.
  • Open/Closed Principle: Sınıflar, modüller, fonksiyonlar gibi bileşenleri genişletmeye açık ancak değişikliğe kapalı olmalıdır. Yani, mevcut kod değişmeden yeni işlevsellikler eklenmelidir.
  • Liskov Substitution Principle: Alt sınıflar, üst sınıfların yerine geçebilmelidir.
  • Interface Segregation Principle: Bir ara yüzün kullanıcılarına yalnızca ihtiyaç duydukları yöntemleri sağlayarak ara yüzlerin ayrılmasını sağlar.
  • Dependency Inversion Principle: Üst seviyeli modüller,sınıflar vb.. alt seviyeli sınıflar, modüllere bağımlı olmamalıdır. Alt seviyeli modüller üst seviyeli modüllere bağımlı olmalıdır.

13. SQL ve NoSQL veri tabanları hakkında bilgi verip farklarını açıklar mısın?

SQL veri tabanları ilişkisel veri modelini kullanan yapılandırılmış veri tabanlarıdır, NoSQL veri tabanları ise ilişkisel olmayan ve daha esnek veri yapılarını destekleyen veri tabanlarıdır.

  • Veri Yapısı: Sql’de veriler tablolarda saklanır ve bu tablolar arasında ilişkiler kurulabilir. NoSQL veri tabanları ise daha esnek veri yapılarına sahiptir.
  • Sorgu: SQL veri tabanları için SQL sorgu dili kullanılırken, NoSQL veri tabanlarında genellikle özel sorgu dilleri veya Api’ler kullanılır.
  • Kullanım alanları: SQL veri tabanları genellikle yapılandırılmış veri için kullanılırken, NoSQL veri tabanları daha çeşitli - esnek veri türleri ve kullanım senaryoları için kullanılır.

14. Cryptography kullandınız mı? Hangi senaryolarda kullandınız? Hangi algoritmaları kullandınız?

Senaryonuza uygun güvenlik protokollerinin, iletişim sistemlerinin ve veri güvenliği uygulamalarının bir parçasını oluşturur. Kullanılacak kriptografi algoritması, güvenlik gereksinimlerine, performans beklentilerine ve uygulamanın spesifik gereksinimlerine bağlı olarak seçilir. Örnek vermek gerekirse en bilinenler: Hash Fonksiyonları:

  • MD5
  • SHA-1, SHA-256, SHA-384, SHA-512
  • RIPEMD

Hibrit Kriptografi Protokolleri:

  • SSL/TLS
  • PGP (Pretty Good Privacy)
  • OpenPGP
  • IPsec (Internet Protocol Security) vb…

15. OOP nedir?

Kısaca OOP(Object-Oriented Programming), programlamayı, verileri ve işlevleri nesneler halinde düşünerek organize etme yaklaşımıdır.

OOP’nin temel kavramları şunlardır:

Objects: Her nesne, verileri ve bu verilere uygulanabilen işlevleri (metodları) içerir. Örneğin, araba, insan veya banka hesabı gibi nesneler olabilir.

Class: Sınıflar, nesnelerin bir şablonunu tanımlar. Bir sınıf, bir nesnenin özelliklerini ve metodlarını içeren bir yapıdır.

Inheritance: Inheritance, bir sınıfın diğer bir sınıftan özelliklerini ve davranışlarını miras almasıdır.

Polymorphism: Polymorphism, farklı sınıfların aynı metodları kullanarak farklı davranışlar sergilemesidir.

  1. Web uygulamasının performansını artırmak için yapacağınız veya yapmaktan kaçınacağınız şeyler nelerdir?
  • Monitoring
  • Cache (Redis vb.)
  • Pagination
  • Data Caching
  • Monitoring CPU Usage vs..
  1. .Net Framework ve .Net Core farkı nedir?
  • En önemli fark .Net Framework sadece Windows işletim sisteminde çalışırken .Net Core Windows, macOS ve Linux üzerinde çalışabilir, yani çapraz platform desteği sunar.
  • .Net Framework Windows Forms, WPF (Windows Presentation Foundation), WCF, ASP.NET Web Forms, ASP.NET MVC gibi uygulama türlerini destekler. ASP.NET Core ise web uygulamaları, konsol uygulamaları, bulut tabanlı uygulamalar ve mikro hizmetler geliştirmek için kullanılır.
  • .Net Core açık kaynak kodludur ve GitHub üzerinden geliştirilmektedir.
  • .Net Framework’e göre .Net Core daha performanslıdır. .Net Core yüksek performans ve ölçeklenebilirlik için optimize edilmiştir.
  1. ORM nedir? Örnek ORM teknolojileri nelerdir?

ORM, ilişkisel veri tabanı ve nesneye yönelik programlama dili arasında ilişki kurabildiğimiz programlama tekniğidir . Veritabanı tarafında bulunan tablolar ile sınıflar map edilir . ORM sayesinde INSERT , UPDATE , SELECT ve DELETE işlemleri çok rahat bir şekilde yapılabilir.

  • Entity Framework (EF) — .NET
  • Hibernate — Java
  • TypeORM — TypeScript/JavaScript
  1. Grafana kullanım alanları nelerdir ve hangi durumlarda tercih edilir?

Grafana, açık kaynaklı bir veri görselleştirme ve izleme aracıdır.

Kullanım alanları örnekler:

  • Sunucular, veri tabanları, ağ cihazları ve uygulamaların performansını izlemek için kullanılır.
  • Web uygulamaları ve mikro hizmetlerin performansını izlemek için kullanılır.(APM)
  • Kubernetes, Docker, AWS, Azure ve GCP gibi bulut ve konteyner ortamlarının izlenmesi.

Tercih edilmesi gereken durumlar:

  • Verilerin görselleştirilmesi ve izlenmesi gereken durumlarda tek bir kanaldan sistem yönetilmesi durumunda kullanılabilir.
  • Anlık uyarılar almak ve perfomans sorunlarını tespit etmek için kullanılabilir.
  • Elasticsearch, MySQL, PostgreSQL gibi teknolojilerden gelen verilerin bir sisteme entegre edilmesi ve bu verilerin tek elden kontrol edilerek performans gibi durumların izlenmesi için Grafana kullanılabilir
  1. Kafka kullanım alanları nelerdir ve hangi durumlarda tercih edilir?

Apache Kafka, akış verilerini gerçek zamanlı olarak alıp işlemek için optimize edilmiş bir dağıtılmış veri deposudur.

Kafka Kullanım Alanları ve Tercih Edilme Durumları:

  • Veri akışlarını gerçek zamanlı olarak işlemek ve iletmek
  • Mesajların asenkron olarak iletilmesi gereken sistemler arasında bir mesaj kuyruğu özelliği vardır.
  • Log’lama işlemlerinin toplanması ve analiz edilmesi için kullanılır.
  • Mikro servisler arasında iletişim sağlamak için kullanılır.
  • Süreçlerin anlık olarak izlenmesi ve analiz edilmesini sağlar.

21. ElasticSearch kullanım alanları nelerdir ve hangi durumlarda tercih edilir?

ElasticSearch bir arama motorudur. Java ile geliştirilmiştir. Genel olarak full text (metin) arama ve veri analizi için bizlere aracılık yapar. Bir çok iş sürecinde kullanabileceğimiz bu teknoloji aynı zamanda analiz, loglama, veri görselleştirme ve iş zekası gibi ihtiyaçları da karşılar.

ElasticSearch Kullanım Alanları ve Tercih Edilme Durumları:

  • Web siteleri, uygulamalar ve veri tabanları için tam metin arama özelliğiyle en performanslı teknolojiler arasında başta gelir.
  • ELK (Elasticsearch, Logstash, Kibana) ile Log dosyalarının toplanması, depolanması, gerçek zamanlı analizi ve izlenmesi için idealdir.
  • Veri kümelerinin analizi ve görselleştirilmesi için kullanılır.
  • Coğrafi sorgular ve harita tabanlı görselleştirmeler yapabilir.
  • Uygulamaların performans metriklerini izlemek ve analiz etmek için kullanılır.
  • SIEM, güvenlik süreçlerinin izlenmesi ve reaksiyonları için kullanılır.

22. Selenium kullanım alanları nelerdir ve hangi durumlarda tercih edilir?

Selenium, web tarayıcılarının otomasyonunu sağlayan ve destekleyen bir dizi araç ve kitaplıktan oluşan bir teknolojidir. WebDriver, Grid, RC, Selenium IDE gibi birbirinden farklı bileşen ile test süreçlerinin yönetimi, kodlama, web tarayıcıları ile etkileşim, remote kontrol gibi bir çok konuda projelere yardımcı olur.

Selenium Kullanım Alanları ve Tercih Edilme Durumları:

  • Web sayfaları üzerinde otomatik işlemler gerçekleştirir.
  • Web uygulamalarının test süreçlerini yönetmekte yardımcıdır.
  • Uygulamaların birbirinden farklı tarayıcılarda ve sürümlerinde tutarlı çalışıp çalışmadığını kontol etmemizde yardımcıdır.
  • Sadece uygulama özelinde değil veri tabanı test sürecinde de kullanılabilir.
  • CI/CD süreçlerinde manuel kontrol gerektirmeden otomatik test süreçlerini üstlenir.
  • Uygulama içi yönlendirmelerde kullanılır.
  • Butonlara tıklama, form doldurma ve sayfalar arasında gezinme gibi kullanıcı işlemlerini otomatik olarak yapar.

메타데이터
post_id
dfc919ec30c2
slug
backend-devops-mülakat-süreçleri-soru-cevap-dfc919ec30c2
url
https://medium.com/@emreeayhaan/backend-devops-m%C3%BClakat-s%C3%BCre%C3%A7leri-soru-cevap-dfc919ec30c2
canonical_url
https://medium.com/@emreeayhaan/backend-devops-m%C3%BClakat-s%C3%BCre%C3%A7leri-soru-cevap-dfc919ec30c2
author_url
https://medium.com/@emreeayhaan
status
ok
fetched_at
2026-06-27 23:56:40