Apache Brooklyn
This article may rely excessively on sources too closely associated with the subject, potentially preventing the article from being verifiable and neutral. (July 2015) |
This article contains content that is written like an advertisement. (October 2019) |
| Developer(s) | Apache Software Foundation, Cloudsoft |
|---|---|
| Initial release | April 2012[1] |
| Stable release | 1.0.0 (March 2, 2020[2]) [±] |
| Repository | Brooklyn Repository |
| Written in | Java, Javascript, Groovy |
| Operating system | Linux, macOS, Windows |
| Type | Cloud computing, Orchestration |
| License | Apache License 2.0 |
| Website | brooklyn |
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:
brooklyn.catalog:
id: my-aws-eu-west-1-location
name: 'My AWS EU West 1 location'
itemType: location
item:
type: jclouds:aws-ec2
brooklyn.config:
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
services:
# MySQL node
- type: org.apache.brooklyn.entity.database.mysql.MySqlNode
id: mysql-node
name: My Database
brooklyn.config:
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
brooklyn.config:
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
java.sysprops:
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.
References[edit]
- ^ Presentation of Apache Brooklyn at ApacheCon (organized by Linux Foundation) - Apache Brooklyn - what it is.pdf
- ^ "Releases · apache/brooklyn". GitHub.com. Retrieved 2021-03-16.
- ^ "The Theory behind Brooklyn". apache.org. Apache Foundation. 2017-02-10. Retrieved 2017-03-15.