started by Cloudso3 (my employer) • Open sourced in April 2012 (Apache 2 license) • Joined the Apache Incubator in May 2014 • Voted to graduate the Incubator in October 2015 -‐ resoluHon to be presented to the next ASF Board MeeHng
use Apache Brooklyn as the base for AMP: ApplicaHon Management PlaOorm • Provide commercial support and special integraHons for Brooklyn • Brooklyn is not “open core”: Cloudso3 is commiSed to a comprehensive and expanding Apache Brooklyn feature list and codebase …but we won’t talk about Cloudso3 any more
JBoss and MySQL: • Run them on localhost • Use Vagrant to start to two virtual machines • Provision a couple of cloud instances • JBoss needs to locate MySQL • Easy enough to configure this by hand
single web server and a single database is not a producHon grade configuraHon! • It’s not scalable: it can’t handle heavy load • It’s not resilient: it can’t handle failures • So we add mulHple JBosses • …and a load balancer • …and a MySQL standby node JBoss MySQL JBoss JBoss Load Balancer MySQL Hot Standby
just for a simple applicaHon of a web server and a database! • What about something with: • MulHple Hers and services • Connected by a message queue • With mulHple types of database backend -‐ SQL and NoSQL
an app with mulHple components? • How do you get the servers to deploy onto? • How do you get the so3ware onto servers? • How do you configure the so3ware pieces to talk to each other? • How do you make this process fast, easy and automatable? With apache brooklyn, of course!
your applicaHon to Brooklyn -‐ make a blueprint • Describe the components you are using • Describe how they must be configured • Describe how they relate to each other • Describe where they are to be deployed
• Amazon EC2, CloudStack, OpenStack, So3Layer, Google GCE, … • Provisions instances on demand, installs and customises; de-‐provisions when no longer required • Or use “BYON” -‐ bring your own nodes • Or, for tesHng, deploy to localhost
reduce latency to InternaHonal users • “Fabrics” replicate an applicaHon topology into different regions • Geography-‐aware DNS routes visitors to closest server • Availability zone awareness • Clusters can distribute their members across availability zones
the opening move in the game • RunHme management is… • InstrucHons to change the deployed applicaHon • Monitor the health of all the components and react to failures • Monitor the load on the components and react to rising and falling demand • OpHmise for cost, responsiveness, and more
the applicaHon without requiring operator intervenHon • Policies are aSached to an enHty • Monitor the enHty’s sensor data and other informaHon • Makes changes to the applicaHon by invoking effectors on the enHty
the users: enHHes are moved to locaHons close to the users on the network (“follow the sun”) • OpHmise to minimise costs: enHHes are moved to locaHons offering the lowest prices (“follow the moon”) • Policies can be based on anything measurable!
characterisHcs of distributed compuHng resources, adapHng to unpredictable changes while hiding intrinsic complexity to operators and users […] The system makes decisions on its own, using high-‐level policies; it will constantly check and opHmize its status and automaHcally adapt itself to changing condiHons. An autonomic compuHng framework is composed of autonomic components (AC) interacHng with each other […] with sensors (for self-‐monitoring), effectors (for self-‐adjustment), knowledge and planner/adapter for exploiHng policies based on self-‐ and environment awareness.
• The autonomic components are the enHHes • EnHHes have: • Sensors, which provide data to the external world • Effectors, which cause the enHty to change in some way • Sensor data drives policies; policies drive effectors to make changes; a conHnually-‐adapHng feedback loop • Management can happen locally at the enHty; or be escalated up the tree to be managed there
2014 • Current version is 0.8.0 • Released 14th September 2015 • Includes source and binary releases • Our third release in the Apache Incubator • Code is sHll in rapid development but stabilising as we approach version 1.0 • Expected early 2016
• 10 mentors • A number of addiHonal developers and contributors • A number of commercial customers (via Cloudso3) • A number of academic users • We sHll a small community -‐ but growing all the Hme!
and more diverse community • …so please join us! • Download and run, try out deployments • Share your experiences on the mailing list • Bug reports, code contribuHons, documentaHon contribuHons • Tell us how to make it be1er!
great so3ware engineers • To work on Apache Brooklyn and other open source projects, and with our commercial clients who are puzng it into producHon • Brooklyn is wriSen in Java with a JavaScript front-‐end, but Java/JavaScript experience not an issue -‐ because we know that great so3ware engineers can adapt and learn • LocaHon not an issue -‐ we have a distributed team [email protected]