Hi team,

This week I participated in a Java conference (
https://2022autumn.javacro.hr/eng) and I demonstrated how Apache Brooklyn
can be used to develop applications for the cloud locally, that get
deployed to little or no change to a cloud provider.  I used the
brooklyn-terraform module to deploy a three tier application to a
local Kubernetes cluster and then migrate it to EKS.

Here are a few things a few things that we must/should do that I figured
out  while preparing the demo and presenting at #javacro2022:

1. When we have a frontend (or anything really) depending on a cluster that
exposes some sensors the frontend needs, deleting the app causes the
dependent component to hang, because the cluster is deleted first. Not sure
if this is caused by the fact that the cluster is a software component, or
maybe we have a race condition between deleting tasks.  I can reproduce it
easily, so this is a bug  that we can and we should fix.
2. We need to add custom terraform types: dbs, servers,  for  most used
cloud providers etc.
3. All terraform entities under the same parent  - when deployed on
Kubernetes - should be deployed under the same namespace - it helps with
cleaning. Also.. maybe in the case of an application that had only
terraform entities deployed on the same Kubernetes cluster as children, a
successful deletion of the namespace should suffice and Apache Brooklyn
should back off instead of trying to delete the entities itself and failing
to do so. We could use the power of Kubernetes when possible.
4. At this conference there were a lot of young people  just dipping their
toes in cloud development and they are interested in Apache Brooklyn for
its ability to help them get used to working on the cloud without an actual
cloud. Maybe a collaboration with Universities for workshops should be
considered. Also we could use some fresh eyes on Brooklyn to get some
feedback, use them as a testing resource and a source of ideas for things
missing in Apache Brooklyn.
5. When terraform deploys over an unstable network, the application deploy
fails in Brooklyn. Is there anything we can do about this? Maybe a retry?
6. One observation from a fellow speaker is that in order to get things
done, we need to write a lot of YAML. I don't particularly disagree, nor
have any idea how to fix it, unless we consider trying to enrich our
catalog with out of the box types for most recent technologies.

That is pretty much it, if anything else comes to mind, I'll make another
list and continue this email thread.

Observation: You might ask why I used Apache Brooklyn to drive a Terraform
deployment on a Kubernetes cluster? Because it provided me the opportunity
to try to create a CAMP blueprint agnostic towards where it got deployed.

-- 

Best regards,
Iuliana Cosmina

<http://rpx.kicks-ass.net>

Reply via email to