Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Latex 18.86 KB | None | 0 0
  1. \normalfont%Szablon do wprowadzenia do MikTeXa (w środowisku TeXnicCenter)
  2. \voffset=-2cm
  3. %\hoffset=-0.5cm
  4. \documentclass[a4paper,12pt,twoside,openany,final]{article}
  5. \usepackage{graphicx}
  6. \usepackage{rotating}
  7. \usepackage{textcomp}
  8. \usepackage[T1]{fontenc}
  9. \usepackage[utf8]{inputenc}
  10. \usepackage{times}
  11. \usepackage[polish]{babel}
  12. \usepackage {array}
  13.  
  14. %\usepackage[pdftex]{colortbl}
  15.  
  16.  \textwidth=15.0cm
  17.  \textheight=24.6cm
  18. % %\setcounter{page}{-120}
  19. % \parskip.5cm
  20. \def\rok#1{\smallbreak\item[] {\bf #1}\nobreak}
  21. \def\tocname{\normalsize\bf Spis treści}
  22. \def\refname{\Large\bf Literatura}
  23. \newcommand{\Section}[1]{\vspace{-8pt}\section{\hskip-1em.~~#1}\vspace{-3pt}}
  24. \newcommand{\Subsection}[1]{\vspace{-3pt}\subsection{\hskip-1em.~~#1}\vspace{-3pt}}
  25. \newcommand{\Subsubsection}[1]{\vspace{-1pt}\subsubsection{\hskip -1em.~~#1}\vspace{-3pt}}
  26.  
  27.  
  28. % %\hyphenpenalty=10000     % nie dziel wyrazów zbyt często
  29. % \clubpenalty=10000            % kara za sierotki
  30. % \widowpenalty=10000           % nie pozostawiaj wdów
  31. % %\brokenpenalty=10000     % nie dziel wyrazów między stronami
  32. % %\exhyphenpenalty=999999      % nie dziel słów z myślnikiem
  33. % \righthyphenmin=3         % dziel minimum 3 litery
  34.  
  35. % \tolerance=4500
  36. % \pretolerance=250
  37. % \hfuzz=1.5pt
  38. %  \hbadness=1450
  39.  
  40.  
  41.  
  42. \begin{document}
  43. \def\figurename{Rys.}
  44. \def\tablename{Tab.}
  45.  
  46. \title{\large Wydział Matematyczno-Przyrodniczy \\Uniwersytet Kardynała Stefana Wyszyńskiego\\
  47. \vspace*{4cm}
  48. {\LARGE Wdrożenie aplikacji internetowej w chmurze obliczeniowej Amazon Web Services}}
  49. \author{
  50. Bartosz Gronkiewicz\\
  51. Nr alb.: 91074\\
  52. Informatyka
  53. }
  54. \date{}
  55. \maketitle
  56. \thispagestyle{empty}
  57. \vspace*{3cm}
  58. \hspace{9cm}
  59. \begin{tabular}{l}
  60. Praca magisterska wykonana\\
  61. pod kierunkiem naukowym\\
  62. dr Jakuba Gąsiora
  63. \end{tabular}
  64. \vspace*{2.5cm}
  65. \begin{center}
  66. \date{Warszawa, dnia 01.03.2018 r.}
  67. \end{center}
  68.  
  69. \newpage
  70. \tableofcontents%\clearpage
  71. %\sloppy
  72.  
  73. %\parskip.5cm
  74.  
  75. \newpage
  76. \Section{Wstęp}
  77.  
  78. \textbf{Praca dotyczy} zagadnienia chmury obliczeniowej: opisu podstawowych zagadnień, porównaniu popularnych dostawców ze szczególnym uwzględnieniem Amazon Web Services oraz sposobie wdrażania aplikacji internetowej w tejże usłudze.
  79.  
  80. \textbf{Celem pracy} jest scharakteryzowanie chmury obliczeniowej, a w szczególności opisanie jednej z najbardziej popularnych chmur jaką jest Amazon Web Services, a następnie wdrożenie w niej aplikacji internetowej, którą będzie komunikator służący do wysyłania wiadomości pomiędzy użytkownikami.
  81.  
  82. \textbf{Zadanie badawcze} pracy polega na porównaniu znanych dostawców usługi chmury obliczeniowej oraz przeprowadzeniu testów wydajnościowych wdrożonej aplikacji i wycenie kosztów aplikacji przy danych założeniach.
  83.  
  84. \textbf{Praca została podzielona} na cztery rozdziały. Jej układ jest następujący:
  85.  
  86. \textbf{Rozdział pierwszy} dotyczy ogólnej charakterystyki chmury obliczeniowej i związanych z nią zagadnieniami.  Część ta zawiera najważniejsze pojęcia dotyczące chmur obliczeniowych jak i różne ich rodzaje.
  87.  
  88. \textbf{W rozdziale drugim} najważniejszych dostawców usługi chmury obliczeniowej oraz porównano pod względem jakości dostępne technologie przez nich oferowane.
  89.  
  90. \textbf{Rozdział trzeci zawiera} szczegółowe omówienie usługi oferowanej przez firmę Amazon - Amazon Web Services. Przedstawiono panel administracyjny tejże platformy, omówiono najpopularniejsze dostępne technologie oraz przedstawiono przykłady serwisy korzystające z AWS.
  91.  
  92. \textbf{W czwartej części} przedstawiono implementację aplikacji internetowej. Opisano jej działanie, technologie jakie zostały wykorzystane do jej utworzenia oraz sposób jej wdrożenia w chmurze obliczeniowej. Oprócz tego w rozdziale tym zawarto wycenę kosztów zaimplementowanej aplikacji oraz przeprowadzono jej testy wydajnościowe.
  93. \newpage
  94.  
  95. \Section{Pojęcie chmury obliczeniowej}
  96. W dzisiejszych czasach temat chmury obliczeniowej (ang. Cloud Computing) jest każdemu znany. Wykorzystuje ją wiele dużych firm czy nawet pojedynczych osób. Każdy z nas prawdopodobnie na co dzień korzysta z narzędzia używającego rozwiązań chmury obliczeniowej, np. poprzez oglądanie ulubionego serialu czy też słuchanie muzyki.
  97.  
  98. \subsection{Definicja i najważniejsze pojęcia}
  99. Chmurą obliczeniową nazywane jest dostarczanie usług obliczeniowych, takich jak serwery, bazy danych, sieci, oprogramowania, itp. za pomocą Internetu. Firmy, które oferują chmury obliczeniowe są tzw. dostawcami. Podobnie jak w przypadku prądu czy też wody, tutaj również usługodawca pobiera opłaty biorąc pod uwagę w jakim stopniu usługa jest wykorzystywana.
  100.  
  101. Pierwszym dość ważnym pojęciem, o którym warto wspomnieć przy opisywaniu chmury obliczeniowej jest wirtualizacja. W tym wypadku oznacza to, że na kilku maszynach wirtualnych, które działają na przykład na jednym komputerze możemy uruchomić kilka różnych systemów operacyjnych. Jedną z większych korzyści jaką daje nam wirtualizacja jest redukcja kosztów spowodowana możliwością uruchomienia kilku systemów na jednej fizycznej maszynie. Oprócz tego inną ważną zaletą jest to, że dzięki temu dany system jest uniezależniony od działania fizycznego komputera. W przypadku awarii sprzętu zasoby mogą zostać w łatwy sposób przeniesione do innej maszyny, nie przerywając przy tym pracy.
  102.  
  103. Kolejnym pojęciem wartym uwagi jest serwer wirtualny. Innymi słowy jest to maszyna wirtualna. Udostępnia on zasoby w dokładnie ten sam sposób w jaki robi to serwer fizyczny, z tą różnicą, że działania te są zwirtualizowane. Kilka tego typu serwerów działają na zasobach udostępnionych przez jeden system taki Linux czy Windows Server. Przykładem tego typu usługi jest EC2 (Elastic Computing Cloud) oferowany przez firmę Amazon, o którym mowa w dalszej części.
  104.  
  105. Inny istotny termin to tak zwany dysk blokowy (ang. block storage). Jest to odpowiednik twardego dysku fizycznego komputera. Dzięki niemu możliwy jest zapis oraz odczyt danych w postaci bloków. Istotnym faktem jest, że po każdym starcie wirtualnego serwera w chmurze obliczeniowej, należy także podłączyć do niego dany dysk, na którym następnie można zainstalować aplikacje. Jeden dysk blokowy może być podłączony równocześnie z kilkoma serwerami. W przypadku Amazon Web Services takim dyskiem jest EBS (Elastic Block Store).
  106.  
  107. Oprócz dysku blokowego jest także dysk obiektowy (ang. object storage), czyli magazyn danych. Różnica między tym, a poprzednim dyskiem jest taka, że ten drugi umożliwia zapis oraz odczyt całych obiektów bez uwagi na rozmiar. Dzięki temu bardzo dobrze nadaje się do przechowywania statycznych plików takich jak zdjęcia, wideo czy dźwięki. Kolejną różnicą jest to, że o ile w dysku blokowym najbardziej liczy się szybkość operacji, w dysku obiektowym najważniejsza jest możliwość magazynowania dużych obiektów.
  108.  
  109. Następnym pojęciem, na które warto zwrócić uwagę jest parametr określający wydajność dysków blokowych - IOPS (ang. Input/Output Operations Per Second), czyli operacje wejścia/wyjścia na sekundę. Jest to ilość operacji zapisu oraz odczytu danych jaką może wykonać dysk.
  110.  
  111. Inne pojęcie, które należy wyjaśnić, to hiperwizor (ang. hypervisor). Pozwala pojedynczemu sprzętowi fizycznemu na obsługiwanie wielu maszyn wirtualnych oraz przechowuje wszystkie niezbędne informacje wymagane do poprawnego ich działania. Popularnymi hiperwizorami są na przykład: VMware ESXi, Xen, Microsoft Hyper-V.
  112. Innymi ważnymi pojęciami są IaaS (ang. Infrastructure as a Service), PaaS (ang. Platform as a Service) a także SaaS (ang. Software as a Service), które zostały wyjaśnione poniżej.
  113.  
  114. \subsection{Modele}
  115.  
  116. Chmury obliczeniowe można dzielić według różnych założeń. Jednym z nich jest podział na modele "X jako usługa", gdzie X może oznaczać infrastrukturę, platformę, oprogramowanie, centrum danych, sprzęt i inne. Wyróżniamy trzy najważniejsze typy: IaaS, PaaS oraz SaaS, o które zostały wytłumaczone poniżej.
  117. \newline
  118.  
  119. Pierwszym z modeli jest tzw. Infrastruktura jako usługa zamiennie nazywana także HaaS (ang. Hardware as a Service). Jest to typ usługi, gdzie użytkownik dostaje od dostawcy, krótko mówiąc, serwery w chmurze. Dostawca udostępnia działające w różnych systemach operacyjnych obrazy maszyny wirtualnej. Dzięki temu, użytkownik może później obraz ten konfigurować oraz uruchamiać dany program. Opłaty najczęściej są naliczone za czas działania zaimplementowanej aplikacji. Oprócz tego w środowisku IaaS istnieją także inne usługi, takie jak np. przestrzeń dyskowa. Opłata za to świadczenie jest zwykle naliczana na podstawie wykorzystanego miejsca na dysku. Przykładem IaaS może być Amazon EC2 (ang. Elastic Compute Cloud).
  120.  
  121. Kolejnym modelem chmury obliczeniowej jest PaaS, czyli Platforma jako usługa. Najważniejszą czynnikiem, który odróżnia ten model od poprzedniego jest to, że nie ma potrzeby ingerencji w wnętrzności systemu w takim stopniu jak w przypadku IaaS. Administracją systemem operacyjnym zajmuje się w pełni platforma, więc nie ma konieczności robienia tego ze strony użytkownika, który może zająć się wyłącznie tworzeniem aplikacji. Jednakże ma to jedną wadę - trzeba dostosować się pod technologie wspierane przez danego dostawcę PaaS.
  122.  
  123. Trzeci model chmury obliczeniowej to SaaS (Oprogramowanie jako usługa). Model ten to aplikacje, które są dostępne na życzenie. Z badań wynika, że jest to najpopularniejszy wzorzec chmurowy. Jest to spowodowane tym, że jedyne czego potrzeba do uruchomienia danej aplikacji, to przeglądarka internetowa. Dzięki SaaS nie jest koniecznie instalowanie i uruchamianie aplikacji przez organizacje na swoich komputerach. Eliminuje to koszty zakupu, dostarczania i konserwacji sprzętu, a także licencjonowania, instalacji i wsparcia oprogramowania. Przykładami aplikacji opartych o tą architekturę są: Dropbox, Zendesk, Slack czy Salesforce.com.
  124.  
  125. \subsection{Rodzaje}
  126.  
  127. Ze względu na umiejscowienie zasobów tworzących chmurę, a także możliwości użytkowania, chmury obliczeniowe można podzielić na trzy rodzaje. Są to chmury publiczne, prywatne oraz hybrydowe.
  128.  
  129. W chmurze publicznej usługodawcy pozwalają klientom korzystać ze swoich usług za pośrednictwem Internetu. Podstawową jej cechą jest możliwość udostępnienia wszystkim klientom. Aplikacje są implementowane w infrastrukturze zabezpieczanej przez dostawcę i będącej w jego rękach. Istotną cechą tego rodzaju jest to, że można z niej korzystać od razu po dokonaniu transakcji. Chmury publiczne są najczęściej wykorzystywane są między innymi w branży e-commerce, gdzie firmy oferują aplikacje, z których korzysta duża liczba klientów.
  130.  
  131. Chmura prywatna ma podobne zastosowania jak chmura publiczna, jednakże usługi oraz dane zarządzane są poprzez daną instytucję, tylko i wyłącznie dla organizacji klienta. Jej zasoby są używane wyłącznie przez jedno przedsiębiorstwo. Chmura ta może fizycznie istnieć w centrum danych organizacji, która wykupiła tę usługę. Zazwyczaj chmura prywatna powoduje większe koszty administracyjne, natomiast dzięki niej klient ma większą kontrolę nad infrastrukturą i obawy związane z bezpieczeństwem są mniejsze. Infrastruktura może znajdować się na terenie lub poza terenem organizacji.
  132.  
  133. Ostatni rodzaj, to chmury hybrydowe zwane także mieszanymi. Są one połączeniem publicznej oraz prywatnej chmury obliczeniowej. Łączy ona najlepsze funkcjonalności tych dwóch gatunków. Charakteryzuje się większą elastycznością niż sama chmura publiczna czy prywatna. W tej infrastrukturze dane mogą być transportowane pomiędzy chmurami publicznymi i prywatnymi. Dana aplikacja, którą posiada klient pracuje zarówno w jednej jak i w drugiej infrastrukturze.
  134.  
  135. \subsection{Najważniejsze zalety}
  136.  
  137. Korzystanie z rozwiązania jakim chmura obliczeniowa niesie za sobą wiele korzyści. Niektóre z nich zostały opisane poniżej:
  138.  
  139. \begin{itemize}
  140. \item Elastyczność - usługa, oparta na chmurze jest w pełni skalowalna. Oznacza to, że w przypadku, gdy wzrośnie zapotrzebowanie na zasoby, można w łatwy sposób na przykład zwiększyć pojemność chmury wykorzystując zdalne serwery usługi.
  141. \item Automatyczne aktualizacje oprogramowania - dzięki temu, że serwery znajdują się w chmurze, klient korzystający z usługi nie musi przejmować się uaktualnieniami usługi, z której korzysta, ponieważ dostawca regularnie wdraża modyfikacje oraz poprawki.
  142. \item Redukcja kosztów - z powodu braku potrzeby posiadania sprzętu po stronie klienta, przetwarzanie w chmurze obniża wysokie koszty jego zakupu i utrzymania. Oprócz tego płatności za usługi są oparte o model subskrypcji, a opłaty są relatywne do tego w jakim stopniu usługa jest wykorzystywana.
  143. \item Większa możliwość współpracy - dzięki temu, że dana usługa znajduje się w chmurze, można do niej uzyskać łatwiejszy dostęp, przez co ludzie współpracujący ze sobą z łatwością mogą na przykład edytować konkretne pliki, a nawet robić to w tym samym czasie.
  144. \item Praca z dowolnego miejsca - jeśli osoba ma połączenie z Internetem, a usługa, z której korzysta znajduje się w chmurze, bez względu na to, gdzie aktualnie się znajduje bez problemu może wykonywać swoją pracę. Dzięki temu firmy mogą oferować pracownikom bardziej elastyczną pracę, na przykład poprzez pracę zdalną nawet z innej części świata.
  145. \item Bezpieczeństwo - firma korzystająca z cloud computingu niemalże wszystkie dane gromadzi w chmurze, przez co nie musi obawiać się na przykład o stratę laptopa z ważnymi informacjami. Bez względu na to co stanie się ze sprzętem, można w szybki sposób uzyskać dostęp do swoich danych. Istnieje nawet możliwość zdalnego wyczyszczenia danych z zagubionego komputera, aby nie dostały się w niepowołane ręce.
  146. \item Przyjazne dla środowiska - oprócz korzyści związanych firmą, przetwarzanie w chmurze sprzyja także środowisku. Kiedy chmura danej organizacji potrzebuje zmian, pojemność serwera skaluje się. Dzięki temu zużywane jest tylko tyle energii, ile potrzeba.
  147. \end{itemize}
  148.  
  149. \subsection{Zastosowania}
  150. Prawdopodobnie najbardziej popularnym wykorzystaniem chmury jest środowisko testowe i programistyczne. Dzięki przetwarzaniu w chmurze łatwo dostępne są środowiska dostosowane do Twoich potrzeb.
  151.  
  152. Kolejnym częstym wykorzystaniem chmury jest analiza ogromnych ilości danych strukturalnych i niestrukturalnych, tak zwanego big data. Korzystając z tego rozwiązania można skupić się jedynie na analizie olbrzymich danych bez przejmowania się o to czy zasoby sprzętowe są wystarczające.
  153.  
  154. Inne dość popularne zastosowanie, to przechowywanie plików. Dzięki trzymaniu swoich plików w chmurze obliczeniowej, wgląd do nich jest w każdym momencie możliwe (o ile mamy dostęp do urządzenia z Internetem).
  155.  
  156. Równie częstym zastosowaniem jest tworzenie kopii zapasowej. Proces ten zawsze był dość uciążliwy i czasochłonny, ponieważ wiązał się z utrzymywaniem zestawów sprzętowych (między innymi dysków twardych). Tworzenie kopii zapasowej oparte o rozwiązania chmury, choć nie rozwiązuje wszystkich problemów, na pewno jest dużym krokiem w przód w tej dziedzinie. Teraz można automatycznie przesyłać swoje dane w każde dowolne miejsce w sieci bez problemów z pojemnością, dostępem czy bezpieczeństwem.
  157.  
  158. \newpage
  159. \Section{Przegląd dostawców chmury obliczeniowej}
  160.  
  161. \subsection{Google Cloud Platform}
  162. \subsection{Microsoft Azure}
  163. \subsection{Amazon Web Services}
  164. \subsection{Polscy dostawcy}
  165. \newpage
  166.  
  167. \Section{Szczegółowa charakterystyka usług Amazon Web Services}
  168.  
  169. \subsection{Przedstawienie panelu administracyjnego}
  170. \subsection{Omówienie głównych dostępnych technologii}
  171. \subsection{Przykłady serwisów korzystających z usług Amazona}
  172. \newpage
  173.  
  174. \Section{Implementacja aplikacji}
  175.  
  176. \subsection{Opis działania}
  177. \subsection{Wykorzystane technologie}
  178. \subsection{Struktura katalogów}
  179. \subsection{Testy wydajnościowe}
  180. \subsection{Koszt utrzymania aplikacji przy danych założeniach}
  181. \newpage
  182.  
  183. \Section{Zakończenie}
  184. \newpage
  185.  
  186. \thebibliography{}
  187. \small
  188.  
  189. \section*{Ksiązki}
  190.  
  191. \rok{\bf 2009}
  192. \bibitem{Mok78}
  193. George Reese, Cloud Application Architectures. Building Applications and Infrastructure in the Cloud, O'Reilly Media, 2009
  194.  
  195. \rok{\bf 2010}
  196. \bibitem{Mok85}
  197. Jeff Barr, Host your web site in the cloud: Amazon Web Services made easy, SitePoint, 2010
  198. \bibitem{elo}
  199. Gautam Shroff, Enterprise Cloud Computing: Technology, Architecture, Applications, Cambridge University Press, 2010
  200.  
  201. \rok{\bf 2011}
  202. \bibitem{BsT98}
  203. Jothy Rosenberg, Arthur Mateos, Chmura obliczeniowa. Rozwiązania dla biznesu, Wydawnictwo Helion, Polska 2011
  204. \bibitem{elo}
  205. Duckett Jon, HTML and CSS: Design and Build Websites, Wiley, 2011
  206.  
  207. \rok{\bf 2013}
  208. \bibitem{GTC96}
  209. Giovanni Bianco i in., INTERNET Cloud computing Przetwarzanie w chmurach, C.H. Beck, Polska 2013
  210. \rok{\bf 2015}
  211. \bibitem{csz05}
  212. Mike Cantelon i in., Node.js w akcji, Wydawnictwo Helion, Polska 2014
  213. Jeff Dickey, Nowoczesne aplikacje internetowe. MongoDB, Express, AngularJS, Node.js, Wydawnictwo Helion, Polska 2015
  214. \bibitem{daz05}
  215. Andreas Wittig, Michael Wittig, Amazon Web Services in action, Manning Publications, USA 2015
  216.  
  217. \rok{\bf 2016}
  218. \bibitem{csz05}
  219. Mardan Azat, Express.js. Tworzenie aplikacji sieciowych w Node.js, Wydawnictwo Helion, Polska 2016
  220.  
  221. \rok{\bf 2017}
  222. \bibitem{csz05}
  223. Sandro Pasquali, Node.js. Projektowanie, wdrażanie i utrzymywanie aplikacji, Wydawnictwo Helion, Polska 2017
  224.  
  225. \section*{Artykuły internetowe}
  226.  
  227. \bibitem{csz05}
  228. Amazon, 10-Minute tutorials, https://aws.amazon.com/getting-started/tutorials/, 09.12.2017
  229. \bibitem{csz05}
  230. Amazon, AWS Documentation, https://aws.amazon.com/documentation/, 09.12.2017
  231. [13] Yakov Fain, Angular 2. Programowanie z użyciem języka TypeScript, Wydawnictwo Helion, Polska 2017
  232. \bibitem{csz05}
  233. Kyle Banker i in., MongoDB w akcji, Wydawnictwo Helion, Polska 2016
  234. \bibitem{csz05}
  235. Maciej Kuźniar, Jakie narzędzia administracyjne daje mi chmura obliczeniowa?, https://www.spidersweb.pl/2014/07/narzedzia-administracyjne-daje-chmura-obliczeniowa.html, 09.12.2017
  236. \bibitem{csz05}
  237. Maciej Kuźniar, Słownik pojęć związanych z chmurą obliczeniową, czyli wszystko, co musisz wiedzieć o cloud computingu, https://www.spidersweb.pl/2014/04/cloud-computing.html, 09.12.2017
  238. \bibitem{csz05}
  239. Mateusz Okulewicz, Deploy Angular 2 + node.js website using AWS, https://codeburst.io/deploy-angular-2-node-js-website-using-aws-1ac169d6bbf, 09.12.2017
  240. \bibitem{csz05}
  241. Ahmed Haque, Deploying a MEAN App to Amazon EC2, https://scotch.io/tutorials/deploying-a-mean-app-to-amazon-ec2-part-1, 09.12.2017
  242. \bibitem{csz05}
  243. Mirek Burnejko, Za co płacimy w Amazon Web Services, https://chmurowisko.pl/za-co-placimy-w-amazon-web-services/, 09.12.2017
  244.  
  245. %\listoffigures
  246. %\listoftables
  247. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement