Giter Site home page Giter Site logo

victory-royale's Introduction

Victory-Royale

intro

Objective

Our group was tasked with working to complete a deliverable as a team, which involved planning, designing and implementing a solution for automating the development workflows and deployments of externally developed applications 'Spring Pet Clinic'- one of which serves as a front end client using AngularJS and the other as an API using Java.

Project Management

MoSCow Planning

MoSCow method was used as a prioritasion technique to decipher what technologies and services that were essential to have in order to deploy the application. Below is a snapshot of our MosCow method:

moscow1

moscow2

Sprints

Our sprint started with a sprint planning meeting in which the next sprint is planned in detail. In the sprint planning meeting the team discused which requirements from the Product Backlog will be processed and how to meet those requirements.

Our team had daily scrum meeting to determine the working progress of the team and keep all team members informed and up-to-date with all areas of activities.

Our sprint retrospective meeting conducted at the end of each day allowed the team to reflect on how things went and what could be improved as well as determine if extra help was needed in certain areas.

Trello Board

A Trello Board, with members attached to each task as well as user expansion on the requirments of each activity was utilised as a management tool that kept team members informed about all the things that needed to be done.

please find link to Trello Board:

https://trello.com/b/9l9FLICk/victory-royal

trello

Architecture

Initial cluster architecture diagram:

architecture

Tech Stack

Terraform

Terraform is a form of Infrastructure as Code which allows for all the configurations to be versioned and maintained in order to prevent environment drift when another environment needs to be created.

Kubernetes

Kubernetes is an open-source solution for automating deployments of containerised applications. The team used Amazon Web Services to configure and deploy a Kubernetes cluster. We have one master node that is responsible for ensuring the cluster remains in the desired state, the master is the set of processes that manage the state of the cluster.

The nodes in the cluster are running the applications. These nodes are controlled by the master node.

We have one container per Pod representing a process (pod is the smallest unit in kubernetes) to prevent containers being tightly coupled inside a single pod.

. CI Server - Jenkins

Jenkins Pipeline is a user-defined model of a CD pipeline. The Pipeline was achieved using a Jenkinsfile which includes stages for building an application, testing it and then delivering it. This was subsequently committed to this SCR which means that the configuration is portable across different machines.

Inital pipeline design:

jenkins

Actual pipeline used:

jenkins2

. Open source repository management - Dockerhub

Used to proxy, collect, and manage dependencies, so that we are not constantly juggling a collection of Docker images. Cached artefacts, so that, after the first build, the project will consult the cache before downloading anything.

AWS

  • EKS cluster
  • RDS

Build

The application was built in a dedicated docker image using Dockerfiles and deployed using Jenkins.

Setting the jenkins pipeline:

In the Jenkins file:

The build stage builds all the containers and images The test stage tests the application is working properly The push stage tags and pushes images to Dockerhub Deploy stage deploys the containers

Risk Assessment

Risk assessment:

risk

Cost Analysis

cost

Contributors

Team Victory-Royale consisting of:

Ayona Duncan, Fatima Aidarus, Pabianczyk Eryk, Jack Miller and Tom Marvin

References

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role https://www.terraform.io/docs/language/modules/develop/composition.html https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket https://www.terraform.io/downloads.html https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_node_group https://www.terraform.io/docs/internals/credentials-helpers.html https://learn.hashicorp.com/tutorials/terraform/aws-rds?in=terraform/aws https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_node_group https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/ https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html https://docs.npmjs.com/cli/v6/commands/npm-build https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ https://kubernetes.io/docs/concepts/containers/images/ QA Community

victory-royale's People

Contributors

jmiller2612 avatar tommarvin avatar ayonadee avatar toaomcl avatar faidarus avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.