Sei sulla pagina 1di 43

Designing & Developing Applications on the Cloud (CT071-3.

5-3-DDAC)

INDIVIDUAL ASSIGNMENT
DESIGNING & DEVLOPING APPLICATIONS ON THE CLOUD

(CT071-3.5-3-DDAC)

TITLE: CARNIVAL CRUISES

NAME: William Momanyi Nyabuti

ID: TP029908

INTAKE: UC3F1410SE

LECTURER: DR.KALAI ANAND A/L RATNAM

HAND IN DATE: 10th August 2015

WILLIAM M. NYABUTI - TP029908 1


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

ACKNOWLEDGEMENT
Firstly, the developer would like to offer his sincere appreciation to the Almighty for allowing him
to reach this far and staying healthy throughout the study period of this subject, DDAC. Secondly,
his lecturer, Dr. Kalai Anand A/L Ratnam for his assistance and supervision since the beginning
of this assignment and introduction to the newly brought up Microsoft Azure Cloud Platform up
to this point of submitting this report. His expertise on the subject of this project has been helpful
and motivating in developing the latter.

The developer would like to extend regards to the entire APU fraternity for allowing students to
access the Microsoft products and get to learn real life based scenarios or problems and how to
provide appropriate solutions in terms of costs savings and efficiency.

It was a great opportunity and exposure for attending different talks and seminars regarding the
Microsoft Azure Cloud Platform. Besides the assignment project it with deeper interest that the
developer feels the need and importance of having such levels of technology and troubleshooting
methods. The developer therefore looks forward to get to learn and implement more solutions,
manage and troubleshoot applications via the cloud platform.

WILLIAM M. NYABUTI - TP029908 2


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Table of Contents
ACKNOWLEDGEMENT .................................................................................................................................. 2
1.0 Introduction ...................................................................................................................................... 5
2.0 Project Plan............................................................................................................................................. 7
3.0 Design ..................................................................................................................................................... 9
3.1 Cloud Design Process ....................................................................................................................... 10
3.1.1 Repository and Unit of Work Pattern ....................................................................................... 10
3.1.2 Transient Fault Handling Application Block (Retry Pattern) .................................................... 10
3.2 Architectural Diagram ...................................................................................................................... 11
3.3 Design Considerations ...................................................................................................................... 12
3.4 Modelling .......................................................................................................................................... 13
4.0 Implementation.................................................................................................................................... 14
4.1 Publishing Application to Azure....................................................................................................... 14
4.1.1 Azure Booking Service ............................................................................................................... 15
4.1.2 Web Admin ................................................................................................................................ 18
4.1.3 Storage Table, Queue, Blob ...................................................................................................... 21
4.1.4 SQL Database............................................................................................................................. 22
4.2 Application Scaling ........................................................................................................................... 24
4.2.1 Cloud Service ............................................................................................................................. 24
4.2.2 Azure Website ........................................................................................................................... 24
4.3 Testing Cloud Applications ............................................................................................................... 25
4.4 Investigate and Analyze Application (Plan, Collect and Interpret Diagnostics and Instrumental
Data) ....................................................................................................................................................... 25
4.5 Application Development ................................................................................................................ 27
4.5.1 UI Enhancements ...................................................................................................................... 27
4.5.2 Performance Enhancements ..................................................................................................... 27
4.5.3 Azure Active Directory .............................................................................................................. 27
5.0 Deployment Guide ............................................................................................................................... 28
5.1 Connecting Azure Booking Services to Azure Storage and SQL Database ..................................... 28
5.2 Booking ............................................................................................................................................. 28
5.3 Email Notification ............................................................................................................................. 29
6.0 Test Plan & Testing Discussion............................................................................................................. 30
6.1 Booking Test plan ............................................................................................................................. 30

WILLIAM M. NYABUTI - TP029908 3


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

6.2 Local Website Plan ........................................................................................................................... 30


6.3 Email Sender Test Plan ..................................................................................................................... 35
6.4 Active Directory User Test Plan ....................................................................................................... 36
7.0 Critical Evaluation and Conclusion ...................................................................................................... 38
7.1 Critical Evaluation............................................................................................................................. 38
7.2 Conclusion ........................................................................................................................................ 40
7.3 Personal Reflection .......................................................................................................................... 41
8.0 References ............................................................................................................................................ 42
9.0 Appendix............................................................................................................................................... 43
Appendix A: Username and Password .................................................................................................. 43
Appendix B: Azure Cloud Resource Site URLs ....................................................................................... 43
Appendix C: Tools and Frameworks used in the Project ...................................................................... 43

WILLIAM M. NYABUTI - TP029908 4


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

1.0 Introduction
Using the Microsoft’s Azure Cloud Platform, this project together with its documentation has been
developed under the scope of illustrating, designing and considerations to take when developing
web applications and deploying them on the cloud for various reasons. Throughout the project
documentation, details of this project will be further illustrated with appropriate explanations of
both diagram designs, actual project demonstration of the web applications development brought
up and its deployment.

The case study given is based on two of the largest cruise operators in the world, Princess Cruises
and its counterpart Cunard Line. They both carry about 1.5 million passengers annually on about
20 luxury ships. Princess Cruises offers more than 115 cruise itineraries that sail to all seven
continents and call at 350 ports globally. On the other hand, Cunard forces on travel in the Atlantic
Ocean and Mediterranean Sea. Both are owned by Carnival Corporation, which has its
headquarters in Valencia, California.

The customers are to have an option of choosing their own cabin since this was a letdown in the
previous system being used. By outsourcing the IT infrastructure, a platform that will be affordable
and easy to manage has been proposed to be brought up. The platform being proposed here will
not have to contain two data centers separately, instead, through use of Azure account on the cloud,
hosting can be managed easily and across different clients at different times.

According to the plan being brought up for the proposal, the following outlines the requirements
and significant goals expected on the new platform:

Provisioning: The application must be developed and provided under the Microsoft Azure
Platform.

Maintainability: The application must be able to accept upgrades and perform other maintenance
tasks while multiple tenants are using it.

Monitoring: The application must be monitored at all times to ensure no problems arising and if
there is any, identify and troubleshoot them. Each tenant will be monitored how they are using
the application.

WILLIAM M. NYABUTI - TP029908 5


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Availability: The tenants want the application to be constantly available, perhaps with guarantees
defined in an SLA. The activity of other tenants should not affect the availability of the application.

Scalability: The application scales to meet the demand of the application.

WILLIAM M. NYABUTI - TP029908 6


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

2.0 Project Plan


Carnival Corporation looks forward to offer the new features without having to incur costly
investment in on-premises infrastructure. The proposed web application as a solution, will allow
an individual tenant to view the application as if it was their own Microsoft’s Azure account. This
feature has been made possible due to various reasons;

 There is a spike in booking demands at certain times especially during holiday seasons thus
the application should support the extreme fluctuations in its functioning
 The application should be able to scale the solution to meet the needs bookings during peak
seasons.
 To accelerate set up and deployment of solution.
 Manage solutions to keep costs down.
 Assurance and reliability through Failover Management.
 Segment Tenant Web site Tenants by Host Headers or without SSL communication.

For the execution and collection of customer data while using the solution provided, some
assumptions were considered. For instance, the local database will be held responsible for handling
the customer details when booking transactions are being made. This is to ensure security measures
are considered, under the Finance department.

The users will be able to view different sets of data from the cruise bookings that were done
previously, the number of seats that have already been occupied or booked for a certain cruise as
well as the registrar of the passenger.

The administrative side of the Website will be able to handle the login and registration of users for
the first time accessing the application. This will also enable the administrator to activate or
deactivate one’s account, reset password suppose one forgets his or hers. The admin is also capable
of adding certain users to a particular user groups, to act as back up when administrator is not
available to handle all the other users (customers) accessing the Website.

Upon receiving a booking request, the booking engine will be able to offer the flight requests by
providing for tickets once the payment has been made and confirmed.

The project plan is as follows;

WILLIAM M. NYABUTI - TP029908 7


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Task Name Duration

Structure Planning of Website 4 days


Admin Side Planning 3 days
Development phase (Coding)
-Website User Interface and Design 4 days
-Booking Engine 3 days
-Email confirmation notice 2 days
-Active Directory (AD) 1 day
-Azure Configuration (Scaling, Instances, 2 days
Back up)
Testing
-Website Integration and Booking 3 days
-Booking engine and storage 3 days
-Entire system testing upon completion 4 days
Documentation 3 days

TOTAL DAYS 32 days

Table 1: Project overall plan

WILLIAM M. NYABUTI - TP029908 8


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

3.0 Design
The Carnival Corporation Cruise Website is developed using ASP.NET Web Forms C-sharp (C#).
The development tool used is Visual Studio 2013 (Update 5). The Operating System running the
development tool is Windows 8.1 Professional x64 bit, which later on was upgraded to Windows
10 Pro.

Figure1: visual studio solution structure

WILLIAM M. NYABUTI - TP029908 9


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

3.1 Cloud Design Process

3.1.1 Repository and Unit of Work Pattern


In the entire project, there are different domain models and classes. The term “repository and unit
of work” mentioned here will be used to create a point of interact between the data accesses layer
and the business logic layer in an application. This (data access layer) will be running the database
operations.

3.1.2 Transient Fault Handling Application Block (Retry Pattern)


The term “transient” here refers to the occurrence in a cloud environment which will allow the
application to handle any failures that might arise when an attempt to a service or network resource.

Detection Strategy Windows


Azure Storage

Execute
Retry Policy Action SQL Database

Retry Strategy Windows Azure Caching

Windows Azure Service


Bus

Figure 2: Components involved in a Transient Fault Handling Application Block Pattern


Source: http://msdn.microsoft.com/en-us/library/dn440719(v=pandp.60).aspx

The stability of the application is meant to be given a high priority. For the website to work
continuously with the booking side or engine on the cloud service, the application has to be able
to expect and rectify ‘HTTP’ type of errors.

The steps explained below will show on different ways to handle the transient errors:

WILLIAM M. NYABUTI - TP029908 10


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

 Defining a retry policy – RetryPolicyFactory.cs


This class is for retrial purposes when one of the web pages fail to load. It creates a delay
in seconds from the first attempt and the second one.
 Defining a retry strategy – HttpTransientErrorDetctionStartegy.cs
This type of error returns the status codes that shows “resource not found”. The codes are
transient.
 Executing an operation with a retry policy – WebAPIHelper.cs
This class handles all the Web API service calls to the booking page.

3.2 Architectural Diagram

Figure 3: Architecture of the cloud management

WILLIAM M. NYABUTI - TP029908 11


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

3.3 Design Considerations


Securing Links – Safer Website URL Routing

Developing a website on ASP.NET platform enables a user friendly URL feature which is issued
by default once one launches a new project. Having a quick user friendly URL enables the
developer work with Route Redirections efficiently, apart from providing good search engine
optimization features on the web application.

Data Operations – Dealing with Concurrent Read and Writes

In order to simplify the data queries and to also provide an easier way of manipulating search
queries by the use of Language-Integrated Query (LINQ). This eliminates the need to write a
separate store procedure to perform inter-table queries.

Booking Engine – Azure Compute Worker Role

Having the Booking engine as part of the application will act as a backend process server that runs
code such as .NET framework. This will not need IIS that is normally used for website publishing.
A “Worker Role” gets rid of the need to have that additional layer of IIS components compared to
the Web Role.

Loading Appropriate Volume of Data for Testing

From the use of any database in storing of data, it must be tested on the capacity of data it can
handle at a given time on its operation. For a better testing of the SQL database on Microsoft’s
Azure Cloud Platform, the test data should be done on a real-like world volume on actual running
websites and applications. The Carnival Corporation has a number of cruises booking to handle
on daily basis. Reducing the bottlenecks on the database should cater for ensuring that the database
is able to handle the incoming requests especially during holiday seasons which will be the peak
of bookings done. The response time should not be delayed as the number of users increase when
booking.

WILLIAM M. NYABUTI - TP029908 12


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Through the Database Initializer provided by the Entity Framework, the developer is to seed data
in to the database whenever the initialization takes place. The database should have the Update
and Add function which will be loading new data in while in use.

3.4 Modelling
A model in this case will refer to the simplified booking and making reservations and overview of
the entire cruise web application. The below diagram shows the relation between the entities;

The model only shows the main interaction between the cruises booked, booking made from the
passenger and confirmation. This is an illustration on what happens while still under the local host.

{} Carnival Cruises

Confirm Booking
Ticket

Cruises Booking Passenger

Figure 4: Drawing illustration of the domain model

WILLIAM M. NYABUTI - TP029908 13


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

4.0 Implementation
4.1 Publishing Application to Azure
During the implementation phase, there are two projects that were deployed to Microsoft Azure;
Web administration and its database.

The Azure Management Portal is accessed by using Microsoft Account with an active subscription
which is paid for accordingly. For the first time using, the user is entitled to a free trial version.
Under this account, the developer can access his application, create new ones and deploy others
from different sources (MSDN 2015).

Figure5: Published Applications in Azure

WILLIAM M. NYABUTI - TP029908 14


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

4.1.1 Azure Booking Service


The project uses the Cloud which in this case is being referred to as Azure Cloud Service. The
components covered here will be; Cloud Services, SQL Database, Storage Table, Queue and
Blob.

The portal here was used to create and provide a hosting service for the Cloud Services provided
to run the web application.

Figure6: Microsoft Azure Publishing Tool step i

WILLIAM M. NYABUTI - TP029908 15


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure7: Microsoft Azure Publishing Tool step ii

Figure8: Microsoft Azure Publishing Tool step iii

WILLIAM M. NYABUTI - TP029908 16


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure9: Microsoft Azure Publishing Tool step iv

Through the Visual Studio Tool, the application can be directly uploaded once done. The
developer will deploy by selecting the “Publish” option under “Build”.

WILLIAM M. NYABUTI - TP029908 17


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure10: Sample of publishing a project to Azure

4.1.2 Web Admin


The project uses the Visual C# that lies under “Web” then select “ASP.NET Web Application”.
This will provide a Project Template with Web Forms. From the Web Forms the Azure
components managed here are;

 Azure Active Directory (AD)


 Azure Web Site

Before creation of the project, there is a default Active Directory that exists from the Azure account
management portal once set up. The completion of this set up will provide the domain that is used
as an authentication endpoint for the website.

The settings for Authentication is changed to Organizational Accounts. This is illustrated from the
diagrams below.

WILLIAM M. NYABUTI - TP029908 18


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure11: ASP.NET Website with Organizational Account Setup i

Figure12: ASP.NET Website with Organizational Account Setup ii

WILLIAM M. NYABUTI - TP029908 19


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure13: ASP.NET Website with Organizational Account Setup iii

The project is the set up to be hosted in the cloud by selecting the wizard option provided under
the “Host in the Cloud” checkbox.

WILLIAM M. NYABUTI - TP029908 20


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure14: Azure Website Setup to the cloud

There are options that are to be taken note on; the ‘Region’ where the traffic of the web site will
be located at. Since the developer is based in Malaysia, the region provided here will be
Southeast Asia.

4.1.3 Storage Table, Queue, Blob


From here, the set up will be done on the Microsoft Azure management portal. The following
screenshots will illustrate on how the storage and access keys are obtained to be used by the
developed application.

Figure15: Azure Storage Setup

WILLIAM M. NYABUTI - TP029908 21


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure16: Azure Storage Access Keys

4.1.4 SQL Database


Setting up of the database, SQL Database is also done on the Microsoft Azure management portal.
Creation of a new database is followed by a server which is selected to be in the same region as
the web admin; for this case we earlier on selected Southeast Asia. By enabling the server and
database within the same geographical region will save on the costs incurred on providing the
bandwidth and also data latency. The developer then obtains the connection strings to allow
linkage between the web application and its database.

WILLIAM M. NYABUTI - TP029908 22


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure17: SQL Database Setup

Figure18: SQL Database Connection Strings

WILLIAM M. NYABUTI - TP029908 23


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

4.2 Application Scaling


When scaling what the application will handle and at what times, the developer achieves this
through the Microsoft Azure Management Portal. Under the “SCALE” menu, one gets to put the
required scale settings.

4.2.1 Cloud Service


The cloud service offered here allows different scaling rates of the web applications with their
databases. The monitoring of the website changes depending on the rate of scaling set by the user.
The metric monitoring is to check on the CPU performance in running the application on cloud.
When the CPU is highly utilized, the performance is increased to a higher rate and when the CPU
is underutilized, the scaling automatically reduces.

Figure19: An example of the scaling and instances setting on the application

4.2.2 Azure Website


The Web Admin side in Azure is used in managing the staff that have been permitted access to
ruin and monitor the applications. This includes the databases as well. The scaling is also done
from this admin side of the azure. Scaling only takes place whenever it is necessary so as to enable

WILLIAM M. NYABUTI - TP029908 24


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

sharing of resources and whenever more than one users are allowed to access the administrative
side for maintenance purposes.

In cases that Azure hosting subscriptions runs out, there is always the virtual machine option that
can allow flexibility in configuring the CPU and memory usage.

4.3 Testing Cloud Applications


4.4 Investigate and Analyze Application (Plan, Collect and Interpret Diagnostics and
Instrumental Data)
The web API end point is monitored so that in case there are any failures that might arise while
the application is running, it will be recorded in the dashboard of the Azure management portal.
The report is shown under a graphical representation. Different items are displayed here; the CPU
processing progress and the response time of the web application(s) of all worker roles who are
hosted in that specific cloud service.

Figure20: Monitoring showing the application being hosted

To add on, the website can also be configured with an additional monitoring domain to ensure
that it can be accessed from different geographical region(s).

WILLIAM M. NYABUTI - TP029908 25


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure21: Monitoring the Database being hosted

Figure22: Dashboard showing the Database being hosted

WILLIAM M. NYABUTI - TP029908 26


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

4.5 Application Development


This phase identifies some of the programming features that were implemented:

4.5.1 UI Enhancements
 Calendar / Date Selector

A jQuery + Bootstrap template that allows easy navigation with flexibility in preselecting dates

On Departure dates, further booking details.

 Autocomplete Textbox for “Personal Details”

A jQuery + Bootstrap template that allows the autocomplete of previously used details such as
emails and usernames or bookings made previously on same account.

4.5.2 Performance Enhancements


The website caching was implemented for those cruises that are one way and have a repository
pattern.

4.5.3 Azure Active Directory


The Microsoft Azure Active Directory used was to manage all the users that are accessing the
administrative side through accredited privileges.

WILLIAM M. NYABUTI - TP029908 27


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

5.0 Deployment Guide


5.1 Connecting Azure Booking Services to Azure Storage and SQL Database
Azure platform uses SQL database and the storage is configured locally before the application has
been deployed and hosted on the cloud platform.

Figure23: The connection of web app solution with the database

5.2 Booking

Figure24: Connecting the booking made to link with the database.

WILLIAM M. NYABUTI - TP029908 28


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

5.3 Email Notification

Figure25: Sample code showing the email notification alert after booking.

The email body is made up of different combined files such as “.htm”, “.txt” and the logo of the
carnival cruises company.

WILLIAM M. NYABUTI - TP029908 29


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

6.0 Test Plan & Testing Discussion


Under the testing phase, different testing plans will be brought up and carried out to test if the
application meets the requirements of the clients and working efficiently as expected.

The basic functions of the application that will be tested are as follows:

 New user registration


 Search for cruises
 Make or manage booking
 Manage booking as a registered user and new guest
 Confirmation of booking done
 Administrative side viewing of the booking details
 Managing the Active Directory (AD) i.e. create, add, update, delete, change password of
users
 Access controls from the User’s group

6.1 Booking Test plan


Booking tests are done by running the ASP.NET Web API 2 implementation. From the local host,
the APIs are called through the “.cs” files.

6.2 Local Website Plan


Before uploading the application solution on to cloud platform, the website will be tested locally
to ensure no errors or bugs are present.

Google chrome was used to carry out the local test plans.

No Login is needed when running this locally.

WILLIAM M. NYABUTI - TP029908 30


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure26: Web-Home Page

Figure27: Web-Cruise selection page

The URL changes whenever a new page is opened but it still maintains the same format with
different parameters.

WILLIAM M. NYABUTI - TP029908 31


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure28: Web-Bookings selection page

WILLIAM M. NYABUTI - TP029908 32


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure29: Web-Filling Booking personal details page

WILLIAM M. NYABUTI - TP029908 33


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure30: Web-Filling Booking personal details page

The above screenshots shows the auto feature of the website feature “bootstrap” that
automatically adjusts its size depending on the size of the browser or can fit well when using
mobile phone and other smart devices.

WILLIAM M. NYABUTI - TP029908 34


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

6.3 Email Sender Test Plan


The email role that confirms the booking is run under the Blob, Queue and Table from the database.

Figure31: email confirmation and validations files

Figure32: Sample codes for email confirmation

WILLIAM M. NYABUTI - TP029908 35


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

To ensure that the email will be working, there should be records in the SQL Database done
through the booking and stored in the Booking table. This table should then point to the Booking
tables that will be linked according to each user selections and respective email addresses.

Figure33: Sample of an email confirmation

6.4 Active Directory User Test Plan


The Azure Active Directory is where the administrator gets to assign new users who can manage
the cloud hosted application just as the administrative privileges. The limit of tasks here can be
limited too and different users given less priority than others or equal.

The functionalities tested under this phase were such as creating new users, edit users, changing
or resetting of passwords, activating or deactivating users.

Figure34: Managing users through Active Directory

WILLIAM M. NYABUTI - TP029908 36


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

Figure35: Creating new users through Active Directory

WILLIAM M. NYABUTI - TP029908 37


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

7.0 Critical Evaluation and Conclusion


7.1 Critical Evaluation
This phase analyses the overall experience gained and learnt by the developer from using the
Microsoft Azure cloud platform.

Provisioning

Microsoft Azure has been set up to provide access to multiple tenants from different applications
that are being hosted on the cloud platform. The application is set to cater for multi-tenancy to
enable this feature. The risks to be faced are also covered when multi-tenancy is activated incase
a part of the website fails.

Maintainability

Through the feature of sharing the application across multiple tenants, the codes in this case are
also shared across different tenants. This shows that the same version of application is being run
by different parties, including when there is an update, it has to be shared across the same too.
Once there is an update to be carried out, the developer or the overall administrator in this case
will have to debug the errors, update and then relaunch to the cloud to ensure safety measures and
minimize chances of the application crashing.

Monitoring

The application will be monitored through integration and insights to the multi-tenancy. Generally,
the Carnival Corporation will set limits on how many booking can be done at a certain time and
considering the storage space provided, maximum limits will monitor until when exceeded, the
administrator will be notified.

Availability

The applications that are hosted through the Azure cloud platform are accessible at any time once
they have been activated online by the developer. This ensures the individual tenants can access
whenever needed and share utilities across different geographical locations. However, depending

WILLIAM M. NYABUTI - TP029908 38


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

on the maximum limit some resources can be used, this might lead to throttling of the storage
capacity provided and queues. The response time can be affected and become slower at times.

Scalability

From the access privileges that has been provided by the Azure account across different tenants
and user groups, the application can be well put into consistent functioning by setting up the
appropriate “application scaling” as explained under chapter 4.

Customizability

The extent to which Azure accounts can be customized to satisfy own needs is limited at the
moment. Once the application has been developed and deployed, adding own codes by the shared
user groups might bring up errors and alter the normal running of the application for other tenants
accessing the same.

WILLIAM M. NYABUTI - TP029908 39


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

7.2 Conclusion
Throughout the development of the solution cruise website application, the entire project has been
successfully completed through combining of different approached in system development and
tools. From the research point of view, designing and developing of applications which will be
hosted on the cloud, comprises of critical considerations. These considerations are both from the
organization’s demands or requirements from the clients and some from the developer’s side; costs,
security, ease of approach and deployment, troubleshooting and end user satisfaction.

Through the use of Microsoft’s Azure Cloud platform in deployment of applications to be hosted
on cloud has many benefits that are easily achieved compared to the previous application hosting
on cloud. The main advantage to be faced here is the breaking down of the whole application into
sub-components that can be uploaded separately into the cloud platform and shared across different
user groups. During the application maintenance or upgrade, this can be done by splitting the
application into two or more instances whereby one can be running while the other one being
upgraded or under maintenance. As the developer will be monitoring the upgrade, the second
instance of the application that is currently running can be monitored to check if the performance
is the same as the one under maintenance.

From the hosting of several applications on the cloud platform, it is critical to observe how the
scaling and monitoring is being set up. Wrong and inappropriate scaling of the applications can
end up increasing the costs being charged and how efficient the application will be delivering its
functions. Lack of satisfaction by the end user or clients will end up having the organization
running at a loss compared to the costs subscribed for the hosting services. This shortcoming can
be addressed by having a proper knowledge on the subject matter as it will lead to make the rightful
choices on what configurations to be made and mode of deployment. The main consideration here
will be saving costs and ensuring efficient application deployment.

WILLIAM M. NYABUTI - TP029908 40


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

7.3 Personal Reflection


Besides the usual working on the development and setting up of web application. It my first time
as a developer to come across cloud-based application development and its deployment. Working
with products from Microsoft is an additional advantage since most of its developer tools are user
friendly and compatible with majority of the third party applications being used and enough
resources that act as sources of information. The Microsoft Azure Cloud platform is a very recent
product launched and made available to ease the work of most developers and to enable easier
management of their work done. The product is still having updates from time to time on its
services provided and this is a great benefit to whichever organization that deals with application
development, either small or large. Another advantage gained from using Microsoft’s product is
the available free education and tutorial provided through Microsoft’s websites.

Overall working to deliver this project has been a challenging experience at times especially during
troubleshooting whenever unexpected error(s) arising. However, the class tutorials provided by
the lecturer and random consultations from colleague assisted in learning from mistakes too. From
the web application developed for the Carnival Corporation, I have acquired some ideas that the
same project can be modified and extended through merging the same to be a mobile application
for easier portability and wide range of access by end users.

In conclusion of the module itself, I would like to thank my lecturer Dr. Kalai for his efforts in
providing us the Azure accounts with certain amount of paid subscriptions to ensure that the
maximum knowledge out of the entire Azure portal has been gained and extra testing and
management has been done, the tutorial and troubleshooting ideas during the tutorial classes. It is
my utmost expectation to start working more with other cloud hosting services besides the Azure
Cloud platform because with the current rapid changes in technology, most companies and
solutions are provided through the cloud. This is highly driven by the amount of workforce, costs
and physical space saved when using cloud solutions.

WILLIAM M. NYABUTI - TP029908 41


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

8.0 References
Azure Documentation (2014) Get started with Application Insights [Online] Available from:
http://azure.microsoft.com/en-us/documentation/articles/app-insights-getstarted/ [Accessed: 18 July
2015]

