A collection of workshop presentations and labs exercises for use at client sites. Focus on Pivotal Application Service, Cloud Native concepts, Microservices design, Spring Boot and Spring Cloud Services, and accelerating software delivery with Concourse CI/CD pipelines. Typically conducted over a 1-1/2 day period.
Want to maintain a sanitized master branch. Will strip logos and references to Boeing in slides. Perhaps moving slides to existing internal Pivotal Google Docs folder?
Review current branches for artifactory and boeing.
Use (https://github.com/asciidoctor/asciidoctor-pdf)[asciidoctor-pdf] to convert each .adoc file into a .pdf file. Next figure out a way to aggregate all .pdf files into a single pdf. This would be handy to distribute to workshop participants.
As content changes it would be very simple to keep pdf in-sync.
It's cool that you can hit the /refresh endpoint to refresh the configuration for a single app instance. But what about when you have N app instances running? It's pretty tedious to execute for each instance. So, we should illustrate how to:
provision a CloudAMQP (RabbitMQ free tier) instance via the App Manager UI
add compile('org.springframework.cloud:spring-cloud-starter-bus-amqp') dependency to cloud-native-spring/build.gradle
update manifest.yml to include reference underneath services: to RabbitMQ instance
gradle clean bootRepackage and cf push
scale the app from 1 to 2 instances
update the value for greeting in cloud-native-spring.yml within the config-repo
In lab 4 there's a step where you are asked to update the configuration of the instance of the config server so that it references application configuration from a Git repository. There is no facility at moment to do this directly from Application Manager UI. So, one has to execute something like cf update-service config-server -c '{"git": { "uri": "https://github.com/pacphi/config-repo" } }'. We've not been able to see participants on Windows 10 laptops successfully execute the above cf command in cmd or powershell. What seems to work consistently, is when they launch a Git bash shell.
The scope of this effort is to troubleshoot and fix so that all three shells function equivalently when execute cf update-service ....
Gradle build config at Boeing is a little more involved. They do not want to use Artifactory Gradle plugin (https://www.jfrog.com/confluence/display/RTF/Gradle+Artifactory+Plugin), opting instead for groovy task def. Shawn Karr has been able to plow through some artifact resolution issues we were having with certain dependencies and plugins by a) working with Artifactory admin team and b) by crafting a build.gradle, gradle.properties and associated Eclipse config. Want to get this into a new boeing branch.
It's confusing to participants to follow the instructions in lab 4 for updating Gradle build config. While we have full solution in labs/solutions/04 directory for them to reference, the lab guide in labs/04/README.md should be enhanced to make things clear.
Lab 2 is all about working with Spring Data JPA. The current example works with an in-memory database. Enhance and/or extend the lab to include step for how to provision a new instance of MySQL, then bind the cloud-native-spring app to it.
Forgot to add @RefreshScope annotation to lab write-up for lab 4. Then I need to tread this annotation through all GreetingController.java impls in solutions.