辅导案例-COSC2759-Assignment 3
1

RMIT Classification: Trusted
COSC2759 Assignment 3 specifications

Deadline Sunday 14.06.2020 (11:59 pm AEST)
% allocated to this assignment 30
To be submitted via Canvas
To be attempted Individually
_______________________________________________________________________
Please read this first

All of us have been affected by the unfortunate COVID-19 scenario and its aftermath. It is
often hard to concentrate and study online; but as a student enrolled in this course, it is
your responsibility to regularly attend online lecture, your respective tutorial and
consultation session(s).

• Bring your questions to online discussion board, consultation sessions or email the
head tutor: Homy ([email protected]).

• Watch the online recordings on a regular basis if you cannot attend the live sessions.

• Do NOT start the assignment at the last minute.

• Do NOT ask for last minute extensions, these are often rejected. Extensions can only
be granted for personal and medical reasons, provided you can supply some
evidence.

Besides, DevOps is a very important skill to have. There is a clear lack of training in this area
for the graduates and as such doing well in this course will give you a competitive edge over
graduates from other universities.

Finally, please do NOT give up on this semester thinking of online study as a waste of time.
Global industry projects involving teams at geographically different locations often run fully
online. Think of this semester as a training for future. In the fast-evolving CS&IT industry,
the online medium is very popular and vastly used.

You have 4 weeks to complete this assignment. It is related to Kubernetes and HELM.

Get started!



2

RMIT Classification: Trusted
Scenario

ACME corp. has been very excited with the work you did on their application and has been
hard at work expanding on the work that you started. They have containerised the
application and expanded the CI build to create a container and publish it. Next they are
hoping to start using Kubernetes to host their application as they feel that will be a big
advantage for them.

They have asked you to expand their CI build to automatically deploy the application to a
Kubernetes cluster, implementing a CD pipeline.

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 configuration and scaffolding scripts.

Tools to use:
• Terraform
• AWS
• CircleCI
• Docker
• Kubernetes
• Helm

ACME corp. expects a Zip file with all the code and documentation required to run the CD
pipeline you are creating for them. This includes the files that define any shell scripts,
Docker files, or anything else you use.


A scaffold with a folder structure and some support files for this assessment is available
here: https://classroom.github.com/a/pd1v39dG

Please accept the GitHub classroom invitation. Upon you acceptance, your private
repository will be ready automatically.

3

RMIT Classification: Trusted

Tasks


Pass part:

A. (15 marks) Document the solution in the Readme.md file

Please document the solution so it can be deployed by someone with no prior
knowledge of the approach. This means a step by step guide to deploying the
application.

Also document your approach and the reason why you approached it in this way.

Please consider:
a. Analysis of the problem (5 marks)
b. Explain and justify the solution (5 marks)
c. Writing quality, layout and accuracy (5 marks)

B. (15 marks) Create a HELM chart to deploy the application to Kubernetes

Include the HELM Chart source files in the zip file

a. Include both a Deployment and a Service manifest
b. Use variables to allow the Image to be passed in
c. Use variables to allow the database endpoint to be passed in

C. (30 marks) Deploy the application into a non-production environment

Make sure the following is implemented in the CircleCI configuration file and add a
screenshot of the successful execution.

a. Create a namespace for the application in Kubernetes
b. Deploy a database to back the application
c. Run database migration script against the database
d. Deploy HELM Chart to the Kubernetes cluster

Credit part:

D. (10 marks) Change the end-to-end test to run against the non-production
environment

Make sure it is implemented in the CircleCI configuration file and add a screenshot of
the successful execution.

For all queries pertaining to this assignment, be it specification-related or
extension, ONLY send email to your head tutor i.e. Homy and no one else.
4

RMIT Classification: Trusted

Distinction part:


E. (8 marks) Deploy the application into a production environment

Make sure the following is implemented in the CircleCI configuration file and add a
screenshot of the successful execution.

a. Create a namespace for the application in Kubernetes
b. Deploy a database to back the application
c. Run database migration script against the database
d. Deploy HELM Chart to the Kubernetes cluster

F. (2 marks) Create a stage gate before deployments are allowed into production

Make sure it is implemented in the CircleCI configuration file and add a screenshot of
the successful execution.


High Distinction part (you need to self-research these ones):

If you can finish all the 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

G. (20 marks) Integrate logging to the solution so any logs from the Kubernetes cluster
is automatically stored in AWS CloudWatch for the future.

Provide a screenshot of the ACME app logs being displayed in CloudWatch (Hint: use
the querying function in Log Insights), as well as the code used to deploy the logging
solution to the cluster. Add the screenshot to your Readme file.
Assessment criteria

You will be assessed on:

• Your ability to automate the deployment of the ACME web application
• Using yaml to define CircleCI tasks
• Your ability to use HELM to create a Chart
• How well you document your solution




5

RMIT Classification: Trusted
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 may 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

ACME corp. expects you push all the code and documentation required to run
the Continuous Integration build you are creating for them into your GitHub
classroom repository. This includes the files that define any shell scripts, Docker
files, or anything else you use.



Any pushes to GitHub after Canvas submission will be subjected to late
penalty.
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 lecturer
([email protected]) for extension related queries.

No GitHub pushes will be accepted after 5 day period has elapsed.

Please submit ONLY the URL of your GitHub Classroom repository into Canvas, your
repository must have a format like below:
https://github.com/RMIT-COSC2759-SDO/assessment3-student-


51作业君 51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: ITCSdaixie