A sample Spring-based application
Find a file
2024-07-02 15:36:29 +02:00
.devcontainer Latest Java version 2023-05-09 10:35:25 +01:00
.github/workflows Bump actions version to latest one (checkout * setup-java) 2024-01-23 12:22:42 +00:00
.mvn/wrapper Update dependency 2023-11-26 09:08:45 +00:00
gradle/wrapper Bump gradle from 8.4 to 8.6 2024-02-29 14:35:20 +00:00
metrics Add Prometheus JMX exporter 2024-06-14 11:44:08 +02:00
Notes Capstone readme update 2024-07-01 15:55:13 +02:00
src new stuff 2024-04-07 11:30:47 +02:00
.dockerignore Rest docker init files 2024-04-16 17:24:26 +02:00
.editorconfig Add Gradle files indentation to .editorconfig 2024-02-20 17:14:43 +00:00
.gitattributes Gradle wrapper files should have correct line endings 2024-02-29 14:35:20 +00:00
.gitignore .gitignore update 2024-04-11 12:03:21 +02:00
.gitpod.yml Docker init 2024-04-16 17:23:16 +02:00
build.gradle Fix: Removed enabling and disabeling xml/html reports in build.gradle - they threw an error 2024-07-01 14:15:51 +02:00
compose.yaml Docker compose assesment 2024-04-17 13:38:59 +02:00
docker-compose-orginal.yml Docker init 2024-04-16 17:23:16 +02:00
Dockerfile Temporary h2 db setting for container (RDS is not working correctly at the moment) 2024-07-01 12:52:01 +02:00
Dockerfile-docker-init Rest docker init files 2024-04-16 17:24:26 +02:00
gradlew Update dependency 2023-11-26 09:08:45 +00:00
gradlew.bat Bump gradle from 8.4 to 8.6 2024-02-29 14:35:20 +00:00
Jenkinsfile Add docker lougout post push 2024-07-02 15:36:29 +02:00
LICENSE.txt Add license file 2021-10-05 16:49:36 +01:00
mvnw Upgrade for Spring Boot 3.1 (#1253) 2023-05-26 18:56:00 +01:00
mvnw.cmd Upgrade for Spring Boot 3.1 (#1253) 2023-05-26 18:56:00 +01:00
pom.xml Cleanup and checkstyle config for gradle checkstyle plugin 2024-07-01 12:26:04 +02:00
prepare_aws_enviroment.sh Fixup: Tags for internet gateway added at creation, changed reads order, fixed security group id fetch 2024-05-21 14:46:53 +02:00
readme.md README.md update 2024-05-21 14:53:24 +02:00
remove_aws_enviroment.sh Fixup of order in removing VPC 2024-05-22 16:31:25 +02:00
run_container_on_EC2.sh Minor read prompt fix 2024-05-21 13:19:29 +02:00
send_image_to_aws.sh Comm update 2024-05-18 09:53:05 +02:00
settings.gradle Make build work with Gradle 2021-12-16 11:25:09 +00:00

DevOps excercises

This repository contains sample spring-boot app - spring-petclinic. It is a starting point for excercises with:

  • Gradle/Maven - build tools
  • Nexus - artifact management, private repositories
  • Docker - containerisation
  • Jenkins - CI + CD
  • AWS - cloud

Build tools

  1. Getting familiar with wrappers
  2. Setting up with build.gradle/pom.xml
  3. Getting familiar with test/build/package/checkstyle/install/cleanup processes
  4. Adding source control management (SCM)
  5. Versioning with release plugin
  6. Plugin management
  7. Custom jobs (Gradle)
  8. Adding custom repositories

Nexus

  1. Setting up proxy and private repositories
  2. Releasing artifacts to private repository
  3. Integration with maven via Nexus Repository Maven Plugin

Docker

  1. Containers vs VM
  2. How container works
  3. Dockerfile and its (best practices)[https://docs.docker.com/develop/develop-images/dockerfile_best-practices/]
  4. Multi-stage builds
  5. Usage in (local development)[https://docs.docker.com/language/java/develop/]
  6. (How to make images smaller)[https://learnk8s.io/blog/smaller-docker-images] - distroless/slim base images + multi-stage + less layers
  7. (Vulnerability scanning)[https://docs.docker.com/scout/]
  8. Basics of docker compose

Jenkins

  1. Core principals of CI/CD
  2. Credentials management
  3. Plugins
  4. Distributed builds using agents
  5. Integrate source code management, build tools, and test reports in Jenkins. (>Tools)
  6. Manage builds
  7. Enviroment variables and parametrised builds
  8. Integration with docker
  9. Creating basic pipeline

AWS

  1. Console + CLI operations
  2. Credential management for CLI
  3. Creation and usage of basic components: S3, EC2, VPC, ECR, Security Groups, IAM.
  4. Some automation with bash scripts

Note: run scripts using source command, eg. source prepare_aws_enviroment.sh