macOS X'te geliştirme ortamınızı ayarlama

MacOS X kullanarak Linux kümelerinde çalışacak Azure Service Fabric uygulamaları oluşturabilirsiniz. Bu belge, Mac'inizi geliştirme için ayarlamayı kapsar.

Önkoşullar

Azure Service Fabric, macOS X üzerinde yerel olarak çalışmaz. Yerel bir Service Fabric kümesini çalıştırmak için önceden yapılandırılmış bir Docker kapsayıcı görüntüsü sağlanır. Başlamadan önce şunları yapmanız gerekir:

İpucu

Docker’ı Mac bilgisayarınıza yüklemek için Docker belgelerinde gösterilen adımları izleyebilirsiniz. Yükledikten sonra Docker Desktop'ı kullanarak kaynak sınırları ve disk kullanımı gibi tercihleri ayarlayabilirsiniz.

Yerel bir kapsayıcı oluşturma ve Service Fabric’i ayarlama

Yerel bir Docker kapsayıcısı ayarlamak ve üzerinde bir Service Fabric kümesi çalıştırmak için şu adımları uygulayın:

  1. Ana bilgisayarınızda Docker daemon yapılandırmasını şu ayarlarla güncelleştirin ve Docker daemon programını yeniden başlatın:

    {
        "ipv6": true,
        "fixed-cidr-v6": "fd00::/64"
    }
    

    Bu ayarları doğrudan Docker yükleme yolunuzdaki daemon.json dosyasında güncelleştirebilirsiniz. Docker'da daemon yapılandırma ayarlarını doğrudan değiştirebilirsiniz. Docker simgesi’ni ve ardından Tercihler>Daemon>Gelişmiş’i seçin.

    Not

    Daemon.json dosyasının konumu makineden makineye değişebileceğinden daemon'un doğrudan Docker'da değiştirilmesi önerilir. Örneğin, ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json.

    İpucu

    Büyük uygulamaları test ederken Docker’a ayrılan kaynakların artırılmasını öneririz. Docker Simgesi seçilip ardından çekirdek sayısını ve belleği ayarlamak için Gelişmiş öğesi seçilerek bu yapılabilir.

  2. Kümeyi başlatın.

    Son:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:latest
    

    Ubuntu 18.04 LTS:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u18
    

    İpucu

    Varsayılan olarak bu, görüntüyü Service Fabric’in en son sürümüyle çeker. Belirli düzeltmeler için lütfen Docker Hub'da Service Fabric Onebox sayfasını ziyaret edin.

  3. İsteğe bağlı: Genişletilmiş Service Fabric görüntünüzü oluşturun.

    Yeni bir dizinde, özelleştirilmiş görüntünüzü oluşturmak için adlı Dockerfile bir dosya oluşturun:

    Not

    Kapsayıcınıza ek programlar veya bağımlılıklar eklemek için yukarıdaki görüntüyü dockerfile ile uyarlayabilirsiniz. Örneğin, RUN apt-get install nodejs -y komutu eklendiğinde, konuk yürütülebilir dosyaları olarak nodejs uygulamaları için destek sağlanır.

    FROM mcr.microsoft.com/service-fabric/onebox:u18
    RUN apt-get install nodejs -y
    EXPOSE 19080 19000 80 443
    WORKDIR /home/ClusterDeployer
    CMD ["./ClusterDeployer.sh"]
    

    İpucu

    Varsayılan olarak bu, görüntüyü Service Fabric’in en son sürümüyle çeker. Belirli düzeltmeler için lütfen Docker Hub sayfasını ziyaret edin.

    içinden Dockerfileyeniden kullanılabilir görüntünüzü oluşturmak için bir terminal açın ve cd ardından komutunun bulunduğu Dockerfile dizine şu komutu çalıştırın:

    docker build -t mysfcluster .
    

    Not

    Bu işlem biraz zaman alır, ancak yalnızca bir kez gereklidir.

    Artık Service Fabric'in yerel bir kopyasını istediğiniz zaman hızlıca başlatabilirsiniz:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mysfcluster
    

    İpucu

    Kapsayıcı örneğiniz için bir ad belirterek, örneğinizin daha okunaklı bir biçimde işlenebilmesini sağlayın.

    Uygulamanız belirli bağlantı noktalarını dinliyorsa, bağlantı noktaları ek -p etiketleri kullanılarak belirtilmelidir. Örneğin, uygulamanız 8080 bağlantı noktasını dinliyorsa, şuradaki -p etiketini ekleyin:

    docker run -itd -p 19000:19000 -p 19080:19080 -p 8080:8080 --name sfonebox mcr.microsoft.com/service-fabric/onebox:u18

  4. Kümenin başlatılması biraz zaman alacaktır. Çalışırken, aşağıdaki komutu kullanarak günlükleri görüntüleyebilir veya küme durumunu görüntülemek için panoya atlayabilirsiniz: http://localhost:19080

    docker logs sftestcluster
    
  5. Kapsayıcıyı durdurmak ve temizlemek için aşağıdaki komutu kullanın. Ancak bir sonraki adımda bu kapsayıcıyı kullanacağız.

    docker rm -f sftestcluster
    

Bilinen Sınırlamalar

