Jazz Serverless Development Platform
![Slack Chat](https://img.shields.io/badge/Chat-Slack-ff69b4.svg)
Seamlessly build, deploy & manage cloud-native serverless applications!
Introduction
Jazz, a serverless development platform, accelerates adoption of serverless technology within your enterprise. Jazz comes with a beautiful UI that lets developers quickly create serverless applications with a click of a button. Its modular design makes it easy to add new integrations that your enterprise needs.
Overview
- Services - As of today, Jazz can help build functions, APIs and static websites. Fully customizable template-based design makes it easy for admins to define new ones and expose them as services to the developers. Jazz also supports Serverless Framework and developers can leverage its rich ecosystem to build serverless apps. Support for AWS SAM will be coming soon!
- Deployment Targets - Currently, Jazz can deploy to AWS & Azure. Developers can select their target cloud provider during service creation and Jazz will orchestrate the provisioning in the respective public cloud. GCP support will be available in the near future.
- CI/CD - Jazz comes with CI/CD by default. It creates a code repository for each service, assigns appropriate permissions and adds a web hook to trigger build/deployment workflows whenever it sees a commit. We leverage Jenkins open source for the build process and Serverless Framework for deploying these services.
- One-Click Development Environments - Jazz automatically creates a new dedicated development environment for each git branch in the service repository. This allows parallel development in a multi-developer team without a hitch! Jazz takes care of deleting these environments once the branch gets deleted.
- Security Controls - Centralized platform allows administrators to define & apply security controls from a single place through Jazz. Admins can choose to enforce the controls on every service that gets created using Jazz allowing them to make them secure by default. Many best practices like applying the principle of least privilege, code (& dependency) scans during CI/CD, preventing default public access are available by default in Jazz.
- Secret Management through T-Vault - Jazz comes with T-Vault integration by default encouraging developers to leverage secrets management service for storing their secrets. Each service gets its own set of safes (one per environment) and functions (AWS Lambda only) that are part of the service get automatically configured with required permissions to retrieve the secrets. Developers can simply login into T-Vault interface and store their secrets in the allocated safes. No more hard-coded secrets in the code!
- Extensions - Jazz is designed to integrate and work well with other systems that your enterprise needs. You can check out our optional extensions like Azure, Slack, Splunk, Apigee etc. Centralized configuration helps Jazz admins to easily enable/disable these features as per their needs.
- Multiple Accounts & Regions - Jazz's multi account/region extension allows you to add support for multiple accounts & regions to an existing Jazz stack. Developers can simply select the target account & region from the UI to deploy their services. Admins can add/remove new accounts/regions to the stack with ease.
- Other Features - Jazz comes with many useful integrations like SCM (Gitlab/Bitbucket), monitoring (CloudWatch), logging (ElasticSearch), authentication (Cognito), access controls, code quality metrics (SonarQube) by default.
- Utilities - Jazz comes with many utilties that allow admins to monitor, govern and report the usage of serverless services through Jazz environment.
Jazz is open-sourced and under active development by T-Mobile's Cloud Center of Excellence.
Watch the video preview here.
User Guide
For complete user guide, see our wiki.
Architecture
Following is the high level logical architecture of Jazz.
![Jazz Architecture](https://github.com/tmobile/jazz/raw/develop/misc/jazz_logical_architecture.png)
Installation
You can install Jazz in your AWS account using the automated installer.
Try Jazz!
You can try out public preview version of Jazz by registering with your email address here. You will need a registration code which can be requested by joining slack.
Platform Development
Branching/Release Strategy
- Breaking/nontrivial features first go into named feature branches cut from
develop
- When/if a feature branch is chosen to be included in the next release, it is merged into
develop
- Release testing happens in
develop
- When confirmed/vetted,
develop
is merged into master
, and master
becomes the current release.
- Small fixes explicitly intended for the next release can be PRed directly into
develop
without first needing a feature branch.
tl;dr master
is always the current release, develop
is always the current state of the next release. If you want to contribute a PR, we recommend you fork and work in a branch off of develop
, then PR against develop
. Project owners will move you into a feature branch if they deem it necessary.
License
Jazz is released under the Apache 2.0 License