Deprecated: Creation of dynamic property ACF::$fields is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/fields.php on line 138

Deprecated: Creation of dynamic property acf_loop::$loops is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/loop.php on line 28

Deprecated: Creation of dynamic property ACF::$loop is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/loop.php on line 269

Deprecated: Creation of dynamic property ACF::$revisions is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/revisions.php on line 397

Deprecated: Creation of dynamic property acf_validation::$errors is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/validation.php on line 28

Deprecated: Creation of dynamic property ACF::$validation is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/validation.php on line 214

Deprecated: Creation of dynamic property acf_form_customizer::$preview_values is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 28

Deprecated: Creation of dynamic property acf_form_customizer::$preview_fields is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 29

Deprecated: Creation of dynamic property acf_form_customizer::$preview_errors is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 30

Deprecated: Creation of dynamic property ACF::$form_front is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-front.php on line 598

Deprecated: Creation of dynamic property acf_form_widget::$preview_values is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 34

Deprecated: Creation of dynamic property acf_form_widget::$preview_reference is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 35

Deprecated: Creation of dynamic property acf_form_widget::$preview_errors is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 36

Deprecated: Creation of dynamic property KS_Site::$pingback is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Site.php on line 180

Deprecated: Creation of dynamic property acf_field_oembed::$width is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-oembed.php on line 31

Deprecated: Creation of dynamic property acf_field_oembed::$height is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-oembed.php on line 32

Deprecated: Creation of dynamic property acf_field_google_map::$default_values is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-google-map.php on line 33

Deprecated: Creation of dynamic property acf_field__group::$have_rows is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-group.php on line 31

Deprecated: Creation of dynamic property acf_field_clone::$cloning is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/pro/fields/class-acf-field-clone.php on line 34

Deprecated: Creation of dynamic property acf_field_clone::$have_rows is deprecated in /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/pro/fields/class-acf-field-clone.php on line 35

Deprecated: Creation of dynamic property Timber\Integrations::$wpml is deprecated in /home/sarotaq/crn/wp-content/plugins/timber-library/lib/Integrations.php on line 33

Warning: Cannot modify header information - headers already sent by (output started at /home/sarotaq/crn/wp-content/plugins/advanced-custom-fields-pro/pro/fields/class-acf-field-clone.php:34) in /home/sarotaq/crn/wp-includes/feed-rss2.php on line 8
- CRN https://crn.sarota.dev/tag/market-aplikacji/ CRN.pl to portal B2B poświęcony branży IT. Dociera do ponad 40 000 unikalnych użytkowników. Jest narzędziem pracy kadry zarządzającej w branży IT w Polsce. Codziennie nowe informacje z branży IT, wywiady, artykuły, raporty tematyczne Tue, 02 Jun 2015 08:00:00 +0000 pl-PL hourly 1 https://wordpress.org/?v=6.6.2 Aplikacje Ruby na platformie CloudPortal https://crn.sarota.dev/artykuly/aplikacje-ruby-na-platformie-cloudportal/ https://crn.sarota.dev/artykuly/aplikacje-ruby-na-platformie-cloudportal/#respond Tue, 02 Jun 2015 08:00:00 +0000 https://crn.pl/default/aplikacje-ruby-na-platformie-cloudportal/ CloudPortal jest elastyczną platformą PaaS, która umożliwia tworzenie i utrzymywanie w jednym środowisku aplikacji przygotowanych w najpopularniejszych językach programowania i korzystających z szerokiej gamy usług. Jednym ze wspieranych środowisk uruchomieniowych jest konfiguracja wspierająca aplikacje Ruby, Rack, Rails i Sinatra.

Artykuł Aplikacje Ruby na platformie CloudPortal pochodzi z serwisu CRN.

]]>
Przygotowanie istniejących aplikacji lub tworzenie nowych dla chmury CloudPortal wymaga poznania wymagań szablonu środowiska uruchomieniowego i możliwości dostosowania go do własnych potrzeb.

