WASdev/sample.microservices.12factorapp

Name: sample.microservices.12factorapp

Owner: WASdev

Description: A sample for creating a twelve-factor app using WAS Liberty. A twelve-factor app is an application that follows the methodology described at 12factor.net. #JavaEE7

Created: 2015-07-01 15:24:14.0

Updated: 2017-09-14 23:08:52.0

Pushed: 2017-03-17 17:53:58.0

Homepage:

Size: 142

Language: Java

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Twelve-Factor Applications with Liberty Build Status

Deploy to Bluemix

This GitHub repository contains an example of a Twelve-Factor application. This is the corresponding sample to the post on WASDev titled Creating a 12-factor application with WAS Liberty. It is a very simple application that was created to examine the characteristics of a Twelve-Factor application.

A Twelve-Factor application, as defined by 12factor.net, has characteristics that are ideal for developing individual microservices. To summarize briefly, a twelve-factor application:

  1. is stored in a single codebase, tracked in a version control system: one codebase, many deployments.
  2. has explicitly declared and isolated external dependencies
  3. has deployment-specific configuration stored in environment variables, and not in the code
  4. treats backing services (e.g. data stores, message queues, etc.) as attached/replaceable resources
  5. is built in distinct stages (build, release, run), with strict separation between them (no knock-on effects or cycles)
  6. runs as one or more stateless processes that share nothing, and assume process memory is transient
  7. is completely self-contained, and provides a service endpoint on well-defined (environment determined) host and port
  8. is managed and scaled via process instances (horizontal scaling)
  9. is disposable, with minimal startup, graceful shutdown, and toleration for abrupt process termination
  10. is designed for continuous development/deployment, with minimal difference between the app in development and the app in production
  11. treats logs as event streams: the outer/hosting environment deals with processing and routing log files.
  12. keeps one-off admin scripts with the application, to ensure the admin scripts run with the same environment as the application itself.

This sample contains a Twelve-Factor Application that can be run on WAS Liberty and Bluemix.

Once the server has been started, go to http://localhost:9082/12-factor-application/ to view the sample locally or the route of your application to view the sample being hosted on Bluemix.

Notice

© Copyright IBM Corporation 2015.

License
nsed under the Apache License, Version 2.0 (the "License");
may not use this file except in compliance with the License.
may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

ss required by applicable law or agreed to in writing, software
ributed under the License is distributed on an "AS IS" BASIS,
OUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
the License for the specific language governing permissions and
tations under the License.

This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.