Pazar, Haziran 10, 2007

Otomatikleştiremediklerimizdenmisiniz?

Java geliştiricileri iyi bilir, bir web uygulaması geliştirirken sık sık "Derle, Paketle, Kopyala, Deploy Et, Cache'leri sil, Sunucuyu Yeniden Başlat, vs." adımları tekrar tekrar çalıştırılır. Bu işlemler çok sık yapıldığı ve zaman aldığı için manuel olarak gerçekleştirmek gerçek bir baş ağrısıdır.

İşte bu yüzden Sun mühendislerinden James Duncan Davidson, vakti zamanında şu an Apache Tomcat diye bilinen meşhur JSP/Servlet sunucusunu açık kaynak dünyaya kazandırmaya çalışırken başı çok ağrımış ve Apache Ant'ın temellerini atmış. Ant sayesinde yazılım geliştirme adımları bir xml dosyasında sırayla çalışacak şekilde tanımlanabilir olmuş ve bu adımlar geliştiriciler tarafından sadece bir komut çalıştırılarak gerçeklenebilir hale gelmiş.



Apache Ant kullanıcılar tarafından tetiklenerek (ben buna yarı-otomatik diyorum :) ) bir çok işi halledip verimlilik artışı sağlasa da, meşhur yazılım gurusu Martin Fowler gerçek verimliliğin bu işlemlerin Sürekli Entegrasyon (Continuous Integration) kapsamında tam otomatize edildiğinde sağlanabileceğini ifade etmiş. Tabii ardından Martin Fowler'ın da ekip üyesi olduğu Yazılım Danışmanlık firması Thoughtworks, Apache Ant gibi açık kaynak bir ürün olan CruiseControl ü piyasaya sürmüş.

CruiseControl sayesinde, Ant scriptleri tam otomatize edilebilir hale gelmiş. Ayrıca istenildiği zamanda veya periyotta scriptler çalıştırılıp, sonuçlarının rapor halinde yayınlanması ve e-mail, messenger, RSS gibi araçlar aracılığıyla bilgilendirmesi sağlanmış.



TDD'nin (Test Driven Development) yaygınlaşmasıyla Ant insanlara yetmez olmuş, benzer mantıkla çalışan daha yetenekli fakat kompleks Maven, Maven2 gibi build araçları ortaya çıkmış. Fakat sürekli yeni araçlar çıkmasına karşın, maalesef işlerin otomatikleştirilmesi hep aynı kişiler tarafından yapılmış.

Özellikle Sistem Admin'ler başta olmak üzere birçok programcı, testçi, vs. günlük çok sık tekrarladıkları işleri otomatize etmemektedirler. Ben özellikle zaman yokluğundan ve angarya işlerden (yedekleme, kopyalama, ftp, kapat-aç, vs.) şikayet eden sistemcilerin otomasyonla neden ilgilenmediğini hiç anlayamamışımdır. Özellikle elimizin altında Apache Ant gibi her işletim sisteminde çalışan, programlama bilgisi gerektirmeyen, tanımların xml dosyasına yapıldığı, dosya kopyalamaktan ftp yapmaya, mail atmaktan sql çalıştırmaya kadar her türlü task'ın bulunduğu bir build aracı varken.

Ayrıca bir çok yazılım geliştirici kendi Ant Task'larını programlarının yanında ücretsiz vermekte. Örneğin bir Weblogic Admin'i wldeploy ant task'ını kullanarak çay makinasının başında geyik yaparken bir yandan deployment'larını otomatik yaptırabilir.

Uzun lafın kısası yazılım dünyasında herşey otomatize edilebilir. Eğer bu yazıyı okuduktan sonra gaza gelip "Ben de işlerimi otomatize edeceğim fakat nereden başalayacağım" düşüncesi aklından geçen arkadaşlar olursa, http://www.gezwiki.com adresinde başta Apache Ant ve CruiseControl olmak üzere çok sık kullandığım otomasyon araçları ile ilgili örnekler yayınlıyorum. Şu an örnek sayısı çok fazla değil ama var olan örnekler gerçekten çok ihtiyaç duyulanları içeriyor. Sizde katkı sağlamak isterseniz lütfen irtibata geçmekten çekinmeyin. Bu arada site Confluence Personal Wiki üzerinde. Atlassian firması ticari olmayan işler için Wiki ürününü ücretsiz veriyor.

Aranızda kendime ayıracak vakit bulamıyorum diyenleriniz varsa önce kendinize "Çok sık tekrarladığım işlerin ne kadarını otomatize ettim" diye bir sorun.

Etiketler: , , ,

1 Yorum:

Anonymous Adsız dedi ki...

Mustafa Abi konuyu çok güzel bağlamışsın. Gezwikiyi ilk gezenlerden biri olarak bomba gibi olcağına inandığımı belirteyim. Zamanla çok faydalı bir Türkçe içeriğe sahip olacak.

Ant ve otomatikleştirmek denilince aklıma Windows altında kendimce yazdığım Batch dosyaları geldi.

SQL Server sağolsun 7-8 servis kuruyor tma yükleme yapınca ben de serviselerin startup larını manual yapmıştım. SQL Server ile çalışınca yazdığım batchi çalışıtırp tüm servisleri ve MÖanagement studioyu başlatıyordum sonra d atek tıklama ile servisleri sonlandırıyordum.

Yani dediğin gibi herşeyi bir şekilde otomatize edebiliyoruz. Önemli olan bunun bilincinde olmak. Yazılım Müh. grunbunda da dile getirmiştim. Birilerine binlerce dolarlara yazılım satıyoruz. Peki neden? Onların işlerini otomatikleştirip , hayatlarını kolaylaştırabilmek için.

Ama önce KEL kendisine ilaç bulmalı ve başkalarına çözüm üretirken önce kendi hayatına değer ve kolaylık katmalı.

Selamlar...

(Gezwikide 502 bad gateway sorunu var , sayfayı bugün açamadım. Haber vermiş olayım)

9:34 ÖS  

Yorum Gönder

Kaydol: Kayıt Yorumları [Atom]

<< Ana Sayfa