• Cum. Ara 3rd, 2021

Merhabalar arkadaşlar. Bu yazıda size Heroku’ya uygulamamızı nasıl kuracağımız, Heroku üzerinde uygulamamızı çalıştırmak için ne yapmamız gerektiğini anlatacağım. Ben bu yazıyı anlatmak için basit bir proje yazdım ve anlatımımı o proje üzerinden yapacağım.

Benim http://localhost:8080/herokudemoproject/records adresi üzerinde çalışan ve GET isteklerine aşağıdaki gibi cevap veren bir web servisim var:

Ben uygulamayı Herokuya deploy edip bu GET servisini gerçek bir ortamda çalıştıracağım. Bunun için ilk ihtiyacımız olan şey bir Procfile dosyasıdır. Herhangiz bir uzantısı olmayan, proje klasörümüzün kök dizininde bulunan, sadece adı Procfile olan dosya içeriğinde tek satır bir metin tutmaktadır, o da şöyledir:

web: java -jar -Dserver.port=$PORT target/HerokuDemoProject-1.0.0.jar

Yukarıdaki ifade aslında bizim lokalde bir Spring Boot projesini main class üzerinden çalıştırdığımızda yapılan iştir. pom.xml dosyasında herhangi bir packaging-type yok, bu da uygulamanın derlenmesi (mvn clen install) sonucunda bir jar’ın ortaya çıkması demektir. java -jar isim.jar komutu ile de bu jar’ı çalıştırmış oluruz. -Dserver.port=$PORT ifadesi ile biz bir Java parametresi geçmiş olduk ve bir port ataması yaptırdık. Komutun en başındaki web: ifadesi de Heroku tarafında uygulamanın bir web uygulaması olduğunu anlaması ve bir web dyno’su ayağa kaldırması için kullandığımız komuttur.

Akabinde kaynak kodları ile beraber uygulamayı Github’a yüklemek gerekmektedir (ben bu yazı için Github üzerinden anlatmayı tercih ettim). Ben uygulamayı https://github.com/ilkgunel/HerokuDemoProject adresine yükledim. Uygulamayı Procfile dosyası ile beraber Github üzerinde paylaştıktan sonra https://www.heroku.com/ adresi üzerinden Heroku’ya ücretsiz kayıt olabilirsiniz. Bizim çalıştıracağımız uygulama da tamamen ücretsiz bir şekilde çalışacaktır.

Kayıt işleminizi gerçekleştirdikten sonra https://dashboard.heroku.com/apps adresindenki Create New App butonuna tıklayalım.

Bir sonraki gelen ekranda App name alanına istediğimiz bir değeri girebiliriz fakat Heroku girdiğimiz değerin uygun olup olmadığını da kontrol edecektir. Ben herokudemoproject ismini verdim. Choose a region bölümünden de Europe seçelim ve Create App butonuna tıklayalım.

Gelen bir sonraki ekranda Deployment method seçeceğiz. Az önce de söylediğim gibi ben bu yazı için Github üzerinden anlatmayı seçtim, o yüzden Deployment method kısmından Github’ı seçiyorum. Bu kısımda ben daha Heroku hesabımı Github hesabıma bağladığım için direk Github hesabım göründü fakat siz bu adıma geldiğinizde Heroku sizden Gthub hesabınızı bağlamanızı isteyecek ve çok basit bir işlem ile Heroku hesbaınız ve Github hesabınız birbirine bağlanmış olacak. Search butonunun hemen solundaki text alanına projemin Github üzerindeki repo adını giriyorum. Github üzerinde projemin repo adı HerokuDemoProject şeklinde. Ardından Search butonuna tıklayıp altta gelen search sonucundan da Connect butonuna tıklıyorum.

Bu adımdan sonra sayfanın en altında Manual deploy adında bir alan açılacak. O alanda yer alan Deploy Branch butonuna tıklayalım.

Bu butona bastığımızda Heroku üzerinde bizim için uygulama derlenecek, derleme sonucu orataya çıkan jar Procfile dosyasındaki komut ile çalıştırılacak, bu da uygulamanın kurulumunu ve çalıştırılmasını sağlayacak. Eğer sorunsuz bir şekilde derleme ve deploy işlemi gerçekleşirse 4 yeşil tik ve View butonunu göreceğiz.

Şimdi uygulamamız verdiğimizAppName.herokuapp.com adresi üzerinde çalışmaya başladı. Biz de App Name olarak herokudemoproject’i belirlediğimiz için https://herokudemoproject.herokuapp.com adresi üzerinde çalışacak.

Şimdi Postman üzerinden https://herokudemoproject.herokuapp.com/herokudemoproject/records adresine bir GET isteği gönderelim. Aşağıdaki çıktıda görebileceğimiz gibi localhosttaki sonucun aynısını Heroku üzerinde çalışan bir ortamda da aldık ve uygulamayı çalıştırdık.

Bu yazıda anlatacaklarım bu kadar arkadaşlar. Başka yazıda görüşmek üzere.

Görüşene kadar sağlıcakla kalın.

Merhaba! Ben İlkay Günel :) İstanbul Üniversitesi Bilgisayar Mühendisliği 2016 mezunuyum. Güncel olarak Paycore'da SoftPOS projesinde Java Developer olarak çalışmaktayım. Büyük oranda Java teknolojileri ile uğraşıp kendimi geliştirmeye çalışıyorum ve bu mecrada öğrendiklerimi sizle paylaşmaya da çabalıyorum :) Hakkımda biraz daha detaylı bilgi için: http://www.ilkaygunel.com/about/

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir