联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2020-04-14 10:47

RMIT Classification: Trusted

COSC2759 Assignment 1 specifications

Deadline Sunday 19.04.2020 (11:59 pm AEST)

% allocated to this assignment 20

To be submitted via Canvas

To be attempted Individually

_______________________________________________________________________

Scenario

ACME corp. has developed a web application using NodeJS. Vue.js, and

PostgreSQL, and are running this in their AWS cloud account. The source for the

application is stored in GitHub, but they have been building and deploying this

manually from Tom the lead developer’s laptop. This approach has worked for a

while, but last month Tom was sick with the flu, and this prevented an important

deployment that their biggest customer was waiting for.

There have also been instances where bugs have been introduced into their

public website which has caused and increase in the number of support calls from

their customers, and the support and development teams have had to work

overtime to manage the load and fix the issues.

These issues are causing a reduced morale with the teams, as well as impacting

the revenue of ACME corp. They have reached out to you, as an expert in DevOps

and Automation, to help resolve their issues around a single point of failure and

help their teams focus on delivering new features rather than supporting old and

broken ones.

To help resolve their issues, you have suggested setting up an automated build, or

continuous integration, to help reduce the dependency on Tom and his laptop.

And to add automated testing to reduce the number of defects that is missed

during testing.

The application source code can be found here: https://tinyurl.com/vdo79fr

NOTE: Download the zipped archive from above url, unzip it. Those of who have

never created a web application in the format provided as a part of this source

code need to understand the directory structure, what each of the files are?, what

are they doing? Look at the “test” folder, make sure you have a good

understanding of the source code.

It will be crucial to completing the assignment tasks.

2

RMIT Classification: Trusted

The Approach

To make this easier for ACME corp., which doesn’t have extensive experience with

DevOps, we will be using well known SaaS tools to help reduce the learning curve

for their development team. You will follow best practice principles and make as

much of your solution using code, this includes your CI build configuration and

scaffolding scripts.

Tools to use:

? GitHub

? CircleCI

? Docker

? Docker Compose

Deliverable

ACME corp. expects a Zip file with all the code and documentation required to run

the Continuous Integration build you are creating for them. This includes the files

that define the CircleCI pipeline, any shell scripts, and Docker files you use. The

goal is for ACME corp to be able to commit the files into their own GitHub

repository and set up a CircleCI pipeline, and have it work with no modification to

the files necessary.

You should also include the “.git” folder in your zip file so ACME corp can learn

from your approach to branching.

PA-DI Tasks

a. It will be important that you document each of the elements in your solution

and explain not only what it does, but the intent behind it, so the ACME corp.

team can understand why you chose to approach it the way you did. [20%]

Please consider:

? Analysis of the problem ( 5%)

? Explain and Justify the solution (10%)

? Writing quality, layout and accuracy (5%)

To include in zip file:

Add a readme.md file into the root of your folder explaining all the elements

you have chosen to include, what it does, and why you chose to include it.

3

RMIT Classification: Trusted

b. Set up a private repository in GitHub and commit the application there to be

built, tested, and packaged using CircleCI. [5%]

To include in zip file:

Provide a screenshot of your CircleCI pipeline having executed with the url

visible in your browser

c. Things that needs to be added to your Continuous Integration build [25%]

? Unit testing (5%)

? Static Code Analysis / Lint (5%)

? Code Coverage Report (5%)

? Multiple failure scenarios (5%)

? Generating an artefact that can be deployed (5%)

To include in zip file:

Include the CircleCI configuration file

any scripts required for the pipeline to execute properly

d. Your pipeline needs to be able to support multiple branches and have CI

builds trigger on all branches. [15%]

To include in zip file:

Include the CircleCI configuration file

any scripts required for the pipeline to execute properly

e. Artefacts should only be generated on the master branch [15%]

To include in zip file:

Include the CircleCI configuration file

any scripts required for the pipeline to execute properly

HD Tasks

If you can finish all above tasks, then you can start working on HD tasks.

No help or consultation will be provided for these tasks. You are welcome to ask

general questions regarding the tasks, but this is a strictly self-research section à

4

RMIT Classification: Trusted

f. Run integration testing as part of the pipeline [10%]

Execute automated test that validates that the application integrates

properly with the PostgreSQL database backend by standing up a database

in a docker container and running tests against it. Integration tests are

written by Mocha, please read ReadMe file on the project. (5%)

If the tests fail, break the build and report back why it failed in the log.(5%)

To include in zip file:

Include the CircleCI configuration file

any scripts required for the pipeline to execute properly

g. Run end-to-end tests as part of the pipeline [10%]

End-to-end testing is a test that check if the flow of an application from start

to finish is behaving as expected. The purpose of performing end-to-end

testing is to find system dependencies and to ensure that the data integrity

is maintained between various system components and systems. Please

read ReadMe file on the project.

Execute automated tests that validate that the application functions as

expected from the user interface. (5%)

If the tests fail, break the build and report back why it failed in the log. (5%)

To include in zip file:

Include the CircleCI configuration file

any scripts required for the pipeline to execute properly

Assessment criteria

You will be assessed on:

5

RMIT Classification: Trusted

? Your ability to automate the build and packaging of the ACME web

application

? Using YAML to define CircleCI build tasks

? Integrating unit testing into your pipeline and validate that they are

successful

? How well you document your solution.

? How well you analyse the problem and justify your solution for each task.

? Does the provided Zip file contain everything required for ACME corp to be

able to use the pipeline you have designed?

? Do you use branching and commit changes often?

PLAGIARISM

All assignments will be checked with plagiarism-detection software; any student

found to have plagiarised would be subject to disciplinary action. Plagiarism

includes:

? CONTRACT CHEATING: paying someone to do your work

? CONTRACT CHEATING: getting someone else to write the test or attend

demo

? submitting work that is not your own or submitting text that is not your own

? copying work from/of previous/current semester students

? allowing others to copy your work via email, printouts, social media etc.

? posting assignment questions (in full or partial) on external technical forums

? sending or passing your work to your friends

? posting assignment questions on technical forums to get them solved

A disciplinary action can lead to

? a meeting with the disciplinary committee

? a score of zero for the assignment

? a permanent record of copying in your personal university records and/or

? expulsion from the university, in some severe cases

All plagiarism will be penalised. There are no exceptions and no excuses. You

have been warned. For more details please read RMIT’s page on Academic

Integrity at

https://www.rmit.edu.au/students/student-essentials/assessment-and-exams/academic-integrity

6

RMIT Classification: Trusted

Submission Procedure

One single zipped archive (only .zip file extensions allowed) containing

- readme.md file:

o things you have been asked to document in each of the

tasks on pages 2,3 and 4

o this file should also contain your full name, student id and

any other relevant information.

- Any other file that you may wish to submit

Late submissions and Extension-related information

A penalty of 10% per day of the total marks for each assignment will apply

for each day a submission is late, including both weekdays and the

weekend. After 5 days, you will receive zero marks for that assignment.

Email your Head Tutor; Homy (amirhomayoon.ashrafzadeh@rmit.edu.au)

for extension related queries.


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp