The Apache® Brooklyn™ project announced its 1.0 release. Apache Brooklyn is a tool for managing the deployment, in-life management, and termination of applications. It excels at managing complex applications that are built from many different components spanning multiple hosts, multiple regions, and even multiple cloud providers. It’s great at working with public clouds, but it is also useful for private infrastructure, private and hybrid clouds. Its autonomic engine applies policies to applications to keep them running, healthy, and responsive, to optimise for cost, and to enable rapid disaster recovery.
Apache Brooklyn 1.0 has taken a long journey since its inception, and many people have been involved over that time. We at Cloudsoft would like to congratulate the project and all its contributors on this milestone. Apache Brooklyn is the engine at the heart of Cloudsoft AMP, which means that it can be found in some very large enterprise businesses, running diverse scenarios such as bare-metal, containers and VMware, all hybridised with public clouds. This has allowed Cloudsoft’s engineers to develop and make a large contribution to the Apache Brooklyn project that has massively improved Brooklyn over the years.
The early stages of Apache Brooklyn
Apache Brooklyn began life as internal tooling used by Cloudsoft in 2011. We were developing a cloud-native application, and we were struggling to make it effectively use the cloud. We wanted instances to come and go according to dynamic situations, but there was very little tooling available to help. At the time, tooling for deployment management was centered around fixed infrastructure, and their support for cloud providers was largely an extension of that and didn’t support the dynamism we needed.
We set off firstly adding cloud deployment magic to our product, but then we realised that this was a general-purpose problem, and by separating the deployment magic out of our product into something independent, it could have other uses. OverPaas was born in 2011 as an internal tool to manage application deployments to the cloud. It was soon renamed Brooklyn – not yet with the Apache prefix – after Cloudsoft’s pattern at the time of naming its projects and products after well-known bridges.
Apache: incubator to top-level project to 1.0 release
We didn’t want to keep this tool to ourselves, as it could be useful to many other people. While we were using it for a cloud-native application, it could also be very useful for bringing datacenter-based applications into the cloud. We wanted to maximise its exposure so early on it was decided to open-source the application. In 2012, Brooklyn was published as an open-source product on GitHub.
Brooklyn changed a lot in the early years. Originally, blueprints were written in the Groovy programming language, a derivative of Java. This gave a lot of expression, but was a barrier for many people who didn’t want to use a programming language and an IDE. We joined the OASIS CAMP and TOSCA committees, who were tasked with making a standards specification for APIs for cloud application management. We contributed to the development of these specifications, and CAMP was incorporated into Brooklyn, giving it its REST API and the genesis of declarative blueprints written in YAML. TOSCA support for Brooklyn has also been developed as a separate project.
For the project to be truly open-source, it needed to be community owned and managed, with a separation from any commercial vendor – Cloudsoft knew that we wanted to hand the project over to a well-known open source foundation. We approached The Apache Software Foundation, and Brooklyn was adopted into the Apache Incubator in 2014. The team working on Brooklyn had to learn to throw off their commercial software development habits and adopt The Apache Way. There were a few bumps along this journey, but after a successful transition, the project graduated from the Incubator and became Apache Brooklyn, a top-level Apache project, in 2015.
Cloudsoft AMP: powered by Apache Brooklyn
Since then, Cloudsoft has built its flagship project, which focuses on application resilience; and bringing on-prem enterprise workloads the kind of automation and policies that we have grown to love and rely upon in public clouds, called Cloudsoft AMP on top of Apache Brooklyn. Cloudsoft has kept an active role in the Brooklyn project, assigning its engineers to continue to improve and develop for Brooklyn, alongside other members of the open-source community. The blueprint format, APIs, user interfaces and code quality have stabilised. We have seen many people use Brooklyn and AMP in production scenarios, so we are totally confident in Brooklyn’s production-readiness. With its 1.0 release, a commitment is made to it’s long-term stability.
Thanks to Apache Brooklyn, Cloudsoft AMP is able to provide enterprises with application resilience, and to bring to on-premises enterprise workloads the kind of automation and policies that we have grown to love and rely upon in public clouds.
We’re very proud of Apache Brooklyn, and the contribution we have made to it, alongside its newer open-source community members.
Happy 1.0 🎂 Apache Brooklyn!
By Richard Downer, Principal Engineer, Cloudsoft