Dla aplikacji Ruby i RoR CloudPortal domyślnie wykorzystuje standardowe biblioteki serwera web WEBRick. W sytuacji kiedy aplikacja wymaga bardziej zaawansowanej konfiguracji można skorzystać z funkcjonalności oferowanych przez serwer PhusionPassanger, Puma, Thin lub Unicorn. Uruchomienie aplikacji w niestandardowej konfiguracji wymaga:

  • – dodania odpowiedniego gema serwera do Gemfile,
  • – utworzenia lub zmodyfikowania pliku konfiguracyjnego w folderze config aplikacji (np. config/puma.rb),
  • – utworzenia w folderze głównym aplikacji pliku Procfile, którego obecność informuje komórkę obliczeniową aplikacji o konieczności uruchomienia odpowiednich procesów (np. serwera puma z odpowiednią konfiguracją) dla pożądanego funkcjonowania aplikacji.

Aplikacje uruchomione na Cloudportal przy pomocy szablonu Ruby mogą wykorzystywać wszystkie dostępne w środowisku usługi. Proces przypisywania tworzenia instancji usługi i przypisywania jej do aplikacji jest taki sam jak w przypadku każdego środowiska uruchomieniowego, ale sam proces konfiguracji aplikacji podczas jej uruchamiania jest charakterystyczny dla każdego buildpacka. Dane konfiguracyjne dotyczące przypisanych usług są przekazywane do aplikacji za pomocą zmiennej środowiskowej VCAP_SERVICES. Aplikacja może przy pomocy gema cf-apps-utils odczytać informacje w niej zawarte na podstawie nazwy, tagu lub etykiety. Podczas instancjonowania aplikacji, buildpack Ruby tworzy na podstawie zmiennej VCAP_SERVICES zmienną środowiskową DATBASE_URL, której zawartość jest wykorzystywana do zamiany zawartości pliku database.yml. Aplikacje nie bazujące na RoR również mogą wykorzystać dane zawarte w zmiennych środowiskowych np. vcap_services = JSON.parse(ENV[’VCAP_SERVICES’]).

Środowisko uruchomieniowe Ruby w CloudPortal umożliwia również na wykonanie podczas instancjonowania aplikacji poleceń Rake. Można ich użyć do odczytywania zmiennych środowiskowych i konfiguracji platformy aplikacji lub usług, np. utworzenia wstępnego schematu bazy danych i importu danych. Polecenia powinny znajdować się w plikach .rake w folderze aplikacji lib/tasks. Informacja o konieczności uruchomienia polecenia powinna zostać również umieszczona w pliku manifestu aplikacji.

Twórcy aplikacji dla środowiska Ruby na platformie CloudPortal powinni również zwrócić uwagę na wymagania, jakie buildpack stawia przed każdym uruchamianym programem:

  • – aplikacja musi zawierać pliki Gemfile i Gemfile.lock,
  • – dla aplikacji Rack i Sinatra jest wymagany odpowiedni plik config.ru,
  • – CloudPortal wspiera proces prekompilacji zasobów i może on być automatycznie wykonywany podczas instancjonowania aplikacji. Jest jednak zalecane, aby prekompilacja była wykonywana przed podładowywanie aplikacji. Zapewnia to skrócenie czasu jej uruchamiania i uniknięcie problemów z reinicjalizacją aplikacji podczas prekompilacji.
  • – Platforma CloudPortal może przechwytywać i udostępniać developerowi informacje diagnostyczne z aplikacji, ale muszą być one pisane do STDOUT lub SDRERR. W zależności od wersji Rails buildpack może, ale nie musi automatycznie zainstalować odpowiedni plugin (rails_log_stdout dla Rails 2.x) lub gema (rails_12factor dla Rails 3.x i 4.x). W przypadku Rails 4.x twórca programu powinien dodać rails_12factor do pliku Gemfile.
xx

Dotacje na innowacje. Inwestujemy w waszą przyszłość

