Uygulama Geliştirme Çağı Oracle ile Yeniden… (Bölüm 1)

423 0
423 0

Her ne amaç için olursa olsun, hangi araç ve yöntem kullanılırsa kullanılsın, uygulama geliştirme süreci, beraberinde bir geliştirme yaşam döngüsü disiplini ile yaşamak durumundadır. Geliştirme yaşam döngüsü, tıpkı uygulama geliştirme araçları ve yöntemleri gibi çoğu zaman yazılımın teknolojisinden bağımsız bir biçimde Bilgi Teknolojileri endüstrisi ile buluşur. Şimdilerde, B.T. endüstrisi, “DevOps” ve bundan türeyen “ProdOps”, “TestOps” gibi disiplinleri konuşmaktadır. Doğal sonucu olarak da teknoloji sağlayıcıları çeşitli ürünler, servisler geliştirerek ve hatta gerektiğinde seri satın almalarla birlikte geliştiriciler ekosistemine ulaşmaya çalışmaktadır. Özellikle Oracle daha önceki yıllardan farklı olarak, hiç erişmediği geliştiriciler ve geliştirme platformlarıyla çok daha yakından ilgilenirken “Agnostic” bir yaklaşım sergilemektedir.

Bilgi teknolojileri için son yıllardaki en büyük dönüşümün ‘Bulut Bilişim Dönüşümü’ olduğunu sanıyorum kabul etmeyenimiz olmayacaktır. Bulut Bilişimi, “public”, “private”, “hybrid” ve hatta tüm bunların kombinasyonu ve çeşitliliği ile sunduğumuz, sunarken de evrildiğimiz bir dönemi yaşamaktayız. Dijital dönüşümün doğal bir sonucu ve aynı zamanda da tetikleyicisi olan dijital bozulma, iş kollarının fikir ve modellerinin hızlı ve çevik bir şekilde ürünleştirilerek hayata geçirilmesi zorunluluğunu çok net ortaya koymuştur. Başarısızlık hikayeleri işte bu çevikliğe adapte olamamış örneklerle doludur. Bugünün kazananlarının ortak özelliğini ise, iş kollarının hızını ve çevikliğini taşıyan B.T. platformlarında aramak gerekir. En popüler örnek olarak, “Netflix”, günde 20 kezden fazla güncelleme devreye alımını sıfıra yakın bir kesinti yönetimiyle yaptığından gururla bahsetmektedir.

Dijital dönüşümle birlikte yol alan Bulut Bilişim dönüşümü aynı zamanda uygulama geliştirme, yaşatma ve otomasyon kurma operasyonlarının tamamını da değiştirmekte ve kartların yeniden dağıtılmasını sağlamaktadır. Bu dönemde karşımıza çıkan en büyük değişimlerden biri de geliştiriciler ekosisteminde yaşanır. Geliştirilmekte olan ürünün tüm katmanlarında çalışan yani “Full Stack” diye adlandırılan geliştiricilerin yanında sadece iş mantıklarını ve ürünün entegrasyonlarını geliştiren “Back-End” ve sadece kullanıcı deneyimine odaklanmış olan “Front-End” geliştiriciler bir arada ahenkle çalışarak en hızlı ve çevik yoldan ürün ve servisi pazara kazandırmaya kilitlenmiş olurlar. Bazen de bu ekipler farklı coğrafi noktalarda çalışarak geliştirme yaşam döngüsünü sürdürmek ve kesintisiz üretmeye devam etmek isterler. İşte bu noktada kurumların seçtikleri platformlar ve geliştirme metotları, tüm bu farklı geliştirici profillerinin beklentilerini eksiksiz karşılamak ve onları bütünüyle tatmin etmek durumundadır. Son dönemde yaptığınız işe alım görüşmelerinde bu profilleri ve eskisinden farklı olan bu beklentileri de gözlemlemiş olmalısınız.

Özellikle girişimciler (start-up) ve küçük işletmeler Bulut Bilişimle ilk tanışan ve Bulut Bilişimin nimetlerinden ilk faydalanan kitle oldu. Kabaca bulutta doğan girişimler ve uygulamalar bu şekilde pazarda yerini en önlerde almaya başladı. Daha sonra orta ve büyük ölçekli firmalar “Cloud Native” diye adlandırılan bulut doğumlu uygulamaları kendi kurumlarında da görmek istediler ve bu yeni nesil uygulama geliştirme mimarisine daha yakından incelemeye başladılar. “Cloud Native”, uygulama yazılımının ayrılabilecek en küçük mantıksal parçalara ayrılarak, küme halinde her şey servis gibi tasarlanması ve her bir modül için en uygun programa dilinin kullanılabilir esneklikte olup ve sunulurken Bulut Bilişim sunum yöntemlerinden faydalanması olarak tanımlanabilir.

“Cloud Native” uygulama geliştirme mimari yaklaşımı, yetkinlik anlamında sırasıyla “DevOps”(otomatik provizyonlama, kurulum, sürdürülebilir entegrasyon ve teslimat, otomatik test yönetimi ve çeviklik, kültür değişikliği), “Her şey servis” (altyapının ve yazılımın servis olarak tüketilmesi, otomatik, elastik büyüme küçülme ), “Microservices” (minimal fonksiyonlar, servis tanımlama, önce API, Polyglot, arındırılmış bağımlılık), ”Dağıtık Bilişim” (çok bölgeli, farklı bulut tedarikçileri, global sunucu ve dağıtıcılar, replikasyon) unsurlarını içermelidir.

