Bulutta Bulut için Geliştirme: AWS'de Docker ile Büyük Veri Geliştirme

Yayınlanan: 2022-03-11

Neden ihtiyacınız olabilir?

Ben bir geliştiriciyim ve Intellij IDEA veya Eclipse gibi Entegre Geliştirme Ortamlarında (IDE) her gün çalışıyorum. Bu IDE'ler masaüstü uygulamalarıdır. Google Documents'ın ortaya çıkışından bu yana, Word veya Excel'in masaüstü sürümlerinden çalışmalarını bir kelime işlemci veya elektronik tablo uygulamasının çevrimiçi eşdeğerini kullanarak buluta taşıyan çok daha fazla insan gördüm.

Çalışmanızı sürdürmek için bir bulut kullanmanın bariz nedenleri vardır. Günümüzde geleneksel masaüstü iş uygulamalarına kıyasla bazı web uygulamalarının işlevsellik açısından önemli bir dezavantajı bulunmamaktadır. İçerik, bir web tarayıcısının olduğu her yerde mevcuttur ve bu günlerde bu neredeyse her yerdedir. İşbirliği ve paylaşım daha kolaydır ve dosyaları kaybetme olasılığı daha düşüktür.

Ne yazık ki, bu bulut avantajları, yazılım geliştirme dünyasında iş uygulamaları için olduğu kadar yaygın değildir. Çevrimiçi bir IDE sağlamak için bazı girişimler var, ancak bunlar hiçbir yerde geleneksel IDE'lere yakın değil.

Bu bir paradokstur; Günlük kodlama için hala masaüstümüze bağlıyken, yazılım artık birden fazla sunucuda yeniden oluşturuluyor. Geliştiricilerin artık bilgisayarlarında tutamayacakları şeylerle çalışması gerekiyor. Gerçekten de, dizüstü bilgisayarlar artık işlem güçlerini artırmıyor; bir dizüstü bilgisayarda 16 GB'den fazla RAM'e sahip olmak nadir ve pahalıdır ve örneğin daha yeni cihazlar, tabletler daha da azına sahiptir.

Ancak yazılım geliştirme için klasik masaüstü uygulamalarının yerini almak henüz mümkün olmasa da geliştirme masaüstünüzün tamamını buluta taşımanız mümkün. Tüm yazılımlarımın dizüstü bilgisayarımda olmasının artık gerekli olmadığını anladığım gün ve terminallerin ve VNC'nin web sürümünün kullanılabilirliğini fark ettiğimde her şeyi buluta taşıdım. Sonunda, bu ortamı otomatik bir şekilde oluşturmak için bir yapı kiti geliştirdim.

Bulutta geliştirici

Bir geliştirici için bulut nedir? İçinde gelişmek, elbette!
Cıvıldamak

Bu makalede, Amazon AWS'de Docker ile çalışan ve hizmet olarak IntelliJ IDE, Spark, Hadoop ve Zeppelin ile web üzerinden erişilebilir bir masaüstünden oluşan Scala ve büyük veri uygulamaları için bulut tabanlı bir geliştirme ortamı oluşturmak için bir dizi komut dosyası sunuyorum. ve ayrıca web tabanlı SSH, SBT ve Ammonite gibi komut satırı araçları. Kit GitHub'da ücretsiz olarak mevcuttur ve burada örneğinizi oluşturmak için kullanma prosedürünü açıklıyorum. Ortamınızı oluşturabilir ve özel ihtiyaçlarınıza göre özelleştirebilirsiniz. Çalıştırıp çalıştırmanız 10 dakikadan fazla sürmemelidir.

“BigDataDevKit”te neler var?

Kiti geliştirmedeki birincil amacım, geliştirme ortamımın birlikte çalıştığım tüm hizmetler ve sunucularla basitçe ateşleyebileceğim ve daha sonra artık ihtiyaç duyulmadığında onları yok edebileceğim bir şey olmasıydı. Bu, büyük veri projelerinde olduğu gibi, bazıları çok sayıda sunucu ve hizmet içeren farklı projeler üzerinde çalışırken özellikle önemlidir.

