Before we start building LOTS and LOTS of Spring Boot based Cloudy Apps in 2019, let's go back to the books and (re)learn how to build them today. Remember, the last time we got into building Microservices it was 2015!
Bottomline, we need to build Spring Boot Seed App(s), AGAIN!
- Basics: Setup CD 2.0 Pipeline for "all" software
- Basics: Write Unit Tests with average test coverage (~80%)
- Basics: No Blockers in any software written
- Basics: Send all messsages to "CD Messages from Cloudy Apps"
- Basics: Make sure all numbers show up in CDA
- Use Spring Boot 2.x
- Use JUnit 5 for Unit Tests
- Enable Actuator
- Use JDK 10 or above
- Configure JVM to work correctly inside a container
- Make sure Docker Image sizes are optimized (~150MB)
- Replace SpringBoot YAML files with Kubernetes ConfigMap and/or Secrets
- Service Discovery. No hardcoding external DNS entries in YAML files
- Integrate with external endpoints using headless services
- Use a single Envoy for Routing across the entire data plane
- Use Gradle as a build tool along with Maven
- Write Unit Tests using Spock and Groovy
- Use Service Virtualization tools like Hoverfly for Testing microservices
- Use Lombok to write Business Logic
- Use Springfox to generate Swagger 2 docs for APIs
- Create dedicated Postman Collections for every API externalized and sync your API specs with Postman Collections
- Use Kotlin (along with Java) to write logic
- Anand's Pragmatic Practices to Build Modern Containerized Apps Running on Kubernetes
- Improved Docker Integration with Java 10
- Java inside docker: What you must know to not FAIL
- Running Java in a Container
- GCP: Kubernetes Best Practices
- aws-samples/kubernetes-for-java-developers
- Quick Guide to Microservices With Kubernetes, Spring Boot 2.0, and Docker
- Kubernetes Demystified: Restrictions on Java Application Resources
- Introduction to Testing with Spock and Groovy
- Junit 5 vs. Spock feature showdown
- Documenting Spring Boot REST API with SpringFox
- Postman: Sync your specs
- Create a Java and Kotlin Project with Maven
- How to mix Java and Kotlin within one Spring Boot Application
- Basics: Setup CD 2.0 Pipeline for "all" software
- Basics: Write Unit Tests with average test coverage (~80%)
- Basics: No Blockers in any software written
- Basics: Send all messsages to "CD Messages from Cloudy Apps"
- Basics: Make sure all numbers show up in CDA