Deploying using the latest minimal image of Pharo (6.1)
Hi, In in the past days, in the context of the Smalltalks 2017 conference, I talked about my attempt <https://docs.google.com/presentation/d/1CEyubkv1DT7kQi3oDpHoYWnbeR5YZKhX-mVf...> to deploy on production using the minimal image of Pharo . My goal was prepare an inmutable or staless minimal image for deploy, without sources nor changes files. The results are exposed in this tutorial <https://github.com/despotadesdibujau/southsmalltalks/blob/master/docs/how-to...> . The size of the image is 16 MB and it has loaded Seaside. Just I have a pendeing issue: the staless image but everything else is done and working.
On 19 Nov 2017, at 01:33, gabriel sor <despotadesdibujau@gmail.com> wrote:
Hi, In in the past days, in the context of the Smalltalks 2017 conference, I talked about my attempt to deploy on production using the minimal image of Pharo . My goal was prepare an inmutable or staless minimal image for deploy, without sources nor changes files. The results are exposed in this tutorial. The size of the image is 16 MB and it has loaded Seaside. Just I have a pendeing issue: the staless image but everything else is done and working.
Great work, Gabriel, thanks for sharing. I have yet to look at what you did in detail, but what is your pending issue exactly, because I don't understand "the staless image". Could you elaborate ? Sven
Sven Van Caekenberghe-2 wrote
Great work, Gabriel, thanks for sharing. I have yet to look at what you did in detail, but what is your pending issue exactly, because I don't understand "the staless image". Could you elaborate ?
Sven
Thanks!!! Ja!, I wanted to say "stateless":eliminate the possibility of modify the state of the image once it is in production. That I did was downloaded the minimal image of Pharo, I faced with some issues to load my application using filetree or github. I found the solution just loading through Monticello the missing dependecies that Metacello needed to use filetree and github repositories. I delivered an application to a final user just using the minimal image and it is working. My idea is to prepare a minimal image with every tool for load code:Monticello,Metacello suporting all types of repositories (filetree,github,gitbucket, gitlab,...etc),...etc. Then, when my application is loaded, unload those tools and disable the command line handlers (if is posible), and eliminate all unnecessary files like changes and sources ( thank you <http://forum.world.st/How-to-deploy-headless-app-without-changes-and-source-...> ). Gabriel -- Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
2017-11-19 19:05 GMT+01:00 despotadesdibujau <despotadesdibujau@gmail.com>:
Sven Van Caekenberghe-2 wrote
Great work, Gabriel, thanks for sharing. I have yet to look at what you did in detail, but what is your pending issue exactly, because I don't understand "the staless image". Could you elaborate ?
Sven
Thanks!!! Ja!, I wanted to say "stateless":eliminate the possibility of modify the state of the image once it is in production. That I did was downloaded the minimal image of Pharo, I faced with some issues to load my application using filetree or github. I found the solution just loading through Monticello the missing dependecies that Metacello needed to use filetree and github repositories. I delivered an application to a final user just using the minimal image and it is working. My idea is to prepare a minimal image with every tool for load code:Monticello,Metacello suporting all types of repositories (filetree,github,gitbucket, gitlab,...etc),...etc.
In Pharo 7 most of them are already part of the the minimal (Metacello) image. -- Pavel
Then, when my application is loaded, unload those tools and disable the command line handlers (if is posible), and eliminate all unnecessary files like changes and sources ( thank you <http://forum.world.st/How-to-deploy-headless-app-without- changes-and-source-files-td4949556.html> ).
Gabriel
-- Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
Hi Gabriel This is cool. Thanks for sharing it with us. I really want an object responsible for deploying an app. :) Your effort is nice in that directory. Keep pushing Stef On Sun, Nov 19, 2017 at 1:33 AM, gabriel sor <despotadesdibujau@gmail.com> wrote:
Hi, In in the past days, in the context of the Smalltalks 2017 conference, I talked about my attempt to deploy on production using the minimal image of Pharo . My goal was prepare an inmutable or staless minimal image for deploy, without sources nor changes files. The results are exposed in this tutorial. The size of the image is 16 MB and it has loaded Seaside. Just I have a pendeing issue: the staless image but everything else is done and working.
Hi Gabriel
This is cool. Thanks for sharing it with us. I really want an object responsible for deploying an app. :) Your effort is nice in that directory. Keep pushing
Stef Thanks!!!
Maxi Tabacman suggests me to reify the deployment process. I thought of something like to get up a minimal image from inside the development image, then to start the deployment process from the development image. I suppose that I would need to use Espell Object Spaces (Guillermo Polito), but in this case, I would need a special virtual machine (Oz Virtual Machine)... Something like Tornado, but not using the "Run Fail Grow" approach, but using a BaselineOf or ConfigurationOf approach. Another idea (simpler than the idea above) is to communicate the two images using Teapot or Sockets: The Development image sends orders to the minimal image until it becomes on the deployment image. For the moment I need to test the process (on Pharo 6 and 7) using more complex applications until it becomes a reliable process. Gabriel -- Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
Yes your second scenario looks cool to me :). Keep us informed because this is really exciting. Stef On Thu, Nov 23, 2017 at 10:13 PM, despotadesdibujau <despotadesdibujau@gmail.com> wrote:
Hi Gabriel
This is cool. Thanks for sharing it with us. I really want an object responsible for deploying an app. :) Your effort is nice in that directory. Keep pushing
Stef Thanks!!!
Maxi Tabacman suggests me to reify the deployment process. I thought of something like to get up a minimal image from inside the development image, then to start the deployment process from the development image. I suppose that I would need to use Espell Object Spaces (Guillermo Polito), but in this case, I would need a special virtual machine (Oz Virtual Machine)... Something like Tornado, but not using the "Run Fail Grow" approach, but using a BaselineOf or ConfigurationOf approach. Another idea (simpler than the idea above) is to communicate the two images using Teapot or Sockets: The Development image sends orders to the minimal image until it becomes on the deployment image.
For the moment I need to test the process (on Pharo 6 and 7) using more complex applications until it becomes a reliable process.
Gabriel
-- Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
On 24 November 2017 at 05:13, despotadesdibujau <despotadesdibujau@gmail.com
wrote:
Hi Gabriel
This is cool. Thanks for sharing it with us. I really want an object responsible for deploying an app. :) Your effort is nice in that directory. Keep pushing
Stef Thanks!!!
Maxi Tabacman suggests me to reify the deployment process. I thought of something like to get up a minimal image from inside the development image, then to start the deployment process from the development image. I suppose that I would need to use Espell Object Spaces (Guillermo Polito), but in this case, I would need a special virtual machine (Oz Virtual Machine)... Something like Tornado, but not using the "Run Fail Grow" approach, but using a BaselineOf or ConfigurationOf approach.
Another idea (simpler than the idea above) is to communicate the two images using Teapot or Sockets: The Development image sends orders to the minimal image until it becomes on the deployment image.
This sounds like a good initiative, but Teapot seems a bit too specific and Sockets seems a bit too low level. Consider building on top of TelePharo, or being its sibling by building on top of Seamless. These seem better suited to being part of every image than Teapot. * http://forum.world.st/Ann-PharmIDE-is-renamed-to-TelePharo-and-moved-to-gith... * https://dionisiydk.blogspot.com.au/2017/01/pharmide-pharo-remote-ide-to-deve... * http://forum.world.st/Ann-Major-Seamless-update-td4907335.html Others might comment on which is the best level abstraction to use. cheers -ben For the moment I need to test the process (on Pharo 6 and 7) using more
complex applications until it becomes a reliable process.
Gabriel
-- Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
My idea was even to create objects that generate even bash scripts and all the rest but have objects that we can control and probably to be loaded in another image. I just hate all the undebuggable scripts. On Fri, Nov 24, 2017 at 3:16 AM, Ben Coman <btc@openinworld.com> wrote:
On 24 November 2017 at 05:13, despotadesdibujau <despotadesdibujau@gmail.com> wrote:
Hi Gabriel
This is cool. Thanks for sharing it with us. I really want an object responsible for deploying an app. :) Your effort is nice in that directory. Keep pushing
Stef Thanks!!!
Maxi Tabacman suggests me to reify the deployment process. I thought of something like to get up a minimal image from inside the development image, then to start the deployment process from the development image. I suppose that I would need to use Espell Object Spaces (Guillermo Polito), but in this case, I would need a special virtual machine (Oz Virtual Machine)... Something like Tornado, but not using the "Run Fail Grow" approach, but using a BaselineOf or ConfigurationOf approach.
Another idea (simpler than the idea above) is to communicate the two images using Teapot or Sockets: The Development image sends orders to the minimal image until it becomes on the deployment image.
This sounds like a good initiative, but Teapot seems a bit too specific and Sockets seems a bit too low level. Consider building on top of TelePharo, or being its sibling by building on top of Seamless. These seem better suited to being part of every image than Teapot. * http://forum.world.st/Ann-PharmIDE-is-renamed-to-TelePharo-and-moved-to-gith... * https://dionisiydk.blogspot.com.au/2017/01/pharmide-pharo-remote-ide-to-deve... * http://forum.world.st/Ann-Major-Seamless-update-td4907335.html
Others might comment on which is the best level abstraction to use.
cheers -ben
For the moment I need to test the process (on Pharo 6 and 7) using more complex applications until it becomes a reliable process.
Gabriel
-- Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html
participants (6)
-
Ben Coman -
despotadesdibujau -
gabriel sor -
Pavel Krivanek -
Stephane Ducasse -
Sven Van Caekenberghe