service-manager icon indicating copy to clipboard operation
service-manager copied to clipboard

K8S Platform Specific Deployment for Core module

Open dzahariev opened this issue 6 years ago • 1 comments

Background

Service Manager exists outside of all platforms, as it is consumable (reached) through it’s REST API. Anyway it need to be deployed somewhere (on some infrastructure/platform) and we tend to support at least 2 options - K8S and CF as host platforms for SM. The implementation is separated on 2 parts: Core module - that take cares for Business logic implementation including:

  • Initial configuration through environment
  • REST API implementation
  • Domain and Data model
  • Persistency handling through provided configuration to persistency provider
  • Extensibility capabilities
  • Healthcheck endpoint

Platform specific module - that take cares for packaging and platform specific configuration like:

  • Platform specific deployment details - CPU, RAM, Buildpack, VM type, …
  • Platform specific packaging details - archive or image preparation
  • Platform specific provisioning and deployment scripts ensuring HA and Blue/Green deployment
  • Platform specific health check requirements to the core module
  • Persistency provider configurations
  • Identity management provider configurations
  • Registration of Custom URL for the deployed service
  • HTTPS support

Example with Go Application packaging for K8S can be seen on: https://github.com/kubernetes/examples/tree/master/guestbook-go

Easy of deployment that is good to achieve is like following: https://github.com/kubernetes/dashboard/releases

An yaml file that have all configurations needed inside: https://github.com/kubernetes/dashboard/blob/master/src/deploy/recommended/kubernetes-dashboard.yaml

Objective

Prepare K8S Platform dependent module.

Acceptance Criteria

  • I can build (prepare deployable) with a script that is included in the repository
  • README document with deployment process including preconditions, installation steps and configuration details is included
  • Following the steps I can deploy and start the SM Core module in K8S environment

dzahariev avatar Mar 23 '18 15:03 dzahariev

Some K8S apps like the Service Catalog use Helm charts for deployment

dotchev avatar Mar 27 '18 06:03 dotchev