YAZILIM MİMARİSİ

Teknolojik Gelişmenin Yazılım Mimarisine Etkileri

Peter Wagner ve Martin Giles 2016 Ocak ayındaki ​Microservices, Containers And The Digital Dialectic blog yazısından infrastructure ve uygulamalar arasında evrimsel gelişmeyi tetikleyen nasıl bir ilişki olduğunu anlatmış.

--

https://www.wing.vc/content/microservices-containers-and-the-digital-dialectic

Bu yazıda Teknolojik gelişmelerin Yazılım Mimarisine ve diğer yazılım öğelerine etkilerinden bahsetmek istiyorum.

Uygulamada Kod Yapısı : Monolith → Client/Server → N Tier → Microservice → FAAS (Function As A Service)

Infrastructure(Computing) : MainFrame → PC → onPrem Sunucu → VirtualOS(EC2) → Paas (ElasticBeanstalk) → Fargate(Docker) → Lambda (Serverless)

Yazılım Geliştirme Süreçlerinde
Waterfall → Agile

Dillerde : Assembly → C/CPP → Java, .NET → Scale, Go, Python, Javascript

Konseptlerde : Multi Thread , Sync, → Single Thread, Non I/O Block, Async

Ekip Yapıları: Analiz, Tasarım, Geliştirme, Test → Self Managed Team (DevOps) kavramları çıktı

Canlıya Çıkma Süresi : Manual Deployment → CI/CD Otomatikleşmesi, ve sürelerin gün içerisinde yeni versiyonların deploy edilmesi

Infrastructure Kullanabilme: ManualInfrastructure As A Code

Veri ve İşleme Gücü Üzerine Yeni Uygulama Alanları: Big Data, BlockChain , Machine/Deep Learning, Virtual Reality, Otonom Sistemler, iOT vb

Özetle

  • daha küçük ekipler,
  • API ve Servisler üzerinden iletişim
  • daha küçük bileşenler, servisler,
  • geliştirici , ürün yöneticisi , test, tasarımcı ve müşterinin daha çevik çalıştığı ortamlar
  • manual yapılan işlemlerin → scripting dilleri ile kod ile yapılması
  • bu servisleri ve bileşenleri yönetebilmek, izleyebilmek , güvenliğini sağlayabilmek , vb.. cross-cut işlemleri için birçok SaaS servisin kullanılması
  • sistem paydaşları arasındaki iletişimin tek bir kanal yerine bir çok kanal üzerinden gerçekleşmesi (Slack, Zoom, Figma, Invision vb.. ortak çalışma araçlarının) kullanılması
  • Canlıya çıkma süreçlerinin çok hızlı olması
  • Sistemlerin 7/24 hizmet verecek şekilde hatalara karşı, yüksek performans ihtiyaçlarına karşı dayanıklı olacak şekilde bulut üzerinde çalışabilir olması
  • Uygulama geliştirme hızının çok artması ve Veriyi analiz edip değerlendirme için bir çok araç ve altyapının mevcut olması.

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--