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.