2015-06-13 31 views
45

Jestem programistą Java. Używamy Weblogic do hostowania naszych aplikacji. Powiedziano mi, żebym spróbował zastąpić weblogic alternatywą dla opensource. Planujemy użycie z SpringBoot. Patrzymy również na Docker/Cloud Foundry. Jednak Docker/Cloud Foundry to dla mnie nowe terytorium.Jaka jest różnica między Cloud Foundry i Docker?

  1. Czy ktoś może mi powiedzieć, jaka jest różnica między Cloud Foundry i Docker?
  2. Jeśli używamy Docker, ale nie odlewni Chmury, czego nam brakuje?
  3. Jeśli używamy Cloud Foundry, ale nie Docker, czego nam brakuje?

Dziękuję za pomoc.

+0

byłoby bardziej poprawne porównać Döcker z [Strażnik] (https: // github .com/cloudfoundry/warden) (używane pod maską CF). –

+0

http://heidloff.net/nh/home.nsf/article.xsp?id=20.02.2015092308NHEBUJ.htm – satks

+1

Nie można porównywać usługi PaaS (Platforma jako usługa) z technlogem Container. Technologia pojemników to tylko bardzo mała część Cloud Foundry. –

Odpowiedz

105

Docker to technologia do tworzenia i uruchamiania "kontenerów" systemu Linux. W pewnym sensie można myśleć o nich jako o lekkich maszynach wirtualnych. Kontener dokowany dla aplikacji SpringBoot będzie składał się z obrazu dokowanego, który będzie zawierał system plików ze wszystkimi rzeczami potrzebnymi do uruchomienia aplikacji (JVM, kod źródłowy itp.) Oraz metadane kontenera dookólnego, które przekazują demonowi dokowanego instrukcje uruchomić aplikację wewnątrz obrazu (np. jakie zmienne środowiskowe ustawić, jakie porty eksponować, jakie komendy uruchomić itp.). Demon docker będzie używał funkcji systemu Linux, takich jak cgrupy i przestrzenie nazw jądra, do uruchamiania kontenera w izolacji od innych procesów uruchomionych na komputerze-hoście. Docker jest nieco niskiego poziomu, ponieważ musisz określić wszystko, co trafia na obraz, i uruchamia on dowolne rzeczy, a mianowicie wszystko, co umieścisz w obrazie i powiesz mu, by działał. Dostarczony kontener dokowania jest bardzo przenośny, więc można zbudować, przetestować i uruchomić lokalny kontener dokowania w celu jego rozwoju, a następnie wysłać ten kontener do hosta produkcyjnego, który również ma uruchomionego demona docker, i mieć całkowitą pewność, że dostajesz dokładnie to samo.

Cloud Foundry działa na wyższej warstwie abstrakcji, a aplikacje są koncepcją najwyższej klasy. Cloud Foundry wykorzystuje technologię kontenerowania podobną do dockera do tworzenia przenośnych obrazów, a następnie uruchamia je, ale jest to szczegół implementacji i nie trzeba określać wszystkich szczegółów. W nowszych wersjach programu Cloud Foundry obsługiwane będą również obrazy w doku, dzięki czemu można określić szczegóły, ale ma również przepływ pracy "buildpack", w którym automatycznie wykryje aplikację Java po naciśnięciu aplikacji i będzie wiedział, uwzględnij wszystkie rzeczy niezbędne dla środowiska wykonawczego Java podczas budowania obrazu.

Z Cloud Foundry, ponieważ aplikacje i zarządzanie aplikacjami są koncepcjami najwyższej klasy, a ponieważ działa na wyższym poziomie, dostajesz różnego rodzaju rzeczy za darmo. Na przykład możesz z łatwością skalować aplikację w poziomie (dodawać instancje), np. cf scale my_app -i 5 lub w pionie, cf scale my_app -m 2G (aby ustawić przydzieloną pamięć dla każdej instancji). Otrzymujesz dzienniki aplikacji do przesyłania strumieniowego: cf logs my_app. Cloud Foundry zapewnia dużą tolerancję błędów za darmo, więc jeśli jedna z twoich instancji aplikacji ulegnie awarii, albo proces uruchamiający same kontenery aplikacji ulega awarii (coś, co jest podobne do demona docker), lub jeśli maszyna wirtualna hosta, która uruchamia kontener - uruchamianie procesów lub klastra sprzętu, w którym umiera maszyna wirtualna, Cloud Foundry automatycznie przywróci kopie instancji.

Demon doczepny to pojedynczy proces, który można uruchomić na dowolnym komputerze z systemem Linux. Jeśli więc robisz coś małego i prostego, a sam musisz wykonać większość konfiguracji, łatwiejsze może być uruchomienie i uruchomienie zarówno lokalnie, jak i programowanie za pomocą funkcji dokowania. Dzięki dockerowi łatwiej jest uzyskać dostęp i udostępnić utworzony obraz dokowania, więc po utworzeniu obrazu można umieścić go w repozytorium docker, a następnie uruchomić go na dowolnym innym demonie docker. W Cloud Foundry zbudowany obraz jest generalnie szczegółem implementacji i tak naprawdę nie masz do niego dostępu, więc na przykład nie można wyodrębnić tego obrazu i uruchomić go na innej instalacji Cloud Foundry.

Istnieje wiele różnych projektów, które mają na celu uczynienie Cloud Foundry bardziej dostępnym i łatwiejszym w konfiguracji, a jednocześnie daje wiele korzyści z PaaS. Niektóre z tych projektów mają również na celu umożliwienie łączenia funkcji dokowania z korzyściami funkcji dokowania przy jednoczesnym uzyskiwaniu wielu korzyści PaaS uzyskanych z Cloud Foundry.

Zobacz Lattice i Cloud Foundry on BOSH-Lite.

Istnieje również kilka hostowanych usług odlewni Cloud.

Zobacz Pivotal Web Services i IBM BlueMix

Istnieje również wiele projektów non-CF mających położyć warstwę platformy wokół rdzenia technologii Döcker w obu odmian prowadzonych-your-own-usługowych i gospodarzem.

Zobacz Google's Kubernetes project i Amazon Container Service

Pełne ujawnienie: Jestem inżynierem oprogramowania działa na chmura Odlewnictwa w Pivotal

+0

Czy odlewnia chmury obsługuje wiele kontenerów Docker? i czy obsługuje więcej niż jeden port? Chcemy zainstalować stos ELK i potrzebujemy trzech portów. – powder366

+0

Czy porty dla ruchu przychodzącego pochodzą z Internetu lub komunikacji między kontenerami? Jeśli to drugie, powinieneś być w stanie to zrobić. Możesz zobaczyć, jak wdrożyłem Spark w instancji usługi aplikacji Cloud Foundry [tutaj] (https://gist.github.com/Amit-PivotalLabs/7c86c92aae3123ac809e81795a41acfa#deploy-the-spark-cluster), która obejmuje przesuwanie wielu obrazów Docker i pozwalając im rozmawiać ze sobą przez setki portów (ponieważ tak właśnie działa Spark). –

+0

Ruch przychodzący z Internetu, tj. Użyj zwykłego interfejsu WWW Kibana i Elasticsearch do nazwania dwóch. Również dlaczego pojemniki nie utrzymują stanu? Mamy dane, które chcemy zachować w kontenerach po ponownym uruchomieniu. – powder366