Her bir cümlenize ayrı ayrı katılıyorum hocam.
Hocam bundan bir süre önce bu teknolojilerin hiç birisi hakkında neredeyse hiç bilgim yoktu. Ancak derin araştırmalarım neticesinde henüz tam anlamıyla olmasa da çok şey öğrendiğimi söyleyebilirim. Projemi Symfony3 ile geliştiriyorum. Geliştirmeye başlayınca işin içinde bir terslik hissettim. Derin düşündüm. Bir proje büyürse başıma gelebilecek felaket senaryolarını düşündüm. Bu işi yapan diğer insan/firmaların geleceklerini nasıl inşaa ettiklerini araştırdım. Bulut teknolojileri öğrendim. Önceden Amazon veya benzeri bir siteye girdiimde, oradaki ürünleri gördüğümde hiç bir şeye anlam veremezdim. Bugün ise bir çoğunu araştırıp öğrendim. Sizin de bahsettiğiniz gibi projemi katmanlara hem de mümkün mertebe fazla katmanlara ayırmam gerektiğini anladım. Şu an projemi github hesabımda gizli bir depoda tutuyor, buradan da sunucuma aktarım yapıyorum. Sunucularımı Amazon üzerinde barındırıyorum. Tabi Amazon doğru bir tercih mi henüz bunu da bilmiyorum, zamanla öğreneceğim inşallah.
Aslında Amazon'un Dynamodb servisi çok ilgimi çekiyor. Ancak şöyle bir şey kafamı kurcalayıp kurcalayıp duruyor. Şimdi bu servis Amazon'a özel bir servis. Benim bu servisi kullanacak olmam, Amazon'a bir ömür bağlı kalacak olmam manasına gelir. (Yanlış mı düşünüyorum?) Ben ilerleyen zamanlarda Amazon'dan başka bir yere geçmek istediğimde başıma neler gelecek? Tahmin bile edemiyorum. O yüzden, mümkün mertebe firmaların ürünlerine bağlı kalmak istemiyorum, umarım doğru düşünüyorumdur. Diğer veritabanları hakkında ise çok bir fikrim yok. Aralarında tanıdığım en iyi veritabanı MySQL.
Belki de 2 ayda yapacağım bir projeyi 1 yıl oldu hâlen yapamadım. Nedeni ise projenin her bir kolunu en detayına kadar düşünmemden kaynaklanıyor. Ama en çok düşündüren ise veritabanı. Çünkü web projesinde bir terslik olsa bile bir şekilde belki hallolur ama veritabanında yanlış başlayan bir işin ilerleyen zamanlarda düzeltilmesi, toparlanması belki de kolay kolay yapılamayacak bir şey. Bu nedenle kıymetli hocam, sizlerin de dediği gibi şu an takıldığım noktaların en başında veritabanı geliyor.
Yukarıda yaptıklarımdan, öğrendiklerimden bahsettim. Lütfen kimse yanlış yorumlamasın, bilgiçlik taslamak kibir yapmak değil amacım. Sadece geçtiğim aşamaları, öğrendiğim şeyleri sizlerle paylaşmak istiyorum. Bu yola yeni girişecek değerli ülkemizin yazılım yolcularına bir ilham olsun, onların da araştırmalarına bir vesile olsun diye yazıyorum.
Emek verip, emeklerinizi bizimle paylaştığınız için çok teşekkür ederim. Tavsiyelerinizi kesinlikle göz önünde bulunduracağım. Özellikle veritabanı için daha fazla vakit ayıracağım.
Amazon tabi ki doğru bir tercih bir önceki mesajımda da bahsettim çünkü Cloud teknolojisini ele aldığınızda geleceğin teknolojisi günümüzde ve IaaS, PaaS, SaaS ın kalbi Cloud tarafında atıyor. Bu bağlamda Cloud tarafında ön sıralarda hatta öncülerinden olan Amazon ile çalışmak hem güvenilir hemde gelişim açısından çok güzel.
Amazon'a bir ömür bağlı kalmak olarak bakmayın olaya. Neden derseniz? Olayın özünde şu var veritabanı olarak ele alırsak;
Veritabanı yapısı ne şekilde? Yani nosql mi ilişkisel mi? Siz amazon dynamodb deki verilerinizi nosql olarak mongodb ye geçirebilirsiniz örneğin.
Olayı firmaya bağlımlı kalmak olarak ele alırsanız yanlış olarak ele almış olursunuz. Cloud hızla gelişen ve büyüyen bir alan bu aşamada hem güvenli, hem hız, hem esneklik, hem teknoloji gibi durumların hepsini bir arada ve en iyi şekilde bulabilmeniz için bu sektörde bir firma ile çalışmalısınız
Keza kendiniz bir sunucu alıp en basidinden sanallaştırma teknolojisi ile bunu "basit anlamda" yapabilirsiniz. Ama olay katman yapısını kullanmaya geldiğinde tek bir sunucu ile bitmeyecek bunların yedeklemesi, donanım maliyetleri, yönetimi v.s gibi bir çok durumda çıkacak ortaya.
Projenizi tek başına mı geliştiriyorsunuz? Eğer öyle ise bu durumda biraz sıkıntı aslına bakılırsa. Çünkü SaaS tarzı projelerde esas alınacak en temel şey ekip çalışması ve ekibin çalışırken çıkarımlarda bulunması. Veritabanı bu tarz veya bir çok ciddi proje için "her şey"dir. Bundan dolayı çok iyi kurgulanıp çok iyi tasarlanması gerekir. Hatta kurguladığınız veritabanını workbench dediğimiz tarafta test etmenizde büyük fayda var.
Ayrıca Symfony3 güçlü bir framework ancak benim size tavsiyem her zaman yeniliklere açık olun mutlaka yedek bir silahınız olsun. Yani 2. bir framework bilin ve lazım olduğunda kullanmaktan çekinmeyin.