Pivotal Cloud Foundry (PCF) Integration with Elastic Cloud Storage (ECS)

Recently, I was involved in integrating Pivotal Cloud Foundry with Elastic Cloud Storage (ECS), an object storage solution from EMC.

In this post, I'm going to document the hiccups we faced during this integration and how did we resolve this, so that it is easier for other folks who would like to carry out this integration.



References:

and the service broker code from git hub,https://github.com/spiegela/ecs-cf-service-broker



1. application.yml file Configuration:


First task would be to update the application.yml file in the broker code to have the correct configuration.

Note the spring profiles created in yml file. The active spring profile is defined in the build.gradle file to be 'development'. So based on that, we need to update the correct section in the yml file.

Under the broker section:

a) Provide a valid ECS namespace name (The namespace name is case sensitive). Under this namespace, PCF would create a bucket to store all the metadata related to this integration.


b) Provide a valid ECS replication group name (case sensitive).



c) Provide a management end point, which would generally be a https end point (with port 4443).
For eg, https://10.20.30.40:4443

d) Provide an object end point, which in our case was same as management end point (or /object/bucket suffix in the url)

e) Add a password property in this section and set it to the ECS password (This attribute is missing in the application.yml file, but you can see this property in the BrokerConfig.java file)

2. Enable SSL handshake communication:


Second task is to enable SSL handshake between the Service Broker and ECS. The broker uses the public key file localhost.pem file which is present in src/main/resources folder. We will need to replace this file with a public key file corresponding to our ECS installation.

Let's export the public certificate from our ECS application. 
a) Open the ECS application in a browser (say Chrome)

b) Follow these steps to save the certificate from ECS to local file system.
http://docs.bvstools.com/home/ssl-documentation/exporting-certificate-authorities-cas-from-a-website
c) Lets say in step b) above, the file was saved as ecscert.cer

d) Now , we will need to convert the public key file format from .cert to .pem. We will use Java keytool for this. There could be other tools for performing this step as well.

e) Run the following commands from command prompt. We are creating a sample keystore temporarily. We have named it as 'mytest', it would be temporary and doesnt matter. While creating this, it would ask for a password which should be remembered as it is required in further steps.
In the third command, below provide path to the ecscert.cer. If you are running these commands from same directory as the cert file, then provide the file name, otherwise complete path to the file.  
keytool -genkey -alias test -keystore mytest
keytool -delete -alias test -keystore mytest
keytool -import -trustcacerts -alias test -file ecscert.cer -keystore test.keystore
keytool -exportcert -alias test -file localhost.pem -rfc -keystore test.keystore
After the fourth command above, it would create a new file localhost.pem file which is what we would need.
f) Copy the above localhost.pem to src/main/resources and replace the existing localhost.pem file.

3. Service Broker security:


The service broker application uses spring security, so it uses a default username called 'user' and a password as defined in the below section (depending on the spring profile which you choose):

security:
  user:
    password: password
So, with the above config, the broker would be secured using credentials user/password.

4. Service Broker API Version:


Cloud Foundry comes with different Service Broker API versions and the broker application has to be compatible with it. This broker application uses API version 2.8, but your Cloud Foundry might expect a different version. You can use declare a bean to provide a new BrokerAPIVersion(). In our case, we simply set  the brokerApiVersion field property in BrokerConfig.java to 2.7. 


5. Push Service Broker app to Cloud Foundry:


The service broker application should be pushed to Cloud Foundry just like any other application. Sometimes is better to run this application locally to check if it is working fine.
a) Build the application using 'gradlew assemble'

b) Run the application using java -jar build/libs/ecs-cf-service-broker-0.0.1-SNAPSHOT.jar to see if it starts without any issues.

 c) Push the application to Cloud Foundry. We used memory of 750M for this.


6. Register Service Broker with Cloud Foundry:


Once the application is pushed successfully, we need to register the broker, so that it would appear in Cloud Foundry marketplace.
Run these commands after logging into CF CLI as admin.
a) cf create-service-broker ecs-broker user password https://ecs-broker-url
Note that the user & password above, are the broker credentials configured in step 3. The url is the service broker application URL, which we get after pushing to Cloud Foundry.

b) cf enable-service-access  ecs-namespace

c) cf enable-service-access  ecs-bucket 

d) cf marketplace
   
The fourth command above, 'cf marketplace' should display the ecs-broker service.


7. Verify Bucket Creation in ECS:


Login to ECS, go the namespace configured in Step 1. We would see a bucket 'ecs-cf-broker-repository'. This bucket was created by Cloud Foundry as part of integration.

Conclusion:

Bingo!, these steps would help us to successfully integrate ECS with Cloud Foundry and ready to rock and get ready to write cool Cloud Native applications using ECS Object Storage!!








