Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Spring IO - Spring Boot for DevOps

2,668 views

Published on

Spring Boot is a product from Spring, that provides many configuration defaults for a new Spring project, so that one can set up a project in minutes.
However, this is only one of the many features of Spring Boot. One of its module also provides many important Non-Functional Requirements out-of-the-box: monitoring, metrics, exposing those over HTTP, etc. In this presentation, I’ll demo some of those, that will make DevOps more than a little happy.

Published in: Software
  • Be the first to comment

Spring IO - Spring Boot for DevOps

  1. 1. Spring boot for devops Nicolas Frankel @nicolas_frankel
  2. 2. Me, Myself and I • Developer & Architect – As Consultant • Teacher/trainer • Book Author • Blogger @nicolas_frankel
  3. 3. Working for hybris @nicolas_frankel
  4. 4. DevOps • Devs and Ops collaboration? • Treat your infrastructure as code? • Automate everything? @nicolas_frankel
  5. 5. DevOps • Monitoring • Metrics @nicolas_frankel
  6. 6. A little story @nicolas_frankel
  7. 7. Non-Functional Requirements • Monitoring –Health checks –Metrics @nicolas_frankel
  8. 8. Non-Functional Requirements • Configuration – Beans – Property values – Controller mappings – Etc. @nicolas_frankel
  9. 9. Enough talk, time for a demo @nicolas_frankel
  10. 10. Dropwizard Metrics • A metrics model • Exporters to backends • And more… @nicolas_frankel
  11. 11. Simple metrics • Gauge – Simple value • Counter – Incrementable gauge @nicolas_frankel
  12. 12. Dropwizard reporters • JMX • Graphite • (HTTP) @nicolas_frankel
  13. 13. jconsole • JMX-compliant GUI for monitoring JVM @nicolas_frankel
  14. 14. @nicolas_frankel
  15. 15. Graphite • Store numeric time-series data • Render graphs of this data on demand @nicolas_frankel
  16. 16. For development • Either define the 2 reporters – Set @ConditionalOnMissingBean – Use a "Development" profile • Or define only the JMX reporter – In production, use JMXTrans @nicolas_frankel
  17. 17. Metrics are not only technical @nicolas_frankel
  18. 18. Health checks • A good way to monitor your application • Each check wraps a dependency –e.g. a datasource @nicolas_frankel
  19. 19. Health checks • Each check returns an Health object –Status UP or DOWN –If not, possibly with details @nicolas_frankel
  20. 20. Health check endpoint • /health aggregates all checks • Health are objects –Serialized in JSON • If only one is down, the HTTP code is set to 5xx @nicolas_frankel
  21. 21. Health check • Bean must implement HealthIndicator • Doesn’t use Dropwizard HealthCheck @nicolas_frankel
  22. 22. References • Graphite Vagrant – https://github.com/tilmans/vagrant-statsd-graphite- puppet • Enhanced Spring Pet Clinic – https://github.com/nfrankel/enhanced-pet-clinic @nicolas_frankel
  23. 23. Q&A • @nicolas_frankel • http://blog.frankel.ch/ • https://leanpub.com/integ rationtest/ @nicolas_frankel

×