İdeal bulut tabanlı ortamım şunları yapmalıdır:

  • Tüm olağan geliştirme araçlarını, en önemlisi bir grafik IDE'yi dahil edin.
  • İhtiyacım olan sunucular ve hizmetler parmaklarımın ucunda.
  • Sıfırdan oluşturması kolay ve hızlı ve daha fazla hizmet eklemek için genişletilebilir olun.
  • Yalnızca bir web tarayıcısı kullanarak tamamen erişilebilir olun.
  • İsteğe bağlı olarak, özel istemcilerle (VNC istemcisi ve SSH istemcisi) erişime izin verin.

Modern bulut altyapısı ve yazılımından, modern tarayıcıların gücünden, geniş bant kullanılabilirliğinin ve paha biçilmez Docker'dan yararlanarak, geliştirme dizüstü bilgisayarımın yerini alan Scala ve büyük veri geliştirme için bir geliştirme ortamı yarattım.

Şu anda, bir MacBook Pro'dan, bir Surface Tablet'ten veya hatta bir iPad'den (klavyeli) herhangi bir zamanda çalışabilirim, ancak kuşkusuz son seçenek ideal değildir. Tüm bu cihazlar yalnızca istemcilerdir; masaüstü ve tüm sunucular bulutta.

Docker ve Amazon AWS!

Mevcut ortamım aşağıdaki çevrimiçi hizmetler kullanılarak oluşturulmuştur:

  • Sunucular için Amazon Web Servisleri.
  • Kodu saklamak için GitHub.
  • Dosyaları kaydetmek için Dropbox.

Ayrıca dinamik IP adresleri için DuckDns ve ücretsiz bir SSL sertifikası almak için Let's encrypt gibi birkaç ücretsiz hizmet kullanıyorum.

Bu ortamda, şu anda sahip olduğum:

  • Bir web tarayıcısı aracılığıyla erişilebilen Intellij fikrine sahip bir grafik masaüstü.
  • SBT ve Ammonite gibi web'den erişilebilen komut satırı araçları.
  • Dosyaları depolamak ve MapReduce işlerini çalıştırmak için Hadoop.
  • Zamanlanmış işler için Spark İş Sunucusu.
  • Web tabanlı bir dizüstü bilgisayar için Zeplin.

En önemlisi, web erişimi, hem web tabanlı VNC hem de SSH için tamamen HTTPS ile şifrelenir ve veri kaybını önlemek için birden fazla güvenlik önlemi vardır; bu, içeriğin "sahibi olmadığınızda" önemli olan bir endişedir. fiziksel sabit diskiniz. Bilgisayarınızdaki tüm çalışmalarınızın bir kopyasını almanın otomatik ve çok hızlı olduğunu unutmayın. Birisi şifrenizi çaldığı için her şeyi kaybederseniz, her şeyi doğru yapılandırdığınız sürece, yine de bilgisayarınızda bir kopyası vardır.

AWS ve Docker ile Web Tabanlı Geliştirme Ortamı Kullanma

Şimdi ortamın nasıl çalıştığını açıklamaya başlayalım. Sabah işe başladığımda ilk işim tüm örneklerimi gördüğüm Amazon Web Services konsoluna giriş yapmak oluyor. Genellikle, farklı projeler için yapılandırılmış birçok geliştirme örneğim var ve faturalandırmadan tasarruf etmek için kullanılmayanları kapalı tutuyorum. Sonuçta, aynı anda sadece bir proje üzerinde çalışabilirim. (Eh, bazen iki tane üzerinde çalışıyorum.)

ekran 1

Bu yüzden istediğim örneği seçiyorum, başlatıyorum, biraz bekliyorum ya da bir fincan kahve alıyorum. Bilgisayarınızı açmaktan çok farklı değil. Örneğin çalışır durumda olması genellikle birkaç saniye sürer. Yeşil simgeyi gördüğümde bir tarayıcı açıyorum ve iyi bilinen bir URL'ye gidiyorum: https://msciab.duckdns.org/vnc.html . Not, bu benim URL'm; bir kit oluşturduğunuzda, benzersiz URL'nizi oluşturacaksınız.

AWS, başlattığınızda her makineye yeni bir IP atadığından, dinamik bir DNS hizmeti yapılandırdım, böylece durdurup yeniden başlatsanız bile sunucunuza erişmek için her zaman aynı URL'yi kullanabilirsiniz. Hatta tarayıcınızda yer imlerine ekleyebilirsiniz. Ayrıca, parolaları ve diğer hassas verileri yönetmem gerekirse, çalışmamın dinleyicilerden tam olarak korunmasını sağlamak için geçerli anahtarlarla HTTPS kullanıyorum.

ekran 2

Yüklendikten sonra, sistem sizi bir Web VNC web istemcisi olan NoVNC ile karşılayacaktır. Basitçe oturum açın ve bir masaüstü belirir. Kasten minimal bir masaüstü kullanıyorum, sadece uygulamalar içeren bir menü ve tek lüksüm sanal bir masaüstü (geliştirirken çok fazla pencere açtığımdan beri). Posta için hala diğer uygulamalara güveniyorum, günümüzde çoğunlukla diğer tarayıcı sekmeleri.

Sanal makinede, büyük veri uygulamaları geliştirmek için ihtiyacım olan her şeye sahibim. Her şeyden önce, bir IDE var. Yapıda IntelliJ Idea topluluk sürümünü kullanıyorum. Ayrıca, SBT oluşturma aracı ve bir Scala REPL, Ammonite vardır.

Ekran 3