Mac’e yönelik kapsayıcıdaki yerel küme çalıştırmaya ilişkin bilinen sınırlandırmalar aşağıda verilmiştir:

  • DNS hizmeti çalışmıyor ve şu anda kapsayıcı içinde desteklenmiyor. Sorun #132
  • Kapsayıcı tabanlı uygulamaların çalıştırılması için Linux ana bilgisayarında SF çalıştırılması gerekir. İç içe kapsayıcı uygulamaları şu anda desteklenmiyor.

Mac'inizde Service Fabric CLI'sını (sfctl) ayarlama

Service Fabric CLI'sını (sfctl) Mac'inize yüklemek için Service Fabric CLI'sı talimatlarını izleyin. CLI kümeler, uygulamalar ve hizmetler de dahil olmak üzere Service Fabric varlıklarıyla etkileşimi destekleyen komutlar içerir.

  1. Uygulamaları dağıtmadan önce kümeye bağlanmak için aşağıdaki komutu çalıştırın.
sfctl cluster select --endpoint http://localhost:19080

Yeoman kullanarak Mac'inizde uygulama oluşturma

Service Fabric, Yeoman şablon oluşturucu kullanarak terminalden Service Fabric uygulaması oluşturmanıza yardımcı olacak yapı iskelesi araçları sağlar. Service Fabric Yeoman şablon oluşturucunun makinenizde çalıştığından emin olmak için şu adımları izleyin:

  1. mac bilgisayarınıza Node.js ve Node Paket Yöneticisi yüklenmelidir. Yazılım, HomeBrew kullanılarak şurada anlatıldığı gibi yüklenebilir:

    brew install node
    node -v
    npm -v
    
  2. Node Paket Yöneticisi'nden makinenize Yeoman şablon oluşturucuyu yükleyin:

    npm install -g yo
    
  3. Başlarken belgelerinde bulunan adımları izleyerek kullanmak istediğiniz Yeoman oluşturucuyu yükleyin. Yeoman kullanarak Service Fabric uygulamaları oluşturmak için şu adımları takip edin:

    npm install -g generator-azuresfjava       # for Service Fabric Java Applications
    npm install -g generator-azuresfguest      # for Service Fabric Guest executables
    npm install -g generator-azuresfcontainer  # for Service Fabric Container Applications
    
  4. Oluşturucuları yükledikten sonra, sırasıyla yo azuresfguest ve yo azuresfcontainer komutlarını çalıştırarak konuk yürütülebilir dosyasını veya kapsayıcı hizmetlerini oluşturun.

  5. Mac’inizde bir Service Fabric Java uygulaması derlemek için ana makinede JDK sürüm 1.8 ve Gradle yüklü olmalıdır. Yazılım, HomeBrew kullanılarak şurada anlatıldığı gibi yüklenebilir:

    brew update
    brew cask install java
    brew install gradle
    

    Önemli

    geçerli sürümleri brew cask install java JDK'nin daha yeni bir sürümünü yükleyebilir. JDK 8'i yüklediğinizden emin olun.

Uygulamanızı terminalden Mac’inize dağıtma

Service Fabric uygulamanızı oluşturup derledikten sonra Service Fabric CLI’yi kullanarak uygulamanızı dağıtabilirsiniz:

  1. Mac’inizdeki kapsayıcı örneğinin içinde çalışan Service Fabric kümesine bağlanın:

    sfctl cluster select --endpoint http://localhost:19080
    
  2. Proje dizininize gidip yükleme betiğini çalıştırın:

    cd MyProject
    bash install.sh
    

.NET Core 3.1 geliştirmesini ayarlama

C# Service Fabric uygulamaları oluşturmaya başlamak için Mac için .NET Core 3.1 SDK'sını yükleyin. .NET Core Service Fabric uygulamaları için paketler NuGet.org üzerinde barındırılır.

Mac’inizde Eclipse için Service Fabric eklentisini yükleme

Azure Service Fabric, Java IDE için Eclipse Neon’a (veya sonrası) yönelik bir eklenti sağlar. Eklenti, Java hizmetleri oluşturma, derleme ve dağıtma işlemlerini basitleştirir. Eclipse içi Service Fabric eklentisinin son sürümünü yüklemek veya son sürümüne güncelleştirmek için şu adımları izleyin. Eclipse için Service Fabric belgelerindeki adımlar da geçerlidir: bir uygulama derleme, uygulamaya bir hizmet ekleme, bir uygulamayı kaldırma ve benzeri.

Son adım ise, ana bilgisayarınızla paylaşılan bir yolu olan kapsayıcı örneği oluşturmak olacaktır. Eklentinin Mac’inizdeki Docker kapsayıcısı ile çalışması için bu tür örnek oluşturma gerekir. Örneğin:

docker run -itd -p 19080:19080 -v /Users/sayantan/work/workspaces/mySFWorkspace:/tmp/mySFWorkspace --name sfonebox mcr.microsoft.com/service-fabric/onebox:latest

Öznitelikleri şunlardır:

  • /Users/sayantan/work/workspaces/mySFWorkspace, Mac’inizdeki çalışma alanının tam yolu.
  • /tmp/mySFWorkspace, çalışma alanının eşlenmesi gereken kapsayıcının içindeki yol.

Not

Çalışma alanınız için farklı bir adınız/yolunuz varsa, bu değerleri docker run komutunda güncelleştirin.

Kapsayıcıyı sfonebox dışında bir adla başlatırsanız, Service Fabric aktör Java uygulamanızdaki testclient.sh dosyasında ad değerini güncelleştirin.

Sonraki adımlar