Skip to content

Instantly share code, notes, and snippets.

@indrayam
Last active February 26, 2019 14:47
Show Gist options
  • Save indrayam/0f8cd1d1a8a35f309026cb58cdeedd4b to your computer and use it in GitHub Desktop.
Save indrayam/0f8cd1d1a8a35f309026cb58cdeedd4b to your computer and use it in GitHub Desktop.
Building Cloudy Apps in 2019!

Building Cloudy Apps in 2019!

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!

Java

Basics to stick with

  • 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

New things to introduce

  • 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

New things to consider

  • 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

References

Go

Basics to stick with

  • 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment