MASARYK UNIVERSITY
FACULTY OF INFORMATICS
Kentico CMS on
Amazon Web Services
Bachelor Thesis
Andrej Galád
Blacksburg, spring 2014
Author’s Claim (in Czech)
Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Andrej Galád
Thesis supervisor: Mgr. Štěpán Kozák
Acknowledgments
I would like to thank my thesis supervisor Mgr. Štěpán Kozák as well as my consultant Ing. RNDr. Barbora Buhnová for their suggestions and help with the thesis structure. Additionally, I would like to thank Ing. Dominik Pinter for his guidance regarding the requirements and used technologies. Finally, I would like to thank my mother Mária Galádová for her time and patience dedicated to the review of my thesis.
Summary
The goal of my thesis is to create a software solution that would allow an automatic integration of Kentico CMS with various Amazon Web Services. A significant portion of this process involves researching the possibilities that Amazon Web Services offer, suggesting potential solutions and implementing a set of tools that will provide said functionality.
Keywords
Amazon Web Services, Cloud computing, Kentico CMS, Automation, Integration, Windows Presentation Foundation, AWS SDK for .NET
Table of Contents
1 Introduction
The world of technology is in constant flux, never stagnating, always changing. New technologies arise almost every day, rendering the ones that have been well established for years obsolete. This drive to evolve, progress and innovate is deeply enrooted in human nature, which becomes even more apparent in such a vibrant domain as technology is. During the past few years, there has been a massive shift in software development from classic, standalone desktop applications towards network-centric software and cloud computing targeting the multitude of devices varying from desktop computers to mobile devices. Nowadays, software is being treated much less as a product (SaaP1) and much more as a service (SaaS2), which brings numerous benefits and advantages to both selling and buying parties. For software vendors, this new approach helps eliminate distribution costs for new software and expand its customer base; reduces its piracy; enables its usage monitoring and greatly facilitates its support mainly because all the software is being installed, upgraded and in case of software bugs fixed by its supplier without user’s knowledge. For user, the major advantages of SaaS include much higher availability of software, no installation and administration inconveniences; and no compatibility issues [1]. Because of these benefits but also out of fear of being left behind by competition most of the software companies were forced to embrace the change and adjust their products for network-centric use to handle more efficiently increasingly more demanding requirements that the evolution in technology necessarily brings. In recent years, the qualities that have been the most demanded by customers are high availability and scalability for reasonable price, which is why many companies turn to cloud computing to meet them. Kentico Software has long recognized the potential behind the investment in cloud technologies and as such has been offering a possibility to deploy its product – ASP.NET-based CMS3 – on Windows Azure, Microsoft cloud platform, since 2011 [2]. However, in order to cover a bigger portion of the market and offer variability to its customers, the company decided to extend its cloud coverage to Amazon Web Services (AWS), one of the first and the most advanced publicly available cloud computing infrastructure service on the market [3].
2.1 Practical part
The practical part of my thesis consists of two Visual Studio solutions. Kentico AWS Manager is the main deliverable of these two. KAM is a Windows Presentation Foundation project, which is a graphical subsystem for rendering user interfaces in Windows desktop application [4]. WPF uses xml-like markup language - XAML4 - to generate and display graphical controls, as well as regular C# classes which serve as code-behind. Just like WinForms, WPF predecessor and another popular framework by Microsoft for desktop application development, WPF also allows the developer to manage controls and their attributes and respond to potential events. One of the most popular design patterns usually associated with WPF desktop applications is Model View ViewModel pattern. Bearing many similarities with Model View Controller design pattern from whom it was derived, it clearly distinguishes and separates application logic from presentation logic. Although at this point Kentico AWS Manager can’t be considered a pure MVVM application, it was written with this concept in mind and as such could be very easily transformed should the situation require so. Another factor that was taken into account is the fact that this is an interactive application. Therefore, all the KAM’s operations are run asynchronously, which prevents blocking UI thread5. In order to achieve this, KAM relies on Task Parallel Library, a framework that provides powerful abstraction built on top of low-level system threading.
The second deliverable is Kentico AWS Utilities. This .NET solution contains three independent projects where each one serves a different purpose. Kentico AWS Installer is a console application that is run with administrator privileges. It is mainly responsible for automating environment configuration and software installation. Much like in the case of Kentico AWS Manager, KAI also runs its operations asynchronously and thus fully benefits from fast Amazon infrastructure by running. Kentico AWS API is a web application that primarily serves as a message passing service between Amazon virtual machine and Kentico AWS Manager. KAA’s messages are provided in JSON6 format. Final project in Kentico AWS Utilities solution is Kentico AWS Analytics. This project contains both implementation and tests for Amazon NoSQL database provider.
Share with your friends: |