首页 > > 详细

ACIT 4640讲解、讲解network、辅导web编程语言、讲解web辅导R语言程序|辅导R语言程序

ACIT 4640 - Systems and network provisioning
Final assignment
This is a group assignment. You will work on it with the same partner(s) as the previous project assignments.

Step 1 - Find a project / application to provision

Find an application, service or project to deploy. The requirements are:
you must use CentOS 7 as the base operating system
the application must have a 3-tier model, with frontend / middleware / backend
example: in the todoapp, we have
ofrontend: Nginx
omiddleware: NodeJS
obackend: MongoDB
it cannot be the todoapp, Wordpress or the hichat application used during the exams
it must be easy to validate that the application works
oideally with a web browser (web service or API)

Submit your proposal to D2L before Tuesday 31 March 8PM at the latest. (text format)
Use the following format for your submission (example for the TODOAPP service).

Application name: TODOAPP
Source code: https://github.com/timoguic/ACIT4640-todo-app
Application usage: Web application to manage todo lists in the browser.
Frontend: Nginx
Middleware: NodeJS
Backend: MongoDB
Validation method: Open URL in web browser
Add new todo
Check box to mark todo as done

If applicable, you can also add URLs where the application can be seen "live" (for instance: Heroku demo provided by the author of the application).

Grading:
1 mark if your application fits the requirements
if your application does not fit the requirements, there will be a 50% penalty

It is recommended that you discuss your proposals during next class (30/31 March).
Step 2 – Write the Ansible playbook for your application

Create a working Ansible playbook to provision your application from scratch.

Make sure that your playbook follows the best practices:
use variables
use templates
use roles, with dependencies
use handlers to limit running unnecessary actions


Step 3 – Provision the AWS environment to provision your app in the cloud

Create a new role. This role will allow you to manage (create, delete, and get information about) your AWS instances. Use the dynamic inventory feature of Ansible, and the `ec2` family of modules.

Use tags to create two functionalities:
provision provision the virtual machine and network in AWS
cleanup destroys the virtual machine and environment in AWS


Step 4 – Provision the application in the cloud

Combine the functionalities above to obtain a playbook called `final_acit4640.yml`. Please use this exact file name!

The playbook must have the following features, based on tags:

ansible-playbook final_acit4640.yml --tags provision

Creates the AWS virtual environment if it does not already exist

ansible-playbook final_acit4640.yml --tags cleanup

Destroys the AWS virtual environment if it exists

ansible-playbook final_acit4640.yml --tags deploy

Tries to deploy the application to the AWS virtual environment if it exists. Displays the URL of the running service at the end of the playbook. If the AWS environment does not exist, do nothing.


ansible-playbook final_acit4640.yml --tags info

Prints information about the service:
owhether the AWS environment exists or not
owhether the service is running or not

ansible-playbook final_acit4640.yml

Tries to provision the AWS environment, and then the application on it. If everything succeeds, prints the URL of the service at the end of the run.

Grading rubric

Preliminary research about the application 1 mark
Application provisioning 13 marks
Use of roles and dependencies 2 marks
Use of variables 2 marks
Use of templates 2 marks
Use of handlers 2 marks
Provisioning steps (efficiency, best practices and use of Ansible modules) 5 marks
No deploy tag 0 for this section

AWS provisioning: provision tag 5 marks
Creation of the virtual environment 5 marks
Virtual environment is created even if it exists 0 for this section
No provision tag 0 for this section

AWS provisioning: cleanup tag 2 marks
Cleanup of the virtual environment 2 marks
No cleanup tag 0 for this section

Provisioning information: info tag 4 marks
Information about the virtual environment: IP address 1 marks
Information about the application (status of the services) 3 marks
No info tag 0 for this section
TOTAL 25 marks

You can get bonus marks if your application / service is not in the list I provided on D2L, or if it is very complex to set up (more than 3 services). If the application is not available or broken after running the playbook, you will get 0 for the whole application provisioning section.

Submission

Push your source code to GitHub. Make sure that you do NOT push your AWS keys!

Add the final_project tag to your work, and make sure you push the tag to GitHub too.

Submit the link to your repository on D2L (Assignments > Final project).

Note:
You will need to set up a time to meet and demo your application and answer questions. This must happen before Thursday 16 April, 6PM. We will meet using Zoom for the demos.

Please organize it as soon as possible - there is a limited number of hours per day. Students who are not present during their group demo will receive 0.

No late submissions will be accepted. If you do not demo your program, you will get 0.

联系我们
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!