Spring 2020 Internship: Projects Announcement

Today we kick off our Spring 2020 internship and are excited to begin talking about the projects that our team will possibly be working on! The goal of all of these project is to be self contained, scoped to the length of the semester, and fit into a larger open-source project.

Tweed GUI

Tweed is an on-demand service broker that allows users to deploy to both Kubernetes and BOSH for shared and dedicated and services, respectively. Tweed has a lot of information operators would like to keep track of, as well as operations that some may prefer to do graphically as opposed to command line.

For this project, the team will design and implement a web user interface to interact with the Tweed API to provide pertinent information about a given Tweed instance. This includes the catalog of available services, the number of instances deployed, and where they live.

Stretch goals: add support for the ability to provision, unbind, and deprovision service instances via the UI. Feel free to pick any framework you’d like (React, Ember.js, Angular).

This project is mostly software development.

Deliverables

  • Pull request to the Tweed repo with the new functionality and all relevant documentation and release notes.
  • A demo showcasing the new feature set.
  • A series of blog posts about the project itself, as well as your internship experience overall.

Tweed Stencil

The types of services that Tweed can deploy is determined by the stencils that have been produced by the community. Stencils are the mechanism in which Tweed can manage the lifecycle of service instances.

For this project, the team will select a data service (MongoDB , RabbitMQ, Clustered Postgres, Kafka, Hadoop, Cassandra, etc) and create a stencil to allow this service to be deployed by Tweed to both BOSH and Kubernetes. You will use GitHub actions as you CI/CD method for creating the images for your deployments.

This project is mostly operations and deployments.

Deliverables

  • The stencil implementation, available on GitHub.
  • A presentation (with live demonstration) showing off the new stencil.
  • A series of blog posts about the project itself, as well as your internship experience overall.

Fleet Service Broker

Tweed’s on-demand nature can sometimes get in the way of rapid prototype and service procurement. Instead of always relying on just-in-time deployment of new services, some customers would like to be able to maintain a small pool, or “fleet” of provisioned service instances, backed by Tweed (or really, any OSB-compliant broker).

In addition to Tweed, it would be useful to be able to specify and maintain that a certain number of service instances be “at the ready” for developers to be able to bind their applications to instantly.

For this project, the team will design and implement an OSB-compliant service broker that consumes and re-exports an upstream open service broker’s catalog, keeping a certain level of “service inventory” spun up and ready. Customers to this Fleet Broker will be given one of these idle instances, and the fleet broker will backfill inventory accordingly.

This project is both software developement and operations/deployments.

Deliverables

  • The Fleet Broker implementation, available on GitHub.
  • A presentation (with live demonstration) showing how it works.
  • A series of blog posts about the project itself, as well as your internship experience overall.

Tweed Catalog Management

Currently, Tweed’s catalog is managed en suite by a single, monolithic configuration file. Operators wishing to make changes to the catalog must rewrite this YAML as a whole, and restart the broker daemon process.

This should be easier.

For this project, the team will design and implement new APIs and data storage backends for Tweed to allow it to field requests from operators (via an augmented tweed CLI) to add plans / services, and to edit or delete existing plans / services. This should make the following possible:

$ tweed upload-stencil tweed/redis
$ tweed add-service --stencil tweed/redis --name Redis
$ tweed add-plan --service Redis -c nodes=1 --name Standalone

This project is both software developement and operations/deployments.

Deliverables

  • Pull request with the new feature set against the Tweed in GitHub.
  • A demo showcasing the ability to upload a stencil, add a service, add a plan, and create a service instance from the plan.
  • A series of blog posts about the project itself, as well as your internship experience overall.

Multiple Platforms, Single Service Marketplace

As an organization’s platforms grow in maturity they also grow in complexity. One growing challenge comes from managing on demand services deployed with marketplaces distributed across multiple Cloud Foundries and Kubernetes clusters.

For this project, the team will design and implement a piece of software that sits outside of these cloud platforms and interacts with multiple service marketplaces to allow developers and operators to bind/manage on demand services via a single interface.

This project is both software development and operations/deployments.

Deliverables

  • Repo with the full feature set and documentation in GitHub.
  • A demo showcasing the ability to see services deployed to all platforms, have apps deployed on one platform bind to services on another.
  • A series of blog posts about the project itself, as well as your internship experience overall.

Spread the word

twitter icon facebook icon linkedin icon