Bunlarla birlikte hızlıca uygulama geliştiricilerin hayatındaki değişikliklere bakacak olursak;

  • 12-18 ayları bulan geliştirme ve devreye alma zamanlarının artık günler ve hatta saatler mertebesine iner
  • Merkezi geliştirme takımlarından dağıtık takımların farklı profillerdeki  yazılımcıların bir arada ahenkle çalıştığı organizasyonlara devşirilir
  • “Monolithic” yani tek bir uygulama geliştirme dili ve disiplini ile yapılmış ve büyük yazılım çıktılarından “Microservices”, “Polyglot” yöntemleriyle geliştirilmiş daha küçük yazılım parçalarına dönüşür
  • Yeni bir uygulama daha geliştirmek yerine kullanıcı deneyim çeşitliliğine önem verilir
  • Fonksiyonellikten çok önce API’ni tasarla yaklaşımını ön plana çıkarır

Esasen, geliştirme süreçlerinde şelale modelinden çevik modele şimdi de DevOps disiplinine, uygulama mimarilerinde tek katmanlı yapılardan çok katmanlı yapılara şimdi de “Microservices” yaklaşımına, devreye alım ve paketleme yöntemlerinde fiziksel sunuculardan sanal sunuculara şimdi de “Containers” teknolojilerine, altyapı hizmetlerinde kurum içindeki sunucu merkezlerinden host edilen merkezlere şimdi de Bulut Bilişime doğru bir evrimleşme söz konusudur. “DevOps” kavram gereği evrimin bu noktasındaki tüm bu pratikleri kapsamaktadır. Hedeften çok bir yolculuktur, alet edevatlarla desteklenir ancak daha çok bir düşünce biçimdir, bir “toolset” değildir. Ana amacı, geliştiricilerle operasyon takımları arasındaki anlık bağımlılıkları ortadan kaldırmaktır. İlave olarak yazılım yaşam döngüsünün otomasyona bağlanarak geliştiriciler için çok daha çevik bir ortamın, yazılım üretiminin önündeki operasyonel engelleri kaldırmaktır. DevOps aynı zamanda altyapı kaynaklarının etkin kullanılması sayesinde kurumlara ciddi tasarruflar sağlamaktadır.

Oracle, uygulama geliştirme dünyasındaki bu radikal değişiklikleri iki farklı yaklaşım biçimiyle ele alır;

  • Modern, bulut doğumlu uygulama geliştirme: Uygulama konteynerleri, hızlı ve modern uygulama geliştirme araçları, kurumsal mobil uygulamalar için hem yeni nesil kullanıcı deneyimini hem de arka plandaki mobil gereksinimleri kapsayan  çözümleriyle kurumların ihtiyaç duydukları çevikliği sağlamayı hedefler.
  • Mevcut iş yüklerinin modernizasyonu: Mevcut kurumsal Java, J2EE iş yüklerini, veritabanı ve altyapı bileşenlerini bulut bilişim tüketim biçimlerine uygun hale getirmeyi hedefler.

Son zamanlarda popüler bir söylem olan ‘Dijital Ekonomi’ ve isterleri, modern B.T. mimarisini inovasyonu hızlandıran bir platform olarak görmektedir ve tüm kurumsal uygulamaların SaaS modeli ile sunulmasını, önce API yaklaşımının benimsemesini ve Mikroservislerle geliştirilmesi gerekliliğini işaret etmektedir.

Oracle Bulut Platformu Uygulama Geliştirme ürünleri, modern B.T. dünyasının hemen hemen tüm ihtiyaçlarını karşılamak ve yukarıda anlatılan tüm beklentileri karşılamak için tamamen yeninden yaratıldı. Seri satın almaların da yardımıyla görece hızlı bir biçimde bulut pazarında yerini alan Oracle uygulama geliştirme ürün ve servisleri tüm geliştirici tipleri ve isterleri için IaaS ve PaaS katmanları üzerinde doğal olarak  entegre edilmiş bulut servisleri olarak benzersiz deneyimler sağlamak için tasarlandı.

Kurumsal uygulamaların geliştirme süreçleri her ne kadar basit tutulmak istense de, işin doğası gereği pek çok kompleks entegrasyon ve teknoloji parçaları ile uygulama geliştiriciler zamanla baş etmek durumunda kalırlar. İşte bu noktada Oracle eksiksiz bir platformu entegre bir biçimde sunarak diğer büyük Bulut Bilişim rakiplerinden farklılaşmaktadır.

Modern uygulama geliştirme platformunun ve “DevOps” disiplinin en kritik parçalarından biri olan konteyner teknolojileri sayesinde mikroservislerin paketlenerek devreye alınmaları mümkün olabilmektedir. Uygulama geliştirme modernizasyonu kapsamında hem bulut doğumlu uygulamalar geliştirilirken hem de mevcut uygulamaların bulut platformuna taşınması ve modernleştirilerek hayatlarına devam etmeleri sağlanması bakımından konteyner teknolojileri son dönemde müşterilerimizden çok sık talep aldığımız konuların başında gelmektedir. Kurumsal çevikliğe ulaşmak, kaynakların daha etkin kullanılarak tasarrufun sağlanması ve de özellikle uygulama geliştirme ve yaşatma yaşam döngüsünün hızlandırıcısı olması bakımından konteyner teknolojilerinden faydalanmaktayız.

”Uygulama Geliştirme Çağı Oracle ile Yeniden… (Bölüm 2)” yazısını okumak için tıklayın.

Yazar: Kıvanç Güler / Cloud Digital Domain Sales Consultant at Oracle
Etiketler

Yorum Sırası Sizde