Skip to content

hrb1989/shell_7_foundation_Java_Spring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shell – Final Case Study Assessment

Scenario:

Streamline Solutions Inc. - Optimizing Software Deployment

Problem Statement:

Implementing a Seamless CI/CD Workflow for a Spring Boot Application using Azure Boards, Azure, Git, Maven, Docker, Github, Github Actions

Background:

Streamline Solutions Inc. is a dynamic technology company specializing in cutting-edge software solutions. The company is developing a sophisticated Java Spring Boot application designed to revolutionize user experience. To ensure a swift and error-free software deployment process, Streamline Solutions is seeking to establish an efficient Continuous Integration and Continuous Deployment (CI/CD) workflow.

Activities:

Project Management Setup:

The development team will establish Azure Boards to manage the Agile/Scrum project's progress, including creating a Project Board, Backlogs Board, Sprints/Iterations and Tasks Board.

GitHub Repository and Feature Branching:

Developers will fork the main GitHub repository (https://github.com/hrb1989/shell\_7\_foundation\_Java\_Spring) into their local environments. They will create feature branches to work on specific enhancements or tasks related to the Java Spring Boot application.

Azure VM Configuration:

The IT team will configure a virtual machine (VM) on Azure with specific performance and resource specifications to accommodate the development needs.

Respective Location, Resource Group, B2s, Ubuntu, Username, Password, Standard HDD, Basic Dynamic Public IP.

Maven-Based Build Process:

The development team will install Maven on the Azure VM and define a Maven-based build process. This process will generate a Java Application Archive (JAR) file from the Java Spring Boot application's codebase.

Prometheus Monitoring Integration:

The IT operations team will install Prometheus on the Azure VM. They will configure Prometheus to monitor the local environment and explore the possibility of monitoring the Java Spring Boot application.

Docker Containerization:

On the Azure VM, the development team will craft a Dockerfile tailored for the Java Spring Boot application. This Dockerfile will define the steps necessary to package the application into a Docker container.

Azure Web App Configuration:

The IT team will configure a Azure Web App on Azure with specific performance and resource specifications to accommodate the development needs.

Respective Location, Resource Group, Docker Container and NOT with CODE, ASP – F1

Pull Request Collaboration:

Developers will work on features or tasks within their feature branches. When ready, they will initiate pull requests (PRs) from their feature branches to the main/master branch on GitHub. Collaborative discussions and code reviews will take place during this process.

GitHub Actions Workflow Implementation:

The development team will outline a GitHub Actions workflow triggered by PRs on the main/master branch. This workflow will automate essential tasks such as building, testing, Deploying and ensuring code quality. This workflow will also incorporate a continuous Integration & continuous deployment (CD) process. This process will also facilitate the deployment of the Docker container to an Azure App Service.

Local Testing of Azure Web App:

Upon making changes to the code from the feature branch and post approval of a PR to main branch, with the help of Automated Github Actions, the webapp needs to be updated. Developers will locally test the deployed Azure Web App's webpage on their machines. They will ensure that the application functions seamlessly and provides an optimal user experience.

Azure Boards Task and Sprint Closure:

The development team will review and manage tasks on the Azure Boards Tasks Board. Completed tasks will be closed, and task statuses will be updated. Additionally, the progress of sprints on the Azure Boards will be evaluated and completed sprints will be closed.

Project Closure and Reflection:

Once the CI/CD workflow is successfully implemented, Streamline Solutions Inc. will reflect on the project's journey. The team will document lessons learned, celebrate achievements, and identify areas for further improvement.

Outcome:

By systematically implementing the CI/CD workflow, Streamline Solutions Inc. aims to achieve rapid and reliable software deployments. The company's Java Spring Boot application will reach customers seamlessly, ensuring a high-quality user experience and setting the stage for future innovation.

Rubrics:

You will be evaluated on the following criterias:

Azure Board Activities Azure VM Creation Github Activities Maven Activity Prometheus Activity Dockerfile Creation Github Actions Azure Web App Creation Azure Web App Deployment Testing the Output Understanding of Concepts Completion and Submission within timeframe Total Score
10 5 10 5 5 10 15 5 10 5 10 10 100

About

This is a repo created for shell_7_foundation_Java_Spring

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published