Artykuł Aplikacje Ruby na platformie CloudPortal pochodzi z serwisu CRN.

]]>
https://crn.sarota.dev/artykuly/aplikacje-ruby-na-platformie-cloudportal/feed/ 0
7 powodów dla których warto wybrać CloudPortal jako platformę dla aplikacji https://crn.sarota.dev/artykuly/7-powodow-dla-ktorych-warto-wybrac-cloudportal-jako-platforme-dla-aplikacji/ https://crn.sarota.dev/artykuly/7-powodow-dla-ktorych-warto-wybrac-cloudportal-jako-platforme-dla-aplikacji/#respond Thu, 30 Apr 2015 15:14:00 +0000 https://crn.pl/default/7-powodow-dla-ktorych-warto-wybrac-cloudportal-jako-platforme-dla-aplikacji/ W dzisiejszych czasach korzyści z chmury obliczeniowej wydają się oczywiste. Z cloud computingu mogą również skorzystać firmy tworzące oprogramowanie.

Artykuł 7 powodów dla których warto wybrać CloudPortal jako platformę dla aplikacji pochodzi z serwisu CRN.

]]>
Dzięki chmurze użytkownicy aplikacji, czy administratorzy serwerów nie muszą martwić się o kwestie związane z infrastrukturą takie jak: Internet, zasilanie, serwery, macierze dyskowe, systemy operacyjne, kopie zapasowe, utrzymanie ciągłości działania, kwestie bezpieczeństwa danych i wiele innych zagadnień, które są nierozłącznie związane z posiadaniem własnej infrastruktury IT. Firmy mogą się skupić na rozwijaniu podstawowej działalności biznesowej, zlecając wymienione wyżej zagadnienia firmom zewnętrznym.

Firmy tworzące oprogramowanie również mogą skorzystać z modelu cloud computing, aby usprawnić i przyspieszyć tworzenie, testowanie oraz wprowadzanie na rynek swoich aplikacji.  Jednym z najszybciej rozwijających się modeli chmury jest PaaS czyli Platforma jako usługa. W modelu Paas dostawca platformy, taki jak CloudPortal, zapewnia w pełni zautomatyzowane środowisko pracy, obejmujące szeroki zakres kluczowych dla deweloperów  funkcjonalności.

Najistotniejsze z nich to:

  1. Szeroki zakres dostępnych języków programowania i frameworków. W tej chwili CloudPortal umożliwia używanie umożliwia używanie takich języków programowania jak: Java, Python, Ruby, PHP, Golang, nodejs oraz .Net. Dzięki zautomatyzowanym buildpackom język aplikacji jest automatycznie rozpoznawany podczas wgrywania oprogramowania na platformę.
  2. Bazy danych SQL i noSQL w formie dostępnych w każdej chwili wysoko dostępnych usług. Do dyspozycji programistów są: MySQL, PostgreSQL, MongoDB, Redis.
  3. Otwarte standardy – Cloudportal bazuje na otwartych standardach. Niewielkim nakładem pracy można przenieść na ta platformę aktualnie posiadane aplikacje, jak i przenosić do innych środowisk aplikacje tworzone z myślą o platformie Cloudportal.
  4. Skalowalność – w ramach usługi Cloudportal można w płynny i niewidoczny dla użytkownika sposób zwiększać zasoby przydzielone do aplikacji oraz bazy danych. Programy są uruchamiane w oddzielnych, izolowanych instancjach, dzięki czemu mają przydzielane odpowiednie zasoby i nie są narażone na efekt „hałaśliwego sąsiada” ze strony innych aplikacji.
  5. Ciągłość działania – aplikacje mogą mieć wiele instancji, awaria pojedynczej instancji nie powoduje przerwy w działaniu programu. Aplikacje, które mają wiele instancji, są umieszczone w różnych strefach dostępności. Wszystkie komponenty infrastruktury są w pełni redundantne.
  6. Ochrona danych – zapewnia bezpieczeństwo i wysoką dostępnością aplikacji. Poza tym oferuje programistom pełną zgodność dokumentów z obowiązującymi przepisami, umowę powierzenia danych oraz umowę o poufności danych (NDA).
    Cała transmisja danych do aplikacji oraz do baz danych jest szyfrowana. Platforma daje również możliwość implementacji SSO (pojedynczego logowania) do aplikacji na niej umieszczonych.
  7. Market aplikacji – jedną z najciekawszych funkcji, jakie oferuje CloudPortal, jest market aplikacji. Firmy programistyczne mogą nie tylko korzystać z platformy PaaS do rozwijania programów, ale także do ich sprzedaży w powiązanym z platformą Markecie.