Ancak bu ortamın temel özellikleri, aynı sanal makinede kapsayıcı olarak dağıtılan hizmetlerdir. Özellikle, bende:

  • Zeppelin, anında Scala kodunu kullanmak ve veri analizi yapmak için web defteri ( http://zeppelin:8080 )
  • Spark işlerini bir Rest arabirimiyle yürütmek ve dağıtmak için Spark İş Sunucusu ( http://sparkjobserver:8080 ).
  • HDFS'den veri depolamak ve almak için bir Hadoop örneği ( http://hadoop:50070 ).

Bu URL'lerin sabit olduğunu ancak sanal ortamdan erişilebilir olduğunu unutmayın. Aşağıdaki ekran görüntüsünde web arayüzlerini görebilirsiniz.

Ekran 4

Her hizmet ayrı bir Docker kapsayıcısında çalışır. Çok teknik olmadan, bunu sanal makinenizin içinde üç ayrı sunucu olarak düşünebilirsiniz. Docker kullanmanın güzelliği, hizmetler ekleyebilmeniz ve hatta iki veya üç sanal makine ekleyebilmenizdir. Amazon kapsayıcılarını kullanarak ortamınızı kolayca ölçeklendirebilirsiniz.

Son olarak, bir web terminaliniz var. URL'nize HTTPS ile erişmeniz yeterlidir ve bir web sayfasında bir terminal ile karşılanacaksınız.

Ekran 5

Yukarıdaki ekran görüntüsünde, üç sunucu artı masaüstü olan kapsayıcıları listelediğimi görebilirsiniz. Bu komut satırı kabuğu, kapları tutan sanal makineye erişmenizi sağlayarak onları yönetmenize olanak tanır. Sunucularınız sanki "Matrix'te" (konteynerler içinde sanallaştırılmıştır), ancak bu kabuk, sunucuları ve masaüstünü yönetmek için size "Matrix"in dışında bir kaçış sağlar. Buradan kapsayıcıları yeniden başlatabilir, dosya sistemlerine erişebilir ve Docker tarafından izin verilen diğer işlemleri gerçekleştirebilirsiniz. Docker'ı burada ayrıntılı olarak tartışmayacağım, ancak Docker web sitesinde çok sayıda belge var.

Örneğiniz nasıl kurulur?

Şimdiye kadar bunu beğendin mi ve örneğini mi istiyorsun? Kolay ve ucuzdur. Yalnızca Amazon Web Services'deki sanal makinenin maliyetinin yanı sıra depolama maliyeti karşılığında alabilirsiniz. Mevcut yapılandırmadaki kit, tüm hizmetleri çalıştırmak için 4 GB RAM gerektirir. Sanal makineyi yalnızca ihtiyacınız olduğunda kullanmaya özen gösterirseniz ve diyelim ki ayda 160 saat çalışıyorsanız, mevcut oranlarda bir sanal makinenin maliyeti 160 x 0,052 ABD Doları veya ayda 8 ABD Doları olacaktır. Depolama maliyetini eklemelisiniz. Yaklaşık 30 GB kullanıyorum, ancak her şey toplamda 10 doların altında tutulabilir.

Ancak, 2GB'tan fazla kodu yedeklemek isterseniz, bu bot (nihai) Dropbox (Pro) hesabının maliyetini içerir. Bu, aylık 15 ABD dolarına mal olur, ancak verileriniz için önemli bir güvenlik sağlar. Ayrıca, ücretli bir GitHub veya ücretsiz özel havuzlar sunan Bitbucket gibi başka bir hizmet gibi özel bir havuza ihtiyacınız olacak.

Sadece ihtiyacınız olduğunda kullanırsanız, adanmış bir sunucudan daha ucuz olduğunu vurgulamak istiyorum. Evet, burada bahsedilen her şey fiziksel bir sunucu üzerinde kurulabilir ancak büyük veri ile çalıştığım için birçok başka AWS hizmetine ihtiyacım var, bu yüzden her şeyin aynı yerde olmasının mantıklı olduğunu düşünüyorum.

Tüm kurulumu nasıl yapacağımızı görelim.

Önkoşullar

Bir sanal makine oluşturmaya başlamadan önce aşağıdaki dört hizmete kaydolmanız gerekir:

  • Amazon Web Hizmetleri.
  • ÖrdekDNS.
  • Dropbox.
  • Şifreleyelim.

Kredi kartınıza ihtiyacınız olan tek şey Amazon Web Servisleri. DuckDns tamamen ücretsizdir, DropBox ise size birçok görev için yeterli olabilecek 2 GB ücretsiz depolama alanı sunar. Let's Encrypt ayrıca ücretsizdir ve sertifikanızı imzalamak için görüntüyü oluşturduğunuzda dahili olarak kullanılır. Bunların yanı sıra, kodunuzu saklamak istiyorsanız GitHub veya Bitbucket gibi bir depo barındırma hizmeti de öneririm, ancak kurulum için gerekli değildir.

Başlamak için GitHub BigDataDevKit deposuna gidin.

ekran 6

Sayfayı kaydırın ve resimde gösterilen komut dosyasını seçtiğiniz metin düzenleyicinize kopyalayın:

ekran 7

Bu komut dosyası, görüntüyü önyüklemek için gereklidir. Bunu değiştirmeniz ve parametrelere bazı değerler sağlamanız gerekir. Dikkatlice, tırnak içindeki metni değiştirin. Alıntı yapmadığınız sürece, parolada alıntının kendisi, ters eğik çizgi veya dolar işareti gibi karakterleri kullanamayacağınızı unutmayın. Bu sorun yalnızca parola için geçerlidir. Güvenli oynamak istiyorsanız, bir tekliften, dolar işaretinden veya ters eğik çizgiden kaçının.

PASSWORD parametresi, bir web arayüzü üzerinden sanal makineye erişmek için seçtiğiniz bir şifredir. EMAIL parametresi e-postanızdır ve bir SSL sertifikası kaydettiğinizde kullanılacaktır. E-postanızı sağlamanız istenecek ve Let's Encrypt'ten ücretsiz bir SSL Sertifikası almak için tek gereklilik bu.

TOKEN ve HOST değerlerini almak için DuckDNS sitesine gidin ve oturum açın. Kullanılmayan bir ana bilgisayar adı seçmeniz gerekecek.

Ekran 8

Simgeyi nereye kopyalamanız gerektiğini ve ana bilgisayar adınızı nereye eklemeniz gerektiğini görmek için resme bakın. Ana bilgisayar adını rezerve etmek için "alan ekle" düğmesini tıklamanız gerekir.

Örneğinizi yapılandırma

Tüm parametrelere sahip olduğunuzu ve komut dosyasını düzenlediğinizi varsayarsak, örneğinizi başlatmaya hazırsınız. Amazon Web Services yönetim arayüzünde oturum açın, EC2 Instances paneline gidin ve "Launch Instance" seçeneğine tıklayın.

ekran 9

İlk ekranda bir resim seçeceksiniz. Komut dosyası, Amazon Linux çevresinde oluşturulmuştur ve başka seçenek yoktur. QuickStart listesindeki ilk seçenek olan Amazon Linux'u seçin.

Ekran 10

İkinci ekranda, örnek türünü seçin. Çalışan yazılımın boyutu göz önüne alındığında, birden çok hizmet vardır ve en az 4 GB belleğe ihtiyacınız vardır, bu nedenle t2.medium örneğini seçmenizi öneririm. Bazı hizmetleri kapatırsanız t2.small'ı , hatta yalnızca masaüstünü istiyorsanız mikro'yu kullanarak kısaltabilirsiniz.

Ekran 11

Üçüncü ekranda, “Gelişmiş Ayrıntılar”a tıklayın ve önceki adımda yapılandırdığınız komut dosyasını yapıştırın. Ayrıca, fesihlere karşı korumayı etkinleştirmenizi tavsiye ederim, böylece yanlışlıkla yapılan bir fesih ile tüm çalışmalarınızı kaybetmezsiniz.

Ekran 12

Bir sonraki adım, depolamayı yapılandırmaktır. Örnek için varsayılan değer 8 GB'dir ve bu, oluşturacağımız tüm görüntüleri içermek için yeterli değildir. 20 GB'a çıkarmanızı tavsiye ederim. Ayrıca gerekli olmasa da en az 10GB'lık başka bir blok cihazı öneririm. Komut dosyası, ikinci blok cihazını bir veri klasörü olarak bağlayacaktır. İçeriğinin anlık görüntüsünü alabilir, örneği sonlandırabilir, ardından anlık görüntüyü kullanarak yeniden oluşturabilir ve tüm işi kurtarabilirsiniz. Ayrıca, örneği sonlandırdığınızda özel bir blok aygıtı kaybolmaz, bu nedenle verilerinizin yanlışlıkla kaybolmasına karşı çifte koruma elde edin. Güvenliğinizi daha da artırmak için Dropbox ile verilerinizi otomatik olarak yedekleyebilirsiniz.

Ekran 13

Beşinci adım, örneği adlandırmaktır. Kendin seç. Altıncı adım, güvenlik duvarını yapılandırmanın bir yolunu sunar. Varsayılan olarak yalnızca SSH mevcuttur, ancak HTTPS'ye de ihtiyacımız var, bu nedenle HTTPS'yi açan bir kural da eklemeyi unutmayın. HTTPS'yi dünyaya açabilirsiniz, ancak başkalarının masaüstünüze ve kabuğunuza erişmesini önlemek için yalnızca IP'niz varsa, bu hala bir parola ile korunuyor olsa bile daha iyidir.

Bu son yapılandırmayı tamamladıktan sonra örneği başlatabilirsiniz. Başlatma komut dosyası çalıştığından ilk kez başlatmanın birkaç dakika sürebileceğini ve Let's Encrypt ile bir HTTPS sertifikası oluşturmak gibi bazı uzun görevleri yerine getireceğini fark edeceksiniz.

Ekran 14

Sonunda yönetim konsolunun bir onayla "çalıştığını" ve artık "başlatılmadığını" gördüğünüzde, gitmeye hazırsınız demektir.

Tüm parametrelerin doğru olduğunu varsayarak https://YOURHOST.duckdns.org gidebilirsiniz.

YOURHOST seçtiğiniz ana bilgisayar adıyla değiştirin, ancak bunun HTTP değil HTTPS sitesi olduğunu unutmayın, bu nedenle sunucuyla bağlantınız şifrelenir, bu nedenle URL'ye https// yazmanız gerekir. Site ayrıca Let's Encrypt için geçerli bir sertifika sunacak. Sertifikayı almada sorun varsa, başlatma komut dosyası kendinden imzalı bir sertifika oluşturur. Yine de şifreli bir bağlantıyla bağlanabileceksiniz, ancak tarayıcı sizi bu sitenin bilinmeyen bir site olduğu konusunda uyaracak ve bağlantılar güvenli değil. Olmamalı, ama asla bilemezsin.

Ekran 15

Her şeyin çalıştığını varsayarsak, web terminali Butterfly'a erişirsiniz. Kullanıcı app ve kurulum komut dosyasına koyduğunuz şifreyi kullanarak giriş yapabilirsiniz.

Giriş yaptıktan sonra, Docker ve Nginx Frontend, Git ve Butterfly Web Terminali gibi diğer güzellikleri de içeren ön yüklemeli bir sanal makineniz olur. Artık geliştirme ortamınız için Docker görüntüleri oluşturarak kurulumu tamamlayabilirsiniz.

Ardından, aşağıdaki komutları yazın:

 git clone https://github.com/sciabarra/BigDataDevKit cd BigDataDevKit sh build.sh

Son komut ayrıca Masaüstü erişimi için bir şifre yazmanızı isteyecektir. Bittiğinde, görüntüleri oluşturmaya başlayacaktır. Derlemenin yaklaşık 10 dakika süreceğini unutmayın, ancak her şey ekranda gösterildiği için neler olduğunu görebilirsiniz.

Derleme tamamlandıktan sonra Dropbox'ı aşağıdaki komutla da yükleyebilirsiniz:

 /app/.dropbox-dist/dropboxd

Sistem, Dropbox'ı etkinleştirmek için tıklamanız gereken bir bağlantı gösterecektir. Dropbox'ta oturum açmanız gerekiyor ve işiniz bitti. Dropbox klasörüne ne koyarsanız koyun, tüm Dropbox örnekleriniz arasında otomatik olarak senkronize edilir.

Bittiğinde, sanal makineyi yeniden başlatabilir ve ortamınıza https://YOURHOST.dyndns.org/vnc.html URL'sinden erişebilirsiniz.

Çalışmaya devam ettiğinizde makinenizi durdurabilir ve yeniden başlatabilirsiniz. Erişim URL'si aynı kalır. Bu şekilde, yalnızca kullandığınız süre için ve ayrıca kullanılan depolama alanı için aylık ekstra ödeme yaparsınız.

Verilerinizi koruma

Aşağıdaki tartışma, Docker ve Amazon'un nasıl çalıştığı hakkında biraz bilgi gerektirir. Ayrıntıları anlamak istemiyorsanız, aşağıdaki basit kuralı aklınızda bulundurun: Sanal makinede bir /app/Dropbox klasörü bulunur, /app/Dropbox'a ne /app/Dropbox korunur ve geri kalan her şey tek kullanımlıktır ve uzaklaşabilir. Güvenliği daha da artırmak için değerli kodunuzu bir sürüm kontrol sisteminde de saklayın.

Şimdi, bunu anlamak istiyorsanız, okumaya devam edin. Sanal makine oluşturmada benim yönergelerimi izlediyseniz, sanal makine sonlandırılmaya karşı korunur, bu nedenle onu yanlışlıkla yok edemezsiniz. Açıkça sonlandırmaya karar verirseniz, birincil birim yok edilecektir. Yaptığınız tüm değişiklikler de dahil olmak üzere tüm Docker görüntüleri kaybolacak.

Ancak, /app/Dropbox klasörü konteynerler için bir Docker Birimi olarak monte edildiğinden, Docker görüntülerinin bir parçası değildir. Sanal makinede, /app klasörü oluşturduğunuz Amazon Birimi'ne takılır ve bu da sanal makineyi açıkça sonlandırdığınızda bile yok edilmez. Birimi çıkarmak için, açıkça çıkarmanız gerekir.

Bir Docker mantıksal varlığı olan Docker birimlerini, biraz fiziksel bir varlık olan Amazon Birimleri ile karıştırmayın. Olan, /app/Dropbox Docker biriminin /app Amazon biriminin içine yerleştirilmesidir.

Sanal makineyi sonlandırdığınızda Amazon Birimi otomatik olarak yok edilmez, bu nedenle içine yerleştirilen her şey, siz de birimi açıkça yok edene kadar korunur. Ayrıca, Docker birimine ne koyarsanız koyun, kapsayıcının dışında depolanır, bu nedenle kapsayıcı yok edildiğinde yok olmaz. Dropbox'ı önerildiği gibi etkinleştirdiyseniz, tüm içeriğiniz Dropbox sunucularına ve Dropbox'ı bilgisayar(lar)ınızla eşitlerseniz sabit diskinize kopyalanır. Ayrıca kaynak kodunun bir sürüm kontrol sisteminde saklanması önerilir.

Bu nedenle, eşyalarınızı Dropbox klasörünün altındaki sürüm kontrol sistemine yerleştirirseniz, verilerinizi kaybetmek için bunların hepsinin gerçekleşmesi gerekir:

  • Sanal makinenizi açıkça sonlandırıyorsunuz.
  • Veri birimini sanal makineden açıkça kaldırırsınız.
  • Geçmiş de dahil olmak üzere verileri Dropbox'tan açıkça kaldırırsınız.
  • Verileri sürüm kontrol sisteminden açıkça kaldırırsınız.

Umarım verileriniz yeterince güvendedir.

Her proje için bir sanal makine tutuyorum ve bitirdiğimde kullanılmayan sanal makineleri kapalı tutuyorum. Tabii ki tüm kodum GitHub'da ve Dropbox'ta yedeklendi. Ayrıca, bir proje üzerinde çalışmayı bıraktığımda, sanal makineyi tamamen kaldırmadan önce Amazon Web Services bloğunun anlık görüntüsünü alıyorum. Bu şekilde, örneğin bakım için bir proje devam ettiğinde, tek yapmam gereken anlık görüntüyü kullanarak yeni bir sanal makine başlatmak. Tüm verilerim yerine geri döner ve çalışmaya devam edebilirim.

Erişimi optimize etme

İlk olarak, bir proxy tarafından aracılık edilmeyen doğrudan internet erişiminiz varsa, yerel SSH ve VNC istemcilerini kullanabilirsiniz. Dosyaları sanal makinenin içine ve dışına kopyalamanız gerekiyorsa, doğrudan SSH erişimi önemlidir. Ancak dosya paylaşımı için Dropbox'ı daha basit bir alternatif olarak düşünmelisiniz.

VNC web erişimi paha biçilmezdir, ancak bazen yerel bir istemciden daha yavaş olabilir. 5900 numaralı bağlantı noktasını kullanarak sanal makinedeki VNC sunucusuna erişiminiz var. Varsayılan olarak kapalı olduğundan açıkça açmalısınız. Sadece IP adresinize açmanızı tavsiye ederim, çünkü internet, bağlanacak servisler arayan interneti tarayan “robotlarla” doludur ve VNC bu robotların sık hedefidir.

Çözüm

Bu makale, etkili bir geliştirme ortamı uygulamak için modern bulut teknolojisinden nasıl yararlanabileceğinizi açıklamaktadır. Buluttaki bir makine, çalışan bilgisayarınız veya dizüstü bilgisayarınız için tam bir yedek olamazken, IDE'ye erişimin önemli olduğu durumlarda geliştirme çalışması yapmak için yeterince iyidir. Tecrübelerime göre, mevcut internet bağlantılarıyla çalışmak için yeterince hızlı.

Bulutta olmak, sunucu erişimi ve manipülasyonu, yerel olarak sahip olmaktan daha hızlıdır. Belleği hızla artırabilir (veya azaltabilir), başka bir ortamı başlatabilir, bir görüntü oluşturabilirsiniz vb. Parmaklarınızın ucunda bir veri merkeziniz var ve büyük veri projeleriyle çalışırken sağlam hizmetlere ve çok fazla alana ihtiyacınız var. Bulutun sağladığı budur.