Microsoft Developer Network (2014) Connection Resiliency / Retry Logic (EF6 onwards) [Online]
Available from: http://msdn.microsoft.com/en-us/data/dn456835.aspx [Accessed: 10 July 2015]

MSDN (2015) Architecture Blueprints [Online] Available from:


<http://msdn.microsoft.com/dn630664#fbid=rVymR_3WSRo> [Accessed: 10 July 2015]

Scott Guthrie, Mark Simms, Tom Dykstra, Rick Anderson, Mike Wasson (2014) Building Cloud
Apps with Microsoft Azure: Best Practices for DevOps, Data Storage, High Availability, and More
(Developer Reference). Microsoft Press

Tyler Doerksen (2013) Table Storage 2.0 – Queries [Online] Available from:
<http://blog.tylerdoerksen.com/2013/01/03/table-storage-v2-queries/> [Accessed: 12 July 2015]

WILLIAM M. NYABUTI - TP029908 42


Designing & Developing Applications on the Cloud (CT071-3.5-3-DDAC)

9.0 Appendix
Appendix A: Username and Password
Web (Local and Individual Account)

Username: momanyi0@hotmail.com

Password: 6623iamwill

Web Admin (Cloud/ Organizational Account)

URL: https://manage.windowsazure.com/@momanyi0hotmail.onmicrosoft.com

1st Username: momanyi0@hotmail.com

Password: 6623iamwill

2nd Username: willyadmin2@momanyi0hotmail.onmicrosoft.com

Password: Futo0045

Appendix B: Azure Cloud Resource Site URLs


Active Directory domain: momanyi0hotmail.onmicrosoft.com.

Appendix C: Tools and Frameworks used in the Project


 Internet Explorer Version 11.0.9600.17914
 Google Chrome Version 44.0.2403.130 m

WILLIAM M. NYABUTI - TP029908 43

Potrebbero piacerti anche