Hi all again,
Andrea and me are integrating Cloud Foundry services according to
our last
proposal description (below).
An entity has beed developed which represents generic Cloud Foundry
services and a more complex
entity is focuses on MySql Cloud Foundry service (
VanillaCloudFoundryApplication).
VanillaCloudFoundryApplication allows create an instance of a
available
MySql service
in the Cloud Foundry Platform, as you can see in the next blueprint.
name: Vanilla CloudFoundry example
location: pivotal-ws
services:
- type: org.apache.brooklyn.cloudfoundry.entity.
VanillaCloudFoundryApplication
id: vanilla-app
brooklyn.config:
path:
classpath://brooklyn-example-hello-world-sql-webapp-in-paas.war
buildpack: https://github.com/cloudfoundry/java-buildpack.git
services:
- $brooklyn:component("db”)
env:
brooklyn.example.db.url: $brooklyn:component("db").
attributeWhenReady("service.mysql.jdbc")
- type: org.apache.brooklyn.cloudfoundry.entity.service.
mysql.CloudFoundryMySqlService
id: db
brooklyn.config:
serviceName: cleardb
instanceName: my-cleardb-instance
plan: spark
creationScriptTemplateUrl: classpath://chat-database.sql
You can see that CloudFoundryMySqlService creates an instance of a
available mysql service (in this case cleardb),
initializes the database using a script.sql and and provides a jdbc
database address through a sensor (service.mysql.jdbc).
It allows services to be created by an blueprint together with the
application (which is not supported currently
by Cloud Foundry Manifest). Moreover, it is in charge of
initializing the
database (whether may be useful for users).
So, we have a first working implementation of our proposal. Some
unit and
live test have been developed and it
looks that we are taking a step in the right direction.
With the help of Andrea (thanks a lot for that) I was able to solve
some
questions about the services data management,
we would like to know your opinion about some decisions that we are
still
considering, but let me stop here and share our
questions in a different email, in order to avoid a long and
unreadable
mail.
Thanks a lot.
Best,
Jose
El 08/08/2016, a las 14:52, Jose Carrasco <[email protected]>
escribió:
Hi all,
as we mentioned previously, we have a pretty entity which allows an
application to be deployed on a Cloud Foundry platform by using a
new paas location, CloudFoundryPaasLocation.
Here you can find a simple blueprint which shows the entity usage:
name: CloudFoundryPaasLocation configuration example
location: pivotal-ws
services:
- type: org.apache.brooklyn.cloudfoundry.entity.
VanillaCloudFoundryApplication
id: vanilla-app
brooklyn.config:
name-app: name
path:
classpath://brooklyn-example-hello-world-sql-webapp-in-paas.war
buildpack: https://github.com/cloudfoundry/java-buildpack.git
domain: domain
host: application-host
You can find more examples in [1]. Currently, we are thinking about
supporting
Cloud Foundry service. Documentation [2] says that an existent
service
can be
bound to an application. Then, it looks interesting to use a new
entity
to instantiate
a service, allowing users to create services and bind them to an
application
from a blueprint.
Following, you can find blueprint which shows my proposal to manage
a
service.
name: CloudFoundryPaasLocation configuration example
location: pivotal-ws
services:
- type: org.apache.brooklyn.cloudfoundry.entity.
VanillaCloudFoundryApplication
id: vanilla-app
brooklyn.config:
name-app: name
path:
classpath://brooklyn-example-hello-world-sql-webapp-in-paas.war
buildpack: https://github.com/cloudfoundry/java-buildpack.git
domain: domain
host: application-host
bind:
- instance_name
- type:
org.apache.brooklyn.cloudfoundry.entity.servies.MySqlService
brooklyn.config:
service-type: available_service #which was added to the platform
by a
broker
instance-name: instance_name #used to bind the instance
plan: plan_to_use #offers varying levels of resources or features
for
the same service
creationScriptUrl: script.sql #script to init the database
MySqlService is an entity which allows to create an instance of any
mysql service.
Then, Actually, all the services are created following the same
method,
a service
requires the service-type, the instance-name and the plan to be
created,
then it is
possible to create any service using a generic entity. However, it
looks
interesting
to create a entity for manage MySql services, because it will allow
concrete operations
to be carried out, for example, it allows the database, which is
created
by the service,
to be initialized using a script.sql.
Currently, users have to initialize the database manually after
creating
the service,
so this proposal would facilitate the management of the Cloud
Foundry
services.
Does it make sense for you? I will appreciate any advice and
suggestion
in order
to improve this idea.
Best,
Jose
[1] https://github.com/kiuby88/brooklyn-cloudfoundry/tree/
48c7710f8228acf548ea54469da403ff98dc84a8/src/test/resources
[2] https://docs.cloudfoundry.org/devguide/services/application-
binding.html#bind
El 05/08/2016, a las 19:17, Jose Carrasco <[email protected]>
escribió:
Hi all,
Thanks Andrea for your report. As student I can say you are doing
a
great job as mentor, I am learning a lot about software
architectures,
patterns, and another principles to develop maintainable and
testable code.
I really appreciate that you spend a bit of time every day to direct
me in
the right direction.
During this time we decided to model a PaasLocation in Brooklyn
and to
target initially CF. Then we focus on understanding the CF features
and the
CF manifest which to model what I ended up calling
VanillaCloudFoundryApplication, which models a CF manifest and it is
startable on a PaasLocation. It was necessary a lot of iterations to
get
the current architecture. First, it was decided how the Cloud
Foundry
services had to be managed by the location (through a client), we
spend
quite time chatting and developing examples time reach an extensible
and
useful and testable architecture. Once the first prototype was
ready,
Andrea suggested to introduce the driver pattern, allowing the
entity to
delegate the location management to an driver, what it looks
interesting in
order to generalize our solution. Currently, we are updating the
Cloud
Foundry client that we are using to manage the Cloud Foundry
services, in
order to obtain a more maintainable code. Once this task will be
ready, I
will explore how to generalize this approach to support more
platforms
without refactoring too much the current solution.
Of course you can obtain a track and more concrete information
about
each of our task in our trello [1] board. A lot of aforementioned
decisions
can be also tracked following the open PR in [2].
Best,
Jose
[1]: https://trello.com/b/ZFfueDsu/gsoc2016
[2]: https://github.com/kiuby88/brooklyn-cloudfoundry
El 05/08/2016, a las 17:38, Andrea Turli
<andrea.turli@cloudsoftcorp.
com> escribió:
All,
as GSoC mentor of [1] I'm happy to say that Jose is doing very
well and
he's keeping up a great job on adding PaaS support to Brooklyn
Jose Carrasco is being very active and productive during this
period.
He is
collecting his ideas and documenting his work in this folder [1].
He's
been
quite active on IRC but we have also 1:1 conversations that he's
keen
to
summarize focusing with the design and the main technical
decisions
taken
along the way.
There is also Trello board [2] that we have reviewed with some of
the
Brooklyn committers (Aled, Alex and Robert) Currently the code
produced for
this project is available at [3] but it will be moved to an
apache
soon.
If you are interested please let us know your thoughts/comments,
Sorry for the belated update,
Andrea and Jose
[1]:
https://drive.google.com/a/cloudsoftcorp.com/folderview?id=0BxP_
HXE8tVoFazF4cUV0LXpYSTg&usp=sharing#
[2]: https://trello.com/b/ZFfueDsu/gsoc2016
[3]: https://github.com/kiuby88/brooklyn-cloudfoundry
On 2 May 2016 at 13:00, Jose Carrasco <[email protected]> wrote:
Hi Andrea and all,
Thanks for that. I will try to review and to make some
contributions
to
the mentioned PRs. I have
to develop the proposal that I update to Google Summer of Code,
participate in the community,
develop the documentation, etc. (as Andrea has mentioned) but It
will
give
me great pleasure to
collaborate in different tasks, and functionality developments
:-)
Just a pair of questions about the proposal. I have a pair of
ideas
about
how PaaS entities could be added to
Brooklyn (in fact, I tried a pair of PRs) . The proposal that I
wrote
a
little description about that in the proposal
that I wrote, but I should develop some diagrams about necessary
entities,
locations and how it has to be added
to Brooklyn, then what should I do? should I write a Google
Docs?
should I
open a PR directly? I would prefer to
write a little document before coding. What do you think?
I was a little contributor in a different open project,
brooklyn-tosca. I
tried different examples in order to find new
possible functionalities there, but I was not actively involved
either in
the community chat or in the Mailing List.
I do not want to be a spammer. Probably my routine should be
different for
GSoC, I should ask more questions
about new functionalities and how they should be implemented
before
coding. Does the community use gitter?
In other words, I am still a novice here and I have much to
learn.
Hence,
I will appreciate any advice and suggestion
in order to improve my participation in the project.
Thanks a lot.
Best,
Jose
El 02/05/2016, a las 11:36, Andrea Turli
<andrea.turli@cloudsoftcorp.
com>
escribió:
Hi Jose,
We are now in the "Community Bonding Period (April 22 - May
22)". The
Community Bonding period is intended to get students ready to
start
contributing to your organization full time in May.
We encourage you to try to become familiar with the community
practices
and
processes: participate on Mailing Lists / IRC and ask
questions!
Set up their development environment: following
https://brooklyn.apache.org/v/latest/dev/index.html
Try to participate in code reviews for others. There is a
documentation
PR
open right now [1] or a small PR on brooklyn-server [2] you may
want
to
test to report your feedback or [3] in brooklyn-libray.
Ideally code review should become part of your daily routine,
but of
course, reading (and updating!) documentation and contributing
to
mailing
list / IRC will be appreciated as well.
Best,
Andrea
[1]: https://github.com/apache/brooklyn-docs/pull/49
[2]: https://github.com/apache/brooklyn-server/pull/127
[3]: https://github.com/apache/brooklyn-library/pull/32
On 24 April 2016 at 22:00, Aled Sage <[email protected]>
wrote:
+1
That's awesome - looking forward to you working on this, Jose!
Please do
keep the dev@brooklyn list informed of proposals, progress,
questions,
comments, etc. I'm sure that Andrea, myself and the rest of
the
community
will be very happy to give opinions and help as appropriate.
Aled
On 23/04/2016 00:01, Jose wrote:
Hi all!!
Thanks a lot to all of you in particular to my GSoC mentor,
Andrea. I
am
really looking forward to start :-)
Thank you very much
JoseEl 22/4/2016 23:21, Andrea Turli
<andrea.turli@cloudsoftcorp.
com>
escribió:
Good news for Brooklyn: the proposal got accepted [1]
Congratulations Jose!
Andrea
[1]:
https://summerofcode.withgoogle.com/dashboard/
organization/5694656234913792/proposal/6531111119224832/
Il 14/apr/2016 11:10, "Jose Carrasco" <[email protected]> ha
scritto:
Hi Andrea and all,
sorry, I wrote “I hope that this link about Apache
ranking
process is
useful” but I did not put the link there.
Let me add the link here [1]. Probably, Google should score
some
proposal
aspects but I would say that the mentor and the community
should
also
complete some documentation. In any case, I hope this task
is not
painful
for you.
Best,
Jose
[1]
https://community.apache.org/mentee-ranking-process.html
El 14/04/2016, a las 09:45, Andrea Turli <
[email protected]>
escribió:
Jose,
thanks for the reminder.
Reading https://summerofcode.withgoogle.com/how-it-works/
I'd
say
that
the
GSoC commission will score the projects and will assign
accepted
project
to
mentors by April 22nd.
Andrea
On 14 April 2016 at 01:02, Jose Carrasco
<[email protected]>
wrote:
Hi all
Firstly, I would like to thank all of you, specially to
Andrea
and
Aled,
the effort from your side.
I would like to remind the deadline description which was
sent
by
Aled:
* 2016-04-12: Proposals to ASF projects must be reviewed
roughly
and
have a potential mentor so that we know how many slots to
request.
Proposals that don't have a mentor at this point will be
down-rated.
* 2016-04-18: Proposal scoring must be completed.
Proposals
without a
score will be rejected, no exceptions.
* 2016-04-22: Accepted student proposals announced on the
Google
Summer of Code site.
The proposal should be scoring by my mentor and the
community
(I
think)
before 2016-04-18. Please, feel free to read and score
the
proposal
according your priorities and requirements. Probably, you
will
found a
form
and the required documentation in your Web GSoC
Application
side. I
hope
that this link about Apache ranking process is useful for
you.
In
any
case,
I am looking forward to hearing from you and do not
hesitate to
ask
any
question you have. I am really happy with this and I, of
course,
understand
you need to review in depth the proposal and to take a
decision.
Thanks again.
Best,
Jose
El 13/04/2016, a las 08:57, Andrea Turli <
[email protected]>
escribió:
Jose,
I'm indeed happy to mentor you.
I will try to add myself as a mentor and will update you
shortly.
Andrea
On 12 April 2016 at 23:48, Jose Carrasco
<[email protected]>
wrote:
Hi again,
I found this link about becoming a mentor
https://community.apache.org/guide-to-being-a-mentor.html
Best,
Jose
El 12/04/2016, a las 23:44, Jose Carrasco
<[email protected]>
escribió:
Hi,
I do not have any link. I uploaded my proposal from a
standard
form
from
the web and I selected Apache as a form’s field.
I only have this link
https://community.apache.org/gsoc.html#applying-for-gsoc
but I
think
you
already know it.
(I sent you in a private email the think to the
proposal).
Best,
Jose
El 12/04/2016, a las 23:39, Aled Sage
<[email protected]>
escribió:
Hi Jose,
The timeline on
https://community.apache.org/gsoc.html
says
the
next
steps are:
* 2016-04-12: Proposals to ASF projects must be
reviewed
roughly
and
have a potential mentor so that we know how many
slots to
request.
Proposals that don't have a mentor at this point will
be
down-rated.
* 2016-04-18: Proposal scoring must be completed.
Proposals
without
a
score will be rejected, no exceptions.
* 2016-04-22: Accepted student proposals announced on
the
Google
Summer of Code site.
Do you have a link (on the Apache site) to the
application
you
submitted?
Aled
On 12/04/2016 22:33, Jose Carrasco wrote:
Hi Aled.
I will be very happy to work with Andrea Turli :-)
I cannot selected a mentor and I can not see any
assigned
mentor
from
my web profile,
probably it may be added from Apache organization web
profile.
Today it is the last day? Probably an extension will
be
available a
pair of days (I hope). Let me know if I need to do
something,
or sending more information.
Thanks a lot for your reply.
Best regards,
Jose
El 12/04/2016, a las 23:24, Aled Sage <
[email protected]>
escribió:
Hi Jose,
Thanks for this - sounds like a great idea. I'm
sure the
community
(myself included) will be very happy to support it!
I believe the next step is that you need a mentor in
the
Brooklyn
community. I know that Andrea Turli would be happy
to
volunteer
(I
just
spoke to him offline).
According to the timeline on
https://community.apache.org/gsoc.html
:
/2016-04-12: Proposals to ASF projects must be reviewed
roughly
and
have a potential mentor so that we know how many slots to
request.
Proposals that don't have a mentor at this point
will be
down-rated./
Can you therefore ensure that your application says you
have a
mentor, ideally updating it today? (I'm not sure
what the
process is
for
this).
Aled
On 12/04/2016 12:31, Jose Carrasco wrote:
Hi all,
I am Jose Carrasco (a.k.a kiuby88).
I am very interesting on adding PaaS platform
support
to the
Brooklyn project. I have already forked brooklyn
projects and
have
developed some first approaches to add CloudFoundry to
Brooklyn.
I
opened
some PRs, and I obtained an excellent feedback. I would
like
to
update
my
PRs but I am very busy with the SeaClouds European
open-project.
I do think PaaS support could be a good feature, and I
would
like
to
continue that work. Because of that, I applied to Google
Summer of
Code
to
Apache organization. I updated a proposal about PaaS
services
addition
to
Brooklyn. I think it is a great opportunity. I know
Brooklyn a
quite
well
(because I have develop some new entities for
SeaClouds), and
I
have
also
collaborated on cloudsoft/brooklyn-tosca project. I am
really
interested on
this. Probably I should have written previously to the
application
for
Google Summer of Code, but I decided it too late and
the
application’s
deadline was so close.. I do not know if I can put the
proposal
link
here.
But if you are interesting I will be happy send it to
you.
I am looking forward to hearing from you and do not
hesitate to
ask
any question you have.
Best regards,
Jose Carrasco