Comments

  1. Thanks for letting us know very informative article. keep updating useful thoughts with us
    Web Hosting companies in India | VPS Hosting India | VPS Hosting Plans | VPS Hosting companies India

    ReplyDelete
  2. Thank you.. but article wrongly interpreted. as ECS is not cloud storage its Container Service !

    ReplyDelete
    Replies
    1. Hi, I think you got confused with Amazon ECS which is a container service. However, the ECS mentioned here is Elastic Cloud Storage solution from Dell EMC, which is an object storage solution like S3.

      Delete
  3. I was looking for this certain information for a long time. Thank you and good luck.Blueprism online training

    Blue Prism Training in Pune

    ReplyDelete
  4. I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article.
    ict based solutions bahrain

    ReplyDelete
  5. This is so elegant and logical and clearly explained. Brilliantly goes through what could be a complex process and makes it obvious.
    cloud foundry training
    pivotal tutorial

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. Learn Amazon Web Services for making your career as a shining sun with Infycle Technologies. Infycle Technologies is the best AWS training center in Chennai, providing complete hands-on practical training of professional specialists in the field. In addition to that, it also offers numerous programming language tutors in the software industry such as Oracle, Java, Python, AWS, Hadoop, etc. Once after the training, interviews will be arranged for the candidates, so that, they can set their career without any struggle. Of all that, 200% placement assurance will be given here. To have the best career, call 7502633633 to Infycle Technologies and grab a free demo to know more.

    ReplyDelete
  10. This information is really awesome thanks for sharing most valuable information.
    Devops Training Institute in Pune
    Devops Training in Pune

    ReplyDelete
  11. Along with it also has a live casino 24 hours a day. สมัคร ufa Bet online gambling website is available to play with all casinos, baccarat, slots, roulette, dice and many other card games. We have gathered it here. With many promotions Apply for UEFA Bet now, we are happy to serve you all. With a professional team ready to solve problems And serve all of you There is a team to support the service. And answer your questions 24 hours a day.

    ReplyDelete
  12. AWS training in chennai | Infycle technologies

    Description:
    If AWS is a job that you're dreaming of, then we, Infycle are with you to make your dream into reality. Infycle Technologies offers the best AWS Training in Chennai, with various levels of highly demanded software courses such as Oracle, Java, Python, Hadoop, Big Data, etc., in 100% hands-on practical training with specialized tutors in the field. Along with that, the pre-interviews will be given for the candidates, so that, they can face the interviews with complete knowledge. To know more, dial 7502633633 for more.
    Best AWS Training in Chennai

    ReplyDelete
  13. Online slots (Slot Online) is the launch of a gambling machine. Slot machine As stated above Used to make electronic games referred to as web-based slots, due to the development era, many people have turned to gamble with one another by computers. Will draw slot games to make web based gambling games Via the web network system Which players can play through the slot plan or will perform Slots through the service provider's site Which internet slots games are available in the form of participating in guidelines. It is similar to playing on a slot machine. Both realistic pictures as well as sounds are at the same time thrilling as they go to lounge in the casino ever.
    บาคาร่า
    ufa
    ufabet
    แทงบอล
    แทงบอล
    แทงบอล

    ReplyDelete
  14. Decent post. I learn something absolutely new and testing on sites I StumbleUpon consistently. It's consistently valuable to peruse articles from different writers and work on something from different destinations. best interiors

    ReplyDelete
  15. Grab the Digital Marketing Training in Chennai from Infycle Technologies, the best software training institute, and Placement center in Chennai which is providing professional software courses such as Data Science, Artificial Intelligence, Cyber Security, Big Data, Java, Hadoop, Selenium, Android, and iOS Development, DevOps, Oracle etc with 100% hands-on practical training. Dial 7502633633 to get more info and a free demo and to grab the certification for having a peak rise in your career.

    ReplyDelete
  16. Infycle Technologies, the top software training institute and placement center in Chennai offers the Digital Marketing course in Chennai for freshers, students, and tech professionals at the best offers. In addition to the Oracle training, other in-demand courses such as DevOps, Data Science, Python, Selenium, Big Data, Java, Power BI, Oracle will also be trained with 100% practical classes. After the completion of training, the trainees will be sent for placement interviews in the top MNC's. Call 7504633633 to get more info and a free demo.

    ReplyDelete
  17. Thanks for the detailed article on this topic. I would like to see more such awesome articles from you.

    ReplyDelete
  18. If you are dreaming of an IT job !!! Then AWS Course in Chennai!!Is the best choice for you. Yes, what you heard is Right Infycle offering you an AWS course for an Affordable price with experienced trainees, Practical Classes, Flexible timing, and more.

    ReplyDelete
  19. share large videos I’m going to read this. I’ll be sure to come back. thanks for sharing. and also This article gives the light in which we can observe the reality. this is very nice one and gives indepth information. thanks for this nice article...

    ReplyDelete
  20. Thanks for writing such a good article, I stumbled onto your blog and read a few post. I like your style of writing...
    เว็บยูฟ่าเบท

    ReplyDelete
  21. This comment has been removed by the author.

    ReplyDelete
  22. I love your blog! You always have such interesting and thought-provoking content. google workspace cost

    ReplyDelete

Post a Comment

Popular posts from this blog

Restful code example using Spring MVC

Spring Integration - Bulk processing Example