Apache Brooklyn

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Apache Brooklyn
Apache Brooklyn Logo
Developer(s)Apache Software Foundation, Cloudsoft
Initial releaseApril 2012; 10 years ago (2012-04)[1]
Stable release1.0.0 (March 2, 2020; 2 years ago (2020-03-02)[2]) [±]
RepositoryBrooklyn Repository
Written inJava, Javascript, Groovy
Operating systemLinux, macOS, Windows
TypeCloud computing, Orchestration
LicenseApache License 2.0

Apache Brooklyn is an open-source framework for modeling, deploying and managing distributed applications defined using declarative YAML blueprints.[verification needed] The design is influenced by Autonomic computing and promise theory and implements the OASIS CAMP (Cloud Application Management for Platforms).[3][better source needed]

Apache Brooklyn blueprint[edit]

Brooklyn blueprint can define application topology, application topology component and cloud or non-cloud location.

Example of a location:

  id: my-aws-eu-west-1-location
  name: 'My AWS EU West 1 location'
  itemType: location
    type: jclouds:aws-ec2
      region: eu-west-1
      identity: AWS_IDENTITY # replace
      credential: AWS_CREDENTIAL # replace
      loginUser: OS_LOGIN_USER # replace
      user: OS_USER # replace
      imageId: AWS_AMI_ID # replace

Example of an application blueprint:

name: My Cloud Application
location: my-aws-eu-west-1-location
# MySQL node
- type: org.apache.brooklyn.entity.database.mysql.MySqlNode
  id: mysql-node
  name: My Database
    datastore.creation.script.url: https://raw.githubusercontent.com/apache/brooklyn-library/master/examples/simple-web-cluster/src/main/resources/visitors-creation-script.sql
  pre.install.command: sudo apt-get install -y libncurses5 # Might be missing on some VMs
# Tomcat node
- type: org.apache.brooklyn.entity.webapp.tomcat.TomcatServer
  name: My Tomcat Server
  id: tomcat-node
    wars.root: https://repo1.maven.org/maven2/org/apache/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.12.0/brooklyn-example-hello-world-sql-webapp-0.12.0.war
      brooklyn.example.db.url: $brooklyn:formatString("jdbc:%s%s?user=%s&password=%s", $brooklyn:component("mysql-node").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")

Typical Apache Brooklyn workflow[edit]

Add location to the Brooklyn Catalog in the Brooklyn Location Manager, or via CLI:

$ br catalog add my-location.yaml

Deploy application blueprint from the Brooklyn Graphical Composer, or via CLI:

$ br deploy my-application.yaml

Login into Brooklyn web console and inspect application deployment progress in the Brooklyn App Inspector, or via CLI:

$ br applications

In the Brooklyn App Inspector, application entity indicators become green once application is successfully deployed.

Manage application entities with Brooklyn effectors and policies.

Related projects[edit]

Cloudsoft AMP expands Apache Brooklyn and allows to write application blueprints in TOSCA (Topology and Orchestration Specification for Cloud Applications) as well as in CAMP.


  1. ^ Presentation of Apache Brooklyn at ApacheCon (organized by Linux Foundation) - Apache Brooklyn - what it is.pdf
  2. ^ "Releases · apache/brooklyn". GitHub.com. Retrieved 2021-03-16.
  3. ^ "The Theory behind Brooklyn". apache.org. Apache Foundation. 2017-02-10. Retrieved 2017-03-15.

External links[edit]