Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
SMB Chmura Obliczeniowa
Michail Mokkas
2
Chmura obliczeniowa Model udostępniający zasoby (serwery, dane, aplikacje) w sieci Stwarza iluzję nieskończonych zasobów dostępnych na żądanie Umożliwia naliczanie opłat za korzystanie z ww. zasobów (nie płacimy za niewykorzystane zasoby)
3
Historia 1950 – mainframe-thin client: użytkownicy mogli korzystać ze współdzielonych zasobów (głównie CPU) 1960 – wiele spekulacji na temat przyszłości obliczeniowej, głównie bazujące na małej ilości „mainframeów” i dużej „dumb terminals”. Pomysł, że cały świat mógłby wykorzystywać tylko 15 centrali danych. Amazon usprawniła swoje centra danych używające tylko 10% pojemności, by zostawić miejsce na okresowe zawahania. Powstał pierwszy wzór architektury chmury obliczeniowej. Wystartował Amazon Web Services (AWS). 2008 – Eucalyptus: pierwsza kompatybilna z AWS API platforma do tworzenia środowisk chmur obliczeniowych. Rusza także Google App Engine (beta). Obecnie - szeroka dostępność wydajnych sieci i tanich komputerów oraz urządzeń przechowujących dane jak i ekspansja wirtualizacji sprzętowej oraz architektury bazującej na usługach przyczyniły się do szybkiego rozwoju chmury obliczeniowej
4
Jak działa Komunikacja z usługami a nie ze szczególnym urządzeniem/sprzętem Przeniesienie wszystkich świadczeń usług IT na serwer Umożliwienie stałego dostępu do nich Szybkość procesów wynika z mocy obliczeniowej serwera
5
Dlaczego na mobilne? Pozwala na zlecenie bardziej złożonych obliczeń zewnętrznej usłudze oszczędzając w ten sposób własne zasoby systemowe Umożliwia przetrzymywanie oraz udostępnianie dużej ilości danych, nie zapełniając lokalnych nośników Udostępnia dodatkowe usługi, które mogą wspomagać naszą aplikację
6
Rodzaje Rodzaje wdrożeniowe chmur (według NIST): Prywatne (private)
Wspólnotowe (community) Publiczne (public) Hybrydowe (hybrid)
7
Prywatne Infrastruktura chmury działająca jedynie dla pojedynczej organizacji Może być zarządzana przez tę organizację lub osobę trzecią i być hostowana wewnętrznie lub zewnętrznie Korzystają z niej jednostki biznesowe (działy) firmy Może ułatwić procesy biznesowe, jednak jest potrzebne zaangażowanie w jej poprawne wdrożenie Zwykle nie posiada elementu finansowego, z którego chmury słyną
8
Wspólnotowe Infrastruktura chmury wykorzystywana jest przez wspólnoty lub organizacje, które posiadają wspólne cele/misje Jest zarządzana przez kombinację organizacji wchodzących w skład wspólnoty lub osobę trzecią.
9
Publiczne Zasoby sprzętowe nie są dedykowane pod poszczególnych klientów korzystających z usług firmy dostarczającej chmurę Klient określa, jakie parametry go interesują i płaci dokładnie za to, co zamówił Klient także może w każdej chwili zwiększyć lub zmniejszyć zasoby w dzierżawionym przez siebie środowisku Zmiany zostaną zastosowane natychmiast, bez potrzeby zatrzymywania pracujących aplikacji i maszyn wirtualnych
10
Hybrydowe Połączenie dwóch poprzednich
Część usług i infrastruktury klienta pracuje w chmurze publicznej a inna część w prywatnej
11
Modele Istnieje wiele klasyfikacji chmur obliczeniowych
Najpopularniejsze to: IaaS (Infrastructure as a Service) PaaS (Platform as a Service) SaaS (Software as a Service) NaaS (Network as a Service)
12
Hoteling/Kolokacja Udostępniane nam jest miejsce w serwerowni, prąd, klimatyzacja i dostęp do internetu My kupujemy sprzęt, zabezpieczenia, system operacyjny, oprogramowanie oraz aplikacje My także tym wszystkim zarządzamy Płacimy jedynie za dzierżawę miejsca w serwerowni
13
IaaS Dostarcza klientowi infrastrukturę informatyczną (sprzęt oraz serwisowanie) My dostarczamy system operacyjny, oprogramowanie oraz aplikacje Najczęściej wykorzystuje się maszyne wirtualną, którą dostawca może przenosić na mniej obciążone fizycznie serwery Płacimy za faktycznie zużytą moc obliczeniową serwerów Przykłady: Amazon EC2 oraz Azure Virtual Machines
14
PaaS Dostajemy gotowy i dostosowany do naszych potrzeb komplet aplikacji Nie martwimy się o system operacyjny a jedynie zajmujemy się pisaniem i utrzymaniem aplikacji Klient ma dostęp do interfejsu poprzez program kliencki (zazwyczaj przeglądarkę) Płacimy za zużycie zasobów (czas procesora, miejsce na dysku, liczbę zapytań i transfer danych) Przykłady: Google AppEngine, Windows Azure (obecnie Microsoft Azure)
15
SaaS Mamy zapewniony sprzęt, system operacyjny oraz finalną aplikację
My korzystamy tylko z funkcjonalności danej aplikacji Nie mamy wpływu na rozwój aplikacji Zwykle wiąże się z opłatą każdego użytkownika za miesiąc jej użytkowania Przykład: Google Apps, SkyDrive, Hotmail
16
NaaS Zapewnia nam usługi związane z transportem sieciowym
Zazwyczaj wiąże się z wirtualizacją sieci i ich dzierżawą poprzez wykorzystanie protokołów, jak np. OpenFlow
17
XaaS X = jakakolwiek usługa Usług przybywa
RaaS (Research as a Service) CaaS (Communication as a Service) SaaS (Storage as a Service)
18
Zarządzanie chmurą Chmura wymaga adaptacyjnych narzędzi zarządzającyh oraz monitorujących, które poradzą sobie w tym dynamicznym środowisku Wymagane jest użycie specyficznych parametrów do pracy z komponentami chmury (np. sprzęt pośredniczący), które często są niewidoczne dla klientów Zarządzanie opłatą za dostęp do zasobów i usług stanowi istotne wyzwanie dla publicznych chmur
19
Zalety Zwiększone możliwości Zwiększona wydajność Mniejsze koszty
Łatwa skalowalność Pozwala skupić się na bardziej kreatywnych aspektach naszej pracy
20
Wady Bezpieczeństwo danych
Obawy dotyczące dostępności danych i aplikacji Uzależnienie od dostawcy usług chmury obliczeniowej
21
GAE Google App Engine: platforma chmury obliczeniowej wykorzystywana do hostowania aplikacji webowych na serwerach Google’a Oferuje możliwość skalowania wymaganych zasobów dla potrzeb działających w niej usług/aplikacji Jest to platforma jako usługa (PaaS)
22
Wymagania i limity Potrzebne jest konto Google
Mamy możliwość rejestracji do 25 aplikacji Korzystanie z GAE jest darmowe, o ile nie przekroczymy pewnych granic Po przekroczeniu musimy zapłacić za dodatkowy przydział Odnowienie limitów odbywa się codziennie o północy
23
Limity kont. 1
24
Wspierane języki Aktualnie można pisać aplikacje w językach:
Python (w tym framework Django i inne) Java (w tym Java Server Pages i inne) PHP Go W przyszłości ma ich być więcej Ewentualnie można skorzystać z opcji “Custom Runtime”, który umożliwia pisanie w dowolnym języku wspierającym żądania HTTP
25
Restrykcje Otrzymujemy wgląd (read-only) do systemu plików na App Engine App Engine może wykonywać polecenia otrzymane wyłącznie za pośrednictwem zapytań HTTP Aplikacje Javowe mogą korzystać tylko z części listy wszystkich klas dostępnych w standradowej edycji JRE ->
26
GAE Datastore Służy do przechowywania danych po stronie serwerowej
Korzystamy z języka podobnego do SQL, zwanym GQL, który niestety nie obsługuje odpowiednika „join” Możemy korzystać z interfejsu Twig Object Datastore, co umożliwi asynchroniczne i nie blokujące wykonywanie zapytań Alternatywnie można korzystać z Google Cloud SQL (wspiera Java DataBase Connectivity - interfejs programowania łączący do baz danych za pomocą języka SQL; odpowiednik ODBC)
27
Google Cloud Endpoints
Umożliwia proste i zautomatyzowane generowanie bibliotek służących do sprawnej komunikacji pomiędzy aplikacją frontendową i backendową Ponadto mamy możliwość korzystania z uwierzytelniania Oauth 2.0
28
Google Cloud Messaging for Android
Usługa umożliwiająca przesyłanie danych z serwera do aplikacji frontendowych na urządzeniach Android Wiadomości mogą ważyć do 4 KB Przykłady wiadomości: (notyfikacje o nowej wersji oprogramowania, wiadomość komunikatora) W 2017 r. została zastąpiona Firebase Cloud Messaging.
29
Zależności Stworzyć moduł backendowy W settings.gradle dodać:
ustawić localhost:8080 w run configuration W settings.gradle dodać: include ‘:apka’, ‘:backend’ W build.gradle:apka dodać do dependencies: compile project(path: ‘:backend’, configuration: ‘android-endpoints’) W build.gradle:backend dodać: endpoints{ getClientLibsOnBuild = true getDsicoveryDocsOnBuild = true } Na koniec: “Sync Project with Gradle Files”
30
Projekt: Frontend Frontend (aplikacja na Android):
File -> New -> Android Application Project Reszta jak zwykle ;)
31
Projekt: Backend Backend (aplikacja po stronie chmury):
Dodajemy jako nowy moduł File > New > New Module... > Google Cloud Module API Key oraz Project Number otrzymujemy z Google API console (można pozostawić puste na razie)
32
Entity Struktura, która odzwierciedla element przechowywany w Datastore (wiersz) Nasza klasa entity musi być Ponieważ Datastore nie posiada kolumn, posiadają one atrybuty (pola naszego entity) Dla przykładu - Entity osoba posiada Entity Kind = Osoba, Entity Key = PESEL oraz atrybuty: imię, nazwisko, wzrost itd.
33
Entity: Person (backend)
Przy wykorzystaniu Key potrzebne jest dodanie do wygenerowanego end-pointa kawałek kodu sprawdzający czy nie jest on Null.
34
Entity: Person (backend)
Należy kliknąć prawym przyciskiem myszy na klasę Person i następnie wybrać Google -> Generate Cloud Endpoint from Java Class Uzyskamy w ten sposób automatycznie wygernerowaną klasę PersonEndpoint wraz z metodami potrzebnymi do korzystania z DataStore
35
Przetestowanie projektu
W MainActivity.java umiesczamy:
36
Odpalenie lokalnie Należy wybrać Run > Edit Configurations > + > App Engine DevAppServer Następnie w edytorze wyznaczyć konfiguracji nazwę oraz podać moduł “backendowy”, który powinien odpalać Na koniec należy wybrać “synchronize with build.gradle configuration”
37
Uruchomienie Zaczynamy od backendowego projektu:
Run as -> Web Application Po ukończeniu uruchamiania app engineu możemy odpalić aplikację androidową Jeżeli wybraliśmy lokalne odpalenie app engine, musimy odpalić aplikację w emulatorze
38
Rezultat Wystarczy wejść na jedną z poniższych stron:
localhost:8888/_ah/admin localhost:8888/_ah/admin/datastore localhost:8000/datastore Uzyskamy wgląd do entites, które znajdują się w bazie danych Przed odpaleniem frontendu będzie pusta, po odpaleniu doda Entity Kind: Person Po kliknięciu List Entities będziemy mogli zobaczyć nowy rekord z atrybutem name, jaki dodaliśmy
39
Rezultat kont. 1
40
Przykład - MyBean.java
41
Przykład - MyEndpoint.java
Można automatycznie wygenerować MyBeanEndpoint na podstawie klasy MyBean.java . (opcja: Generate Cloud Endpoint from Java Class)
42
Przykład - WEB-INF: index.html
43
Rezultat Po odpaleniu backendu i skierowaniu przeglądarki na adres: localhost:8080.
44
API Explorer Naprowadzając przeglądarkę na localhost:8080/ah_/api mamy możliwość przejżenia metod w naszym API.
45
Przykład: request - response
Dane są przesyłane w formacie JSON.
46
Pobranie danych z DataStore
Za odbieranie danych w naszym projekcje frontendowym odpowiedzialna jest klasa: collectionResponsePerson.java Można ją znaleźć w paczce wygenerowanych klas endpoint-libs/libpersonendpoint... Ma za zadanie przetworzenie (przeparsowanie oraz zserializowanie) obiektu w formacie JSON przesyłanego poprzez endpoint (za pośrednictwem HTTP)
47
Pobr. danych z DS kont. 1 Więcej na ten temat:
48
Objectify Jest to biblioteka usprawniająca wymianę danych poprzez API, które zostało specjalnie zaprojektowane pod Google App Engine datastore. Pozwala na zapisanie, odzyskanie, usunięcie oraz odpytywanie naszych własnych typów objektów. Przykład: Aby skorzystać z objectify należy dopisać do dependencies: compile ‘com.googlecode.objectify:objectify:5.0.3’
49
Dodawanie danych poprzez skrypt
Istnieje możliwość skorzystania z gotowego skryptu do zapełnienia naszego DataStore’a danymi: Wystarczy uruchomić i podać plik csv jako arg1 oraz nazwę encji jako arg2 Przykładowy plik csv dla encji Person:
50
Dodawanie danych kont.1 Do pliku web.xml w projekcie backendowym dodajemy:
51
Dodawanie danych kont. 2 Dodatkowo musimy dorobić plik bulkloader.yaml :
52
Sprawdzenie danych Po uruchomieniu skryptu powinniśmy otrzymać następujący rezultat:
53
Postawienie na chmurze Google
54
Zmiany (z lokalnej wersji)
W skrypcie należy zmienić url na: W backendowym projekcie w pliku appengine-web.xml: <application>naszeAppID</application> W frontendowym projekcie należy zmienić w pliku CloudEndpointUtils.java wartość LOCAL_ANDROID_RUN z true na false Uruchamiamy backendowy projekt za pomocą opcji Deploy to App Engine, następnie uruchamiamy frontendową aplikację (jak zwykle)
55
Infrastruktura
56
Search API GAE dysponuje Search API
Przydatne do wyszukiwania danych dotyczących elementów naszej implementacji, które z kolei są opisane w specjalnym modelu do indeksowania dokumentów posiadających strukturę Użytkownik wpisuje słowo kluczowe (może być częścią nazwy lub opisu) a w rezultacie otrzymuje elementy pasujące Dodatkowo umożliwia wyszukiwanie geolokalizacyjne obiektów bez konieczności pisania własnego rozwiązania
57
Task Queues W przypadku, gdy musimy wykonać jakieś dodatkowe czynności w związku z nadesłanym zapytaniem i są one czasochłonne, możemy wykorzystać usługi Task Queue, aby zakoleikować te zadania i wykonać je asynchronicznie Dodatkowe rezultaty mogą być przesłane w późniejszym terminie (GAE decyduje kiedy) Alternatywnie nasz kod może na żądanie odpytywać i odbierać rezultaty z zaległych zadań
58
Scheduled Tasks Poza przetwarzaniem zapytań od mobilnych klientów synchronicznie (Google Cloud Endpoints) oraz asynchronicznie (Task Queues), nasz kod po stronie GAE może co jakiś czas wykonywać pewne zaplanowane zadania Do planowania zadań wykorzystujemy usługę Cron Service Przykładem zastosowania może być co kilkuminutowa aktualizacja listy najlepszych graczy naszej gry
59
Cron Service (przykład)
60
Mail API Aplikacje App Engine mogą przesyłać wiadomości w imieniu administratorów aplikacji lub uzytkowników posiadających konto Google Pliki appengine-web.xml oraz web.xml Dodatkowo potrzebna jest klasa MailHandlerServlet
61
Mail API (wysyłanie)
62
Przykład: Projekt GAE (frontend i backend)
Frontend rejestruje się do backendu Możliwość wysyłania wiadomości do podłączonych urządzeń poprzez usługę Google Cloud Messaging for Android
63
Przykład kont. 1 Należy wpisać API key oraz numer projektu:
API key można uzyskać po uruchomieniu Google Cloud Messaging for Android pod adresem: projekt>/apiui/api Następnie należy wybrać tab Credentials i stworzyć nowy klucz Public API access lub OAuth Numer projektu widoczny jest w tabie overview (lewy górny róg).
64
Przykład kont. 2 Przestawiamy LOCAL_ANDROID_RUN z false na true (znajduje się w projekcie frontendowym w klasie: CloudEndpoints) Startujemy backend jako web service Uruchamiamy frontend jako aplikację androidową na emulatorze Jeżeli nie wpisaliśmy API key podczas tworzenia projektu, mamy możliwość jego dodania i modyfikacji w klasie MessageEndpoint (wartość API_KEY)
65
Działanie
66
Działanie kont. 1
67
Więcej na temat GAE
68
Firebase Platforma wykorzystywana do budowy aplikacji mobilnych oraz webowych. Wcześniejsza wersja (Envolve) umożliwiała aplikacjom dodawanie funkcjonalności czatu. Była jednak wykorzystywana często do synchronizacji i przesyłania informacji, które nie były zwykłymi wiadomościami komunikatora. W 2011 roku nastąpił podział firmy co skutkowało powstaniem Firebase. Przejęta przez Google w 2014 r. Wieloplatformowa (m.in. Android, iOS)
69
Firebase - Usługi Niektóre z usług jakie oferuje Firebase:
Realtime Database – baza danych (posiada REST API) Authentication – uwierzytelnienie użytkowników po stronie klienta (można korzystać z social login providerów jak m. in. Facebook czy Google) Cloud Functions – rozszerza aplikację o backendowe możliwości wykorzystując m. in. Google Cloud Services Hosting – umożliwia hostowanie stron (plików HTML, CSS, Javascript i innych) Google Analytics – daje wgląd do informacji dotyczących użytkowanie aplikacji i statystyk dotyczących interakcji użytkowników. Cloud Messaging – stosowane w celu tworzenia notyfikacji oraz rozsyłania informacji. AdMob – tworzenie reklam w celu uzyskania źródła dochodów w naszej aplikacji.
70
Korzystanie z Firebase - kroki
Zarejestrować konto na: Dodać projekt Przepisać “package name” naszej apki Wygenerować SHA-1 keytoolem Zarejestrować apkę i ściągnąć google-services.json Zmodyfikować plik gradlowe według wskazówek na stronie (po rejestracji) Zmodyfikować reguły Realtime Database.
71
Korzystanie z Firebase – kroki 2
72
Korzystanie z Firebase – kroki 3
73
Firebase - przykład
74
Firebase – przykład kont. 1
75
Firebase – przykład kont. 2
76
Rezultat - apka
77
Rezultat na stronie
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.