Devops Demo - Overview

Introduction

Demo application, providing tools and a devops admin backend for accessing Prometheus and Grafana.

Presented during MindSphere Developer Days in Berlin, Sept. 2018:

GitLab GitHub Mirror

What is it

Close interaction of development and operations is essential to accelerate delivery of applications. This is a demo across the whole DevOps cycle with MindSphere, by using well known and widely used open source tools.

High level architecture diagram (draw.io png with embedded xml):

High-level Architecture

The demo consists of:

  • a simple todo app using the MEAN (MongoDB, Express.js, Angular, Node.js) stack
    • Angular App (root folder)
    • Backend
      • the backend provides swagger-ui for navigating both the server apis and the MindSphere APIs (under /api-docs)
  • local Angular dev server setup that proxies requests to MindSphere, allowing local development
  • a devops admin backend that provides access to prometheus and grafana

Additionally, tooling to ease ssh connectivity to running cf applications is provided.

Please refer to the official MindSphere & CloudFoundry developer documentation for detailed information about the platform:

ToDo App

The todo app provides examples on CI/CD including unit and e2e tests

TODO app

Open API 3 Navigator

OpenAPI documenation (Swagger-UI).

TODO OpenAPI 3 Navigator

Grafana Adminstration Dashboard

Adminstration dashboard (Grafana)

DevOpsAdmin Grafana

Known Issues / Limitations

  • Known Issues / Limitations
  • The gitlab-ci integration requires manually setting authentication with access and refresh tokens available as protected CI/CD Gitlab Variables, and they need to be renewed every 30 days. This can be copied directly from your CloudFoundry CLI ~/.cf/config.json file after successful cf login. Storage for Prometheus is currently transient, pending support for some kind of dynamic persistent storage for apps, or direct support for Prometheus in MindSphere.
  • Prometheus metrics http endpoints are read-only but not protected.

This project has been released under an Open Source license. The release may include and/or use APIs to Siemens’ or third parties’ products or services. In no event shall the project’s Open Source license grant any rights in or to these APIs, products or services that would alter, expand, be inconsistent with, or supersede any terms of separate license agreements applicable to those APIs. “API” means application programming interfaces and their specifications and implementing code that allows other software to communicate with or call on Siemens’ or third parties’ products or services and may be made available through Siemens’ or third parties’ products, documentations or otherwise.

The content of the community tools and libraries documentation pages is licensed under the MIT License.
Siemens API Notice applies.
Back to top