Dotacje na innowacje. Inwestujemy w waszą przyszłość

Dotacje na innowacje. Inwestujemy w waszą przyszłość

Artykuł 7 powodów dla których warto wybrać CloudPortal jako platformę dla aplikacji pochodzi z serwisu CRN.

]]>
https://crn.sarota.dev/artykuly/7-powodow-dla-ktorych-warto-wybrac-cloudportal-jako-platforme-dla-aplikacji/feed/ 0
Market aplikacji w chmurze Oktawave https://crn.sarota.dev/artykuly/market-aplikacji-w-chmurze-oktawave/ https://crn.sarota.dev/artykuly/market-aplikacji-w-chmurze-oktawave/#respond Tue, 25 Nov 2014 09:00:00 +0000 https://crn.pl/default/market-aplikacji-w-chmurze-oktawave/ W ramach chmury obliczeniowej Oktawave udostępniony został Market aplikacji. Firmy programistyczne i integratorzy mogą publikować w nim własne aplikacje i odpłatnie udostępniać je klientom w modelu Software as a Service.

Artykuł Market aplikacji w chmurze Oktawave pochodzi z serwisu CRN.

]]>
Stworzenie przez Oktawave Marketu aplikacji związane jest ze zmianą dotychczasowej strategii udostępniania oprogramowania. Dotychczas ten operator platformy IaaS samodzielnie oferował użytkownikom kilkanaście łatwych do uruchomienia i gotowych do użycia aplikacji, takich jak CMS, system zarządzania projektami czy platforma e-commerce. Z czasem jednak potrzeby użytkowników końcowych wzrosły, szczególnie w zakresie dostępności do różnych typów aplikacji oraz ich określonych wersji.

Market aplikacji (http://oktawave.com/marketplace) zastąpił oferowany dotychczas moduł Aplikacje. Firmy programistyczne mogą publikować szablony gotowych aplikacji, określać sposoby ich licencjonowania i oddawać je w ręce użytkowników. Oni zaś mogą wyszukiwać interesujące ich oprogramowanie i za pomocą kilku kliknięć uruchomić je, korzystając ze swojego konta w chmurze Oktawave.

 

 
Korzyści dla klientów i dostawców

Dla użytkownika końcowego znalezienie właściwej aplikacji w Markecie jest bardzo proste. Może on przeglądać listy dostępnych programów – ma do dyspozycji sortowanie i filtrowanie na różne sposoby (m.in. widoki pokazujące polecane, popularne i najnowsze rozwiązania soft-
ware’owe) oraz wyszukiwarkę. Znalezione oprogramowanie może pobierać do katalogu Moje aplikacje na koncie użytkownika Oktawave, uruchamiać je stamtąd, a także komentować i oceniać. Może również uruchomić określone narzędzie wprost z Marketu aplikacji – cały proces jest zautomatyzowany i intuicyjny.

Firmy programistyczne, które mają oficjalny status partnera Oktawave, korzystają  z kreatora, który daje możliwość przygotowania szablonu aplikacji i zamieszczenia go w Markecie. Mają też dostęp do listy utworzonych szablonów, mogą zarządzać licencjami (definiować warunki licencyjne oraz ceny licencji) i przypisywać je do szablonów aplikacji. Poza tym, widok
Moje rozliczenia zapewnia śledzenie kwoty naliczonej na podstawie sprzedanych programów oraz dokonywanie wypłat.

Definiowanie licencji w Markecie aplikacji

Deweloper dodający aplikację może skorzystać z trzech opcji licencyjnych: Standard, CPU oraz BYOL. W pierwszej ustala cenę za godzinę korzystania z danego oprogramowania – to najprostszy i najbardziej zgodny z ideą chmury obliczeniowej model rozliczania. W drugiej (CPU) cena za godzinę jest mnożona przez liczbę procesorów, na których uruchomiona będzie aplikacja. To ważne w przypadku oprogramowania bazującego na rozwiązaniach Microsoft. W trzeciej – Bring Your Own License – deweloper nie definiuje żadnego kosztu za pośrednictwem platformy Oktawave. Może to zrobić np. za pomocą zewnętrznego interfejsu i w ten sposób pobierać opłaty.

 

Oktawave planuje, aby docelowo w Markecie aplikacji znalazły się wszystkie rodzaje oprogramowania potrzebnego w codziennej pracy, m.in.:

– aplikacje finansowe,

– systemy zarządzania relacjami z klientami (CRM),

– platformy współpracy online,

– rozwiązania e-commerce,

– aplikacje do zarządzania projektami,

– systemy zarządzania treścią (CMS),

– platformy edukacyjne.

Wkrótce w Markecie aplikacji możliwe będzie również udostępnianie aplikacji serwerowych, bazodanowych, programistycznych lub sieciowych (także w postaci wirtualnych maszyn – tzw. virtual appliance) przez twórców oprogramowania wspomagającego zarządzanie procesami IT.

 

Jak pobrać aplikację z Marketu?

Aby pobrać lub uruchomić dostępną w Markecie aplikację, należy być zarejestrowanym w systemie Oktawave. Dzięki rejestracji użytkownikowi zostanie nadany odpowiedni zakres uprawnień. Może on wybrać interesującą go aplikację z listy propozycji (sekcje Polecane, Popularne, Najnowsze) lub wyszukiwać je po nazwie, według kategorii lub systemu operacyjnego.

Domyślnie dla danej kategorii prezentowane są najnowsze wersje aplikacji. W miejscu, w którym podawane są szczegóły dotyczące właściwości określonego programu, wyświetlana jest sekcja Powiązane wersje, gdzie można uzyskać dostęp do starszych wersji danego oprogramowania, jeśli istnieją. Szablony aplikacji można pobrać do swojego Katalogu aplikacji – Oktawave nie pobiera za to żadnej opłaty. Na stronie wybranego szablonu znajduje się również opcja do uruchomienia żądanego software’u bezpośrednio z Marketu.

Po uruchomieniu aplikacji konieczne jest doprecyzowanie kilku kwestii, m.in. określenie typu instancji (wybór mocy obliczeniowej i pamięci RAM dla urządzenia, na którym ma działać program) oraz podanie szczegółów instancji (ogólnych i technicznych, np. możliwość włączenia większej liczby instancji naraz). W momencie uruchomienia aplikacji konto użytkownika obciążane jest opłatą zgodną z cennikiem Oktawave, właściwą dla sposobu rozliczania licencji ustalonego przez jej twórcę.

Dariusz Nawojczyk

CMO, Oktawave

Uświadomiliśmy sobie, że udostępniając klientom tylko samodzielnie przygotowane aplikacje, nie damy im prawdziwego wyboru. Dlatego konieczne stało się zaangażowanie całej społeczności deweloperskiej i zaoferowanie klientom końcowym aplikacji w ramach jednej platformy. W ten sposób stworzyliśmy model, w którym programy będą dostępne analogicznie jak w sklepach dla użytkowników urządzeń mobilnych. Dzięki temu dziś chmura typu IaaS może służyć także jako platforma uruchamiania aplikacji biznesowych – na polskim rynku jest to przełom, zarówno dla deweloperów, jak i dla firm poszukujących oprogramowania.

 
Jak dodawać aplikacje do Marketu?

Aby zyskać możliwość publikowania własnego software’u i sprzedawania go w Markecie Oktawave, konieczne jest uzyskanie dodatkowych uprawnień. W tym celu należy zgłosić się do zespołu Oktawave, który przeanalizuje wniosek. Jeśli zostanie rozpatrzony pozytywnie, użytkownik otrzyma bezpłatnie zestaw dodatkowych narzędzi deweloperskich.

Osoba udostępniająca swoją aplikację musi opisać ją we właściwy sposób (nazwa, wersja, logo, opis merytoryczny itd.) oraz wybrać środowisko uruchomieniowe (wersja systemu operacyjnego oraz rekomendowany typ instancji). Twórca oprogramowania sam ustala jego cenę, a za dokonaną sprzedaż Oktawave nie pobiera żadnej prowizji.

Bardzo ważnym elementem jest określenie sposobu licencjonowania udostępnionego programu. Jest to krok opcjonalny, a więc jeśli do opublikowanej aplikacji nie zostanie przypisana licencja, użytkownik nic za nią nie zapłaci. Sposób licencjonowania określonego programu można zmienić po pewnym czasie. Jednak przeprowadzenie tej operacji nie będzie miało wpływu na sposób rozliczania już uruchomionych aplikacji (z podłączoną starą licencją).

O platformie Oktawave

• Oktawave jest innowacyjną platformą infrastruktury na żądanie (IaaS), w ramach której można uruchomić, przetwarzać lub przechowywać dowolne zasoby – stronę WWW, aplikację biznesową, projekt startupowy lub rozwiązanie korporacyjne. Portfolio usług Oktawave obejmuje przede wszystkim środowiska serwerowe w chmurze (OCI), bezpieczny oraz najszybszy na świecie system przechowywania i przetwarzania danych (OVS, OCS), a także środowiska bazodanowe i aplikacyjne.

• Główną przewagą konkurencyjną platformy jest całkowicie autorski system udostępniania zasobów, rozliczania ich oraz zarządzania chmurą. Wykorzystany w nim unikatowy mechanizm Autoskalera zapewnia automatyczne dostosowywanie wielkości infrastruktury do aktualnego obciążenia aplikacji.

• Oktawave to także autorska architektura przechowywania danych na wielu poziomach, pozbawiona awaryjnych i wolnych dysków twardych. W zakresie szybkości dostępu do danych Oktawave jest obecnie najszybszą chmurą obliczeniową na świecie, która w niezależnych testach Cloud Harmony osiągnęła wydajność na poziomie miliona operacji wejścia-wyjścia na sekundę (IOPS).

• W zakresie wykorzystywanych technologii Oktawave współpracuje z takimi partnerami jak:

– centrum danych: ATM,

– warstwa sprzętowa: Dell, HP, Citrix,

– warstwa wirtualizacyjna: VMware,

– warstwa aplikacyjna: Microsoft, Parallels.

• Jako narzędzia webmasterskie i deweloperskie oferuje:

– gotowe środowiska uruchomieniowe (LAMP/WAMP, Ruby, Python, .NET),

– otwarte API oraz wiele mechanizmów ułatwiających wdrożenie (np. snapshoty),

– prekonfigurowane i skalowalne aplikacje (m.in. Joomla!, Drupal, WordPress).

• Oktawave zaufali m.in. tacy klienci, jak Coca-Cola, TUI, AVIVA i Grupa Pracuj.pl.

Dodatkowe informacje:

Dariusz Nawojczyk,

Chief Marketing Officer, Oktawave,

dariusz.nawojczyk@oktawave.com

Artykuł powstał we współpracy z firmą Oktawave.

Artykuł Market aplikacji w chmurze Oktawave pochodzi z serwisu CRN.

]]>
https://crn.sarota.dev/artykuly/market-aplikacji-w-chmurze-oktawave/feed/ 0