Shell – Final Case Study Assessment
Streamline Solutions Inc. - Optimizing Software Deployment
Implementing a Seamless CI/CD Workflow for a Spring Boot Application using Azure Boards, Azure, Git, Maven, Docker, Github, Github Actions
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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 |