Advertisement
Advertisement

More Related Content

Slideshows for you(20)

Similar to Modern Application Configuration in Kubernetes(20)

Advertisement

More from VMware Tanzu(20)

Advertisement

Modern Application Configuration in Kubernetes

  1. ©2021 VMware, Inc. Modern Application Configuration in Kubernetes Craig Walls Engineer, VMware Tanzu September 1, 2021
  2. ©2021 VMware, Inc. 2 This presentation may contain product features or functionality that are currently under development. This overview of new technology represents no commitment from VMware to deliver these features in any generally available product. Features are subject to change, and must not be included in contracts, purchase orders, or sales agreements of any kind. Technical feasibility and market demand will affect final delivery. Pricing and packaging for any new features/functionality/technology discussed or presented, have not been determined. The information in this presentation is for informational purposes only and may not be incorporated into any contract. There is no commitment or obligation to deliver any items presented herein. Disclaimer
  3. ©2021 VMware, Inc. Live in Colorado Enjoy board games and all things Disney Author of Spring in Action and Spring Boot in Action (and also Build Talking Apps for Alexa) Member of Spring Engineering Team Developer Spring Cloud Services & Application Configuration Service on Kubernetes 3 About me…
  4. ©2021 VMware, Inc. 4 Let’s talk about configuration…
  5. ©2021 VMware, Inc. 5 How do you configure your Spring apps? application.yml application.properties Environment Variables JVM System Properties Command Line Args? !
  6. ©2021 VMware, Inc. 5 How do you configure your Spring apps? !
  7. ©2021 VMware, Inc. 6 The Spring Environment abstraction
  8. ©2021 VMware, Inc. 7 Captures properties from multiple sources…
  9. ©2021 VMware, Inc. 8 …Avails them for property placeholders e.g., ${someProperty}
  10. ©2021 VMware, Inc. 9 …And Spring Boot Config Props e.g., @ConfigurationProperties-annotated classes
  11. ©2021 VMware, Inc. 10 However…
  12. ©2021 VMware, Inc. 11 application.properties / application.yml is packaged into deployment artifact
  13. ©2021 VMware, Inc. 12 (But it could be in the filesystem)
  14. ©2021 VMware, Inc. 13 Difficult to manage across multiple apps/instances "
  15. ©2021 VMware, Inc. 14 Difficult to audit "
  16. ©2021 VMware, Inc. 15 Environment variables tricky to manage "
  17. ©2021 VMware, Inc. 16 Also tricky to audit "
  18. ©2021 VMware, Inc. 17 Command line arguments and JVM system properties Not practical as a main configuration source #
  19. ©2021 VMware, Inc. 18 Spring Environment abstraction is extensible $
  20. ©2021 VMware, Inc. 19 What if config came from somewhere central? !
  21. ©2021 VMware, Inc. 20 Spring Cloud Config Server
  22. ©2021 VMware, Inc. 21 Configuration can be managed in Git… (and Vault, CredHub, DB, S3, etc) $
  23. ©2021 VMware, Inc. 22 …and served via REST $
  24. ©2021 VMware, Inc. 23 Configuration can be versioned $
  25. ©2021 VMware, Inc. 24 Configuration can be rolled back $
  26. ©2021 VMware, Inc. 25 Configuration can be audited (e.g., git log and git blame) $
  27. ©2021 VMware, Inc. 26 Applications just need to read from Config Server… "
  28. ©2021 VMware, Inc. 27 …and somehow merge configuration into Environment "
  29. ©2021 VMware, Inc. 28 Spring Cloud Config Server client library
  30. ©2021 VMware, Inc. 29 Problem solved!
  31. ©2021 VMware, Inc. 30 But wait…
  32. ©2021 VMware, Inc. 31 What about non-Spring or non-Java apps? (Let’s not talk about that right now…) !
  33. ©2021 VMware, Inc. 32 Then came Kubernetes %
  34. ©2021 VMware, Inc. 33 Spring Cloud Config Server runs fine in K8s $
  35. ©2021 VMware, Inc. 34 Applications running in K8s can still be Config Server Clients $
  36. ©2021 VMware, Inc. 35 But wait…
  37. ©2021 VMware, Inc. 36 What about non-Spring or non-Java apps? (I said…Let’s not talk about that right now…) !
  38. ©2021 VMware, Inc. 37 The configuration elephant in the K8s room
  39. ©2021 VMware, Inc. 38 What about ConfigMaps? (Okay…I guess we should talk about that) !
  40. ©2021 VMware, Inc. 39 ConfigMaps are K8s resources
  41. ©2021 VMware, Inc. 40 …hold configuration data
  42. ©2021 VMware, Inc. 41 Can be consumed as env vars…or…
  43. ©2021 VMware, Inc. 42 …mounted as files in the pod’s filesystem
  44. ©2021 VMware, Inc. 43 Secrets are also K8s resources &
  45. ©2021 VMware, Inc. 44 Secrets are like ConfigMaps (just more secret)
  46. ©2021 VMware, Inc. 45 Do not require any special client library $
  47. ©2021 VMware, Inc. 46 Work with any K8s workload…Spring, Java, or otherwise $
  48. ©2021 VMware, Inc. 47 Problem solved!
  49. ©2021 VMware, Inc. 48 But wait…
  50. ©2021 VMware, Inc. 49 Spring Cloud Config Server != ConfigMaps/Secrets
  51. ©2021 VMware, Inc. Spring Cloud Config Server 50 K8s ConfigMaps and Secrets Central-management of properties Can be versioned Can be audited HTTP-based property consumption Probably should be secured Requires client-side library or code Doesn’t require special client code K8s-native Not centrally managed Versioning/auditing not built-in Can leverage K8s-native security
  52. ©2021 VMware, Inc. 51 WHAT IF…?
  53. ©2021 VMware, Inc. 52 …we bring them together?
  54. ©2021 VMware, Inc. 53 Application Configuration Service for VMware Tanzu
  55. ©2021 VMware, Inc. 54 Git-backed ConfigMaps and Secrets! $
  56. ©2021 VMware, Inc. 55 Same Git-hosted properties $
  57. ©2021 VMware, Inc. 56 Written to ConfigMaps and/or Secrets
  58. ©2021 VMware, Inc. 57 Best of both worlds! '
  59. ©2021 VMware, Inc. 58 Problem solved!
  60. ©2021 VMware, Inc. 59 How does it work?
  61. ©2021 VMware, Inc. 60 Configuration Source (defines where configuration lives)
  62. ©2021 VMware, Inc. 61 Configuration Slice (defines the desired configuration subset )
  63. ©2021 VMware, Inc. 62 Source + Slice = ConfigMap/Secret
  64. ©2021 VMware, Inc. 63 Let’s see it in action… (
  65. ©2021 VMware, Inc. 64 Azure Spring Cloud Enterprise Tier w/VMware Tanzu
  66. ©2021 VMware, Inc. 65 Cloud-Native, Spring, and K8s •Next-Generation Cloud Native Apps with Spring Cloud and Kubernetes •Application Modernization: Migrating Mainframe Apps to the Cloud Using Spring Azure Spring Cloud •Rapid Development with Azure Spring Cloud •Enable Authentication and Authorization with Azure Active Directory and Spring Security •Accelerate Spring Apps to Cloud at Scale—Discussion with Azure Spring Cloud Customers You may also be interested in…
  67. Thank You ©2021 VMware, Inc. See you in the Q&A session!
Advertisement