Awesome! great progress Nanduni.

If you want to test with private docker registry, I have setup internal
private docker registry [1], you can use it for push/pull docker images. It
required authentication ( your WSO2 credentials - username : email,
Password: email password ). You need to do docker login first to pull/push
docker images. (please note currently this is only work inside the WSO2
network)

Lets try CF locally.


[1] https://dockerhub.private.wso2.com

On Mon, Feb 15, 2016 at 11:25 PM, Nanduni Nimalsiri <nand...@wso2.com>
wrote:

> Hi,
>
> I was able to deploy Docker images in Cloud Foundry with Diego. Here I am
> going to clear several facts regarding that.
>
> There are several approaches of integrating Docker with Cloud Foundry. If
> I summarize them, they are are follows. Each of them possesses different
> limitations.
>
>
> *Integrating Docker with Cloud Foundry*
>
> *1. Docker Buildpack - *Provides framework and runtime support for the
> applications. When we push an application, Cloud Foundry automatically
> detects which buildpack is required and installs it on the Droplet
> Execution Agent (DEA) where the application needs to run.
>
> *2. Docker Service Provider - * A service provider to expose Docker
> containers as services.
>
> *3. Cloud Rocker *- A project carried out by a company called 'Cloud
> Credo' which builds docker images using Cloud Foundry buildpacks. If you
> don't want to use Cloud Foundry but you want to use its buildpack system,
> this is the best choice.
>
> *4. Diego - *Rewrite of DEA. In a Cloud Foundry deployment without Diego,
> the Cloud Controller schedules and manages applications on the DEA nodes.
> Diego replaces the DEAs and the Health Manager, and assumes application
> scheduling and management responsibility from the Cloud Controller. Diego
> is special because it provides built-in-support for Docker containers.
>
> *5. Lattice - *Lattice is a standalone scheduler extracted from Diego for
> Docker images. If Cloud Foundry is too much, Lattice might be a suitable
> project. Lattice tries to be little simpler and easier to set up with less
> features around it. The nice thing about this Lattice system is that it is
> super light weight.
>
> Out of the aforementioned approaches, I used 4th option - Diego in Cloud
> Foundry. As mentiond above, Diego builds out the new runtime architecture
> for Cloud Foundry, replacing the DEAs and Health Manager. In fact, *Cloud
> Foundry now encourages the use of Diego.*
>
> *Using Diego with Cloud Foundry*
>
> First I tried to use Diego with PWS (Pivotal Web Services). Then it gave
> me errors in enabling Diego feature due to conflicts in administrator
> privileges. In that case, I have been running the 60 days trial version of
> Pivotal.io and that's why I had no administrator control because PWS is a
> shared platform.
>
> So the next option was to run Diego locally in my machine so that I can
> then get admin control and do whatever I want with the system. So I used* 
> Cloud
> Foundry Diego [BOSH release] *in [1] for that. With several
> modifications, I managed to deploy Docker containers eventually. Here are
> the steps I followed.
>
> 1. Uploaded the latest version of the Warden BOSH-Lite stemcell directly
> to BOSH-Lite
> 2. Used two releases to generate two manifests basically. They are
> cf-relaese and diego-release.
> 3. Generated CF manifest and Diego manifest.
> 4. Created, uploaded, and deployed the CF release.
> 5. Uploaded the latest garden-linux-release.
> 6. Uploaded the latest etcd-release.
> 7. Created, uploaded, and deployed the Diego release
> 8. Logged in to CF and enabled Docker support.
> 9. Deployed cloudfoundry/lattice-app docker image.
> 10. Scaled the number of instances and so on...
>
> [1] https://github.com/cloudfoundry-incubator/diego-release
>
>
> *Containers vs Buildpacks*
>
> If I move to the Docker buildpacks, I could not find any buildpack
> compatible for deploying Docker images yet. I am trying on it, but the
> problem seems that they require some external Docker host which I have no
> idea on how to set up.
>
> Meanwhile, I found several pros and cons with these two approaches:
> Buildpack mechanism and Container mechanism. I have summarized them as
> below.
>
> *Containers are better when*,
>                         - Developers require more control
>                         - Developers know Operations/Docker
>                         - Time to market is important
>
> *Buildpacks are better when*,
>                         - Operations require more control
>                         - Developers focus on application
>                         - Low maintenance cost is important
>
> Since we already have Docker images for WSO2 products (k8s artifacts) , I
> suggest that we can use Diego for deploying WSO2 products in Cloud Foundry.
> But the problem seems that they are private images and still I have no idea
> on how we should proceed with docker images that are not available in
> Docker Hub. I suppose that there is some mechanism with 'Private Docker
> Registry' in Diego. Meanwhile there are some other limitations of this
> approach such as port based health check etc. which blocks deploying some
> Docker images.
>
> Please add your comments on this.
>
> Best regards,
> Nanduni.
>
> *Nanduni Nimalsiri*
> Software Engineering Intern, WSO2 Inc. (http://wso2.com)
> email : nand...@wso2.com
> blog : http://nanduni.blogspot.com/
> mobile : +94714114256
>
>
> *Nanduni Nimalsiri*
> Software Engineering Intern, WSO2 Inc. (http://wso2.com)
> email : nand...@wso2.com
> blog : http://nanduni.blogspot.com/
> mobile : +94714114256
>
>
> On Tue, Feb 9, 2016 at 12:51 PM, Lakmal Warusawithana <lak...@wso2.com>
> wrote:
>
>> Initial stage, don't worry about to use public docker hub images. If it
>> working with docker hub, we can make it to work with private docker registry
>>
>> On Tue, Feb 9, 2016 at 12:43 PM, Nanduni Nimalsiri <nand...@wso2.com>
>> wrote:
>>
>>> Hi Chamila,
>>>
>>> Yes we can use custom buildpacks to deploy on Cloud Foundry. I am not
>>> familiar with all WSO2 products, but I suppose that we need to run shell
>>> files in most cases. So we can customize or build our own buildpack to
>>> detect those files.
>>>
>>> Diego is a separate approach. It is a new run time that replaces DEA in
>>> Cloud Foundry. With Diego, we can use Docker images to push applications to
>>> Cloud Foundry, But there are some limitations. We need the images to be
>>> available in Docker Hub publicly. But I found that there's something new
>>> called 'Private Docker Registry' in Diego that enables to use private
>>> Docker images where users are prompted for credentials during staging the
>>> app. I was unable to run Diego as it requires administrator privileges to
>>> enable docker support for me.
>>>
>>> Also there is a cf-docker buildpack that detects Docker images. It also
>>> has the above mentioned limitations. I am not sure if we can customize that
>>> buildpack to detect private images as well. They say that it is just a
>>> proof of concept.
>>>
>>> I have tried to get help from cf-dev mailing lists as well. They suggest
>>> that I need to have administrator privileges to resolve above scenarios.
>>>
>>> Best Regards,
>>> Nanduni
>>>
>>>
>>>
>>> *Nanduni Nimalsiri*
>>> Software Engineering Intern, WSO2 Inc. (http://wso2.com)
>>> email : nand...@wso2.com
>>> blog : http://nanduni.blogspot.com/
>>> mobile : +94714114256
>>>
>>>
>>> On Tue, Feb 9, 2016 at 12:01 PM, Chamila De Alwis <chami...@wso2.com>
>>> wrote:
>>>
>>>> Hi Nanduni,
>>>>
>>>> Wouldn't writing a custom buildpack (for each product) [1] allow us to
>>>> deploy a given artifact on CloudFoundry? We'd have to write the detect,
>>>> compile, and release scripts separately.
>>>>
>>>> Is there any difference between that approach and using Docker images?
>>>>
>>>> [1] - https://docs.cloudfoundry.org/buildpacks/custom.html
>>>>
>>>>
>>>> Regards,
>>>> Chamila de Alwis
>>>> Committer and PMC Member - Apache Stratos
>>>> Software Engineer | WSO2 | +94772207163
>>>> Blog: code.chamiladealwis.com
>>>>
>>>>
>>>>
>>>> On Mon, Feb 8, 2016 at 9:00 AM, Nanduni Nimalsiri <nand...@wso2.com>
>>>> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> By now, I have managed to deploy applications in Cloud Foundry via,
>>>>> 1. bosh-lite ( a vagrant VM that comes with pre-installed BOSH server
>>>>> or Director)
>>>>> 2. Hosted solutions such as Pivotal web services (pivotal.io)
>>>>>
>>>>> I deployed Tomcat server in Cloud Foundry as well. But I was not able
>>>>> to deploy Docker in Cloud Foundry via Diego. It gives me some errors
>>>>> regarding admin permissions.
>>>>> I found that there are Heroku buildpacks on Docker and they are
>>>>> perfectly compatible with Cloud Foundry too.
>>>>>
>>>>> [1] https://github.com/duglin/cf-docker
>>>>> [1] is another buildpack that supports Docker, but there are several
>>>>> limitations as this buildpack requires that you have a Docker host
>>>>> available for it to access, and you need to also have a Docker container
>>>>> manager app (cf-docker) running that will sync the Cloud Foundry runtime
>>>>> with the Docker containers.
>>>>>
>>>>> My blog in the following link will be useful for any one to get an
>>>>> idea on deploying applications in Cloud Foundry.
>>>>> http://nanduni.blogspot.com/
>>>>>
>>>>> Best regards,
>>>>> Nanduni.
>>>>>
>>>>>
>>>>>
>>>>> *Nanduni Nimalsiri*
>>>>> Software Engineering Intern, WSO2 Inc. (http://wso2.com)
>>>>> email : nand...@wso2.com
>>>>> blog : http://nanduni.blogspot.com/
>>>>> mobile : +94714114256
>>>>>
>>>>>
>>>>> On Sun, Feb 7, 2016 at 11:49 PM, Malmee Weerasinghe <mal...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Imesh,
>>>>>>
>>>>>> I have done a background research on Cloud Foundry and the blog under
>>>>>> the following link contains the documentation of the research. I will
>>>>>> include more posts on deploying Cloud Foundry with bosh lite and running
>>>>>> simple applications on it, as I have studied so far.
>>>>>>
>>>>>>
>>>>>> http://malmeeweerasinghe.blogspot.com/2016/02/introduction-to-cloud-foundry.html
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> On Fri, Feb 5, 2016 at 10:31 PM, Imesh Gunaratne <im...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi All,
>>>>>>>
>>>>>>> Shall we summarize the research work we have done so far and our
>>>>>>> approach towards $subject?
>>>>>>>
>>>>>>> I know some of us have already done below, it might be better to
>>>>>>> document this:
>>>>>>>
>>>>>>>    - PaaS features of CF
>>>>>>>    - Steps for setting up a local environment with Vagrant
>>>>>>>    - Running a hello world sample
>>>>>>>    - Running a JVM using a standalone framework
>>>>>>>
>>>>>>> Next we might need to check following:
>>>>>>>
>>>>>>> 1. The ability to use Docker on CF
>>>>>>> 2. The process of creating and managing Warden container images
>>>>>>> 3. Find a mechanism to discover the member list of a cluster and
>>>>>>> implement a Carbon membership scheme
>>>>>>> 4. Create standalone frameworks for Carbon products
>>>>>>> 5. Find a way to apply patches and software updates
>>>>>>> 6. Find a way to implement a centralized logging solution
>>>>>>> 7. Check whether there is a way to monitor the health of the
>>>>>>> containers (similar to cAdvisor and Cockpit UI in Kubernetes)
>>>>>>> 8. Create artifacts required for deploying a Carbon server on CF and
>>>>>>> prepare a guideline.
>>>>>>>
>>>>>>> [1]
>>>>>>> https://github.com/wso2/kubernetes-artifacts/tree/master/common/kubernetes-membership-scheme
>>>>>>>
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> --
>>>>>>> *Imesh Gunaratne*
>>>>>>> Senior Technical Lead
>>>>>>> WSO2 Inc: http://wso2.com
>>>>>>> T: +94 11 214 5345 M: +94 77 374 2057
>>>>>>> W: http://imesh.io
>>>>>>> Lean . Enterprise . Middleware
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Malmee Weerasinghe
>>>>>> WSO2 Intern
>>>>>> mobile : (+94)* 71 7601905* |   email :   <dehan.vith...@aiesec.net>
>>>>>> mal...@wso2.com
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Dev mailing list
>>>>> Dev@wso2.org
>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>
>>>>>
>>>>
>>>
>>
>>
>> --
>> Lakmal Warusawithana
>> Director - Cloud Architecture; WSO2 Inc.
>> Mobile : +94714289692
>> Blog : http://lakmalsview.blogspot.com/
>>
>>
>


-- 
Lakmal Warusawithana
Director - Cloud Architecture; WSO2 Inc.
Mobile : +94714289692
Blog : http://lakmalsview.blogspot.com/
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to