Simphony-Remote - Accessing containerized desktop and web apps with a browser
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Borini, Stefano
SimPhoNy Remote is a web application that coordinates the execution of Docker images. These images have been tailored to a specific use case: accessing a Desktop or Web application combining JupyterHub, Docker and noVNC. The resulting product is flexible in authentication methods, easy to install and setup. Users can be granted fine grained permissions not only on the available applications, but also on the execution policy, such as mounted data directories and container execution parameters. In addition to Desktop applications via VNC, SimPhoNy remote supports pure Web applications. At the moment, Jupyter Notebook and a File Browser are available. SimPhoNy Remote can be useful to educators, researchers, and anyone who needs to provide a controlled set of desktop applications to users, accessible via a web browser. The talk does not require advanced technical knowledge to understand the overall concept and use. Through the talk, the audience will learn basic usage of the user and administrative interface, as well as possible use cases of the SimPhoNy Remote application.
 So, good afternoon. My name is Stefano Borini, I work for Enthalt, and I'm going to present you some work we've done for a European project called Symphony, and specifically Symphony Remote, which is an application that we use to access containerized desktop and web application with a web browser. So a brief introduction to Enthalt, we are global leader in scientific and scientific software development in Python for over 15 years. We do software consulting, training, we do support, all focused on Python. We have more than one million user downloads of our software products, a good part of them, open source. We have ad quarters in Austin, Texas, and we also have two offices, one in Cambridge, and one in Mumbai, in India. So the Symphony project is, as I say, the European project, and it's about, it's an acronym, it stands for Simulation Framework for Multiscale Phenomena in Micro and Nano Systems. It's a multi-scale, basically fluid dynamics, and it has been long running, it's a three years project and it's already finished now. There is a follow up called FORCE, and the idea is that they have to do this simulation, this fluid or dynamic simulations, and they have large data sets. They also have custom made software and they don't want to have the problem of deploying this software on the user's machines. So researchers that have to access this computational code and work collaboratively, maybe kind of sit down together and analyze the data together. They have these very, very large data sets and they have to handle them efficiently and they want to be able to deploy, manage this software, and also the potential existence of multiple projects that are unrelated and they want to have something that can be reused. So we developed Symphony Remote to address this requirement, and what it is, is basically it's Jupyter Hub-based and it's a web interface for running this Docker containers. Each container contains one specific application, but if it's a desktop application, you access it via NoVNC, but you can also have web applications, like Jupyter for example. So the idea is that with this approach, you move the application close to the data. You have a terabyte of data, it stays on the remote server, and you move the application close to the data instead of having the researcher download this massive amount of data on their local computer. There is no user installation needed. You just start your browser, navigate, login, and use the application. The workflow becomes synchronous, which means that if you have a long running computation, of course you suspend your session, go home, reopen it later, and you can share both data and application with other users. And of course it can be useful for researchers, but not only for researchers, it can also be used for educators. For example, you have a class of 30 people, they have to use a specific software. You provide that software, they access it without having to install it on each student computer. Of course, high performance computing administrators, and also evaluation and testing. For example, you have a beta product, you want to give preview to your customers, and you basically deploy it and make it available to your customers from the web. So I'm going to give you a demo. Before that, I just want to say the acknowledgement. So basically, as I said, it's an open source project. It is built on top of Jupyter Hub, and it's part of the FP7 framework. As I said, there is a follow-up of this project, which is called FORCE. It's part of Horizon 2020. So I'm going to give you a demo. What you have is basically a Jupyter Hub login, and you can, of course, login with the user. You get a list of applications that we provided and we installed. Right now, there is one running, which is the file manager. But you can switch, of course, among the ones that are available. And of course, you can start them. And now what happens is that Docker starts an image, you get a container running, and this container provides your application. Of course, now the resolution is not particularly friendly, but this is a full application. It's a desktop application, and it's completely isolated. You can, of course, close it. And you can also, well, of course, you can switch between them. And you can also share the session with a shared secret URL, and you can give it to a collaborator of yours, and then access it. So you can basically work together collaboratively while you're maybe researchers. They tend to be delocalized on different research institutions. So if you want to collaborate with someone, talk via Skype, you can work basically on the same virtual desktop. Of course, you also have Jupyter, and you have access to Jupyter. And of course, you can sign out. You're signing again, your application is still there. There is an administrative interface, so if you want to administer it, you have access to a set of statistics. You can also, for example, stop some containers or rogue containers, and you also see which users is using it. You can configure users. You can configure applications, and in particular the association between a user and an application, a specific application, which is called policies. There is one important thing is that if you stop a container and restart it, the application will be completely removed, and the new one that you start will be completely fresh, which means that you have no state. And this is a specific choice because we didn't have, we didn't want to have the problem of a researcher that for whatever reason corrupts his working environment and then needs assistance to do that. So every time he shuts down the application, he can restart it afresh, and it's guaranteed to work. The result is that, of course, nothing of what is created is preserved unless you use a so-called workspace, which you can configure, and it's basically a shared directory. This shared directory is preserved, and it's accessible to all containers, so you can also move data from one container to another. Of course, you can also mount some specific hard drives. So, for example, if I have a large data set that you want to make visible, and of course, you can start and stop how many applications you want, and it's only limited by basically the hardware that you have behind. And this concludes my talk. If you have any questions, I would be happy to answer them. Thank you. Questions? Okay. Then I think it's nearly time for lunch. Yes. Thank the speaker once more. Thank you. Oh, sorry. We'll be right back.
 So, good afternoon.  My name is Stefano Borini, I work for Enthalt, and I'm going to present you some work we've  done for a European project called Symphony, and specifically Symphony Remote, which is  an application that we use to access containerized desktop and web application with a web browser.  So a brief introduction to Enthalt, we are global leader in scientific and scientific  software development in Python for over 15 years.  We do software consulting, training, we do support, all focused on Python.  We have more than one million user downloads of our software products, a good part of them,  open source.  We have ad quarters in Austin, Texas, and we also have two offices, one in Cambridge,  and one in Mumbai, in India.  So the Symphony project is, as I say, the European project, and it's about, it's an acronym,  it stands for Simulation Framework for Multiscale Phenomena in Micro and Nano Systems.  It's a multi-scale, basically fluid dynamics, and it has been long running, it's a three  years project and it's already finished now.  There is a follow up called FORCE, and the idea is that they have to do this simulation,  this fluid or dynamic simulations, and they have large data sets.  They also have custom made software and they don't want to have the problem of deploying  this software on the user's machines.  So researchers that have to access this computational code and work collaboratively, maybe kind  of sit down together and analyze the data together.  They have these very, very large data sets and they have to handle them efficiently and  they want to be able to deploy, manage this software, and also the potential existence  of multiple projects that are unrelated and they want to have something that can be reused.  So we developed Symphony Remote to address this requirement, and what it is, is basically  it's Jupyter Hub-based and it's a web interface for running this Docker containers.  Each container contains one specific application, but if it's a desktop application, you access  it via NoVNC, but you can also have web applications, like Jupyter for example.  So the idea is that with this approach, you move the application close to the data.  You have a terabyte of data, it stays on the remote server, and you move the application  close to the data instead of having the researcher download this massive amount of data on their  local computer.  There is no user installation needed.  You just start your browser, navigate, login, and use the application.  The workflow becomes synchronous, which means that if you have a long running computation,  of course you suspend your session, go home, reopen it later, and you can share both data  and application with other users.  And of course it can be useful for researchers, but not only for researchers, it can also  be used for educators.  For example, you have a class of 30 people, they have to use a specific software.  You provide that software, they access it without having to install it on each student computer.  Of course, high performance computing administrators, and also evaluation and testing.  For example, you have a beta product, you want to give preview to your customers, and  you basically deploy it and make it available to your customers from the web.  So I'm going to give you a demo.  Before that, I just want to say the acknowledgement.  So basically, as I said, it's an open source project.  It is built on top of Jupyter Hub, and it's part of the FP7 framework.  As I said, there is a follow-up of this project, which is called FORCE.  It's part of Horizon 2020.  So I'm going to give you a demo.  What you have is basically a Jupyter Hub login, and you can, of course, login with the user.  You get a list of applications that we provided and we installed.  Right now, there is one running, which is the file manager.  But you can switch, of course, among the ones that are available.  And of course, you can start them.  And now what happens is that Docker starts an image, you get a container running, and  this container provides your application.  Of course, now the resolution is not particularly friendly, but this is a full application.  It's a desktop application, and it's completely isolated.  You can, of course, close it.  And you can also, well, of course, you can switch between them.  And you can also share the session with a shared secret URL, and you can give it to  a collaborator of yours, and then access it.  So you can basically work together collaboratively while you're maybe researchers.  They tend to be delocalized on different research institutions.  So if you want to collaborate with someone, talk via Skype, you can work basically on  the same virtual desktop.  Of course, you also have Jupyter, and you have access to Jupyter.  And of course, you can sign out.  You're signing again, your application is still there.  There is an administrative interface, so if you want to administer it, you have access  to a set of statistics.  You can also, for example, stop some containers or rogue containers, and you also see which  users is using it.  You can configure users.  You can configure applications, and in particular the association between a user and an application,  a specific application, which is called policies.  There is one important thing is that if you stop a container and restart it, the application  will be completely removed, and the new one that you start will be completely fresh, which  means that you have no state.  And this is a specific choice because we didn't have, we didn't want to have the problem of  a researcher that for whatever reason corrupts his working environment and then needs assistance  to do that.  So every time he shuts down the application, he can restart it afresh, and it's guaranteed  to work.  The result is that, of course, nothing of what is created is preserved unless you use  a so-called workspace, which you can configure, and it's basically a shared directory.  This shared directory is preserved, and it's accessible to all containers, so you can also  move data from one container to another.  Of course, you can also mount some specific hard drives.  So, for example, if I have a large data set that you want to make visible, and of course,  you can start and stop how many applications you want, and it's only limited by basically  the hardware that you have behind.  And this concludes my talk.  If you have any questions, I would be happy to answer them.  Thank you.  Questions?  Okay.  Then I think it's nearly time for lunch.  Yes.  Thank the speaker once more.  Thank you.  Oh, sorry.  We'll be right back.
EuroSciPy_2017__Simphony-Remote_-_Accessing_containerized_desktop_and_web_apps_with_a_browser_QK2ydX_0_131.png EuroSciPy_2017__Simphony-Remote_-_Accessing_containerized_desktop_and_web_apps_with_a_browser_QK2ydX_132_731.png EuroSciPy_2017__Simphony-Remote_-_Accessing_containerized_desktop_and_web_apps_with_a_browser_QK2ydX_732_6839.png EuroSciPy_2017__Simphony-Remote_-_Accessing_containerized_desktop_and_web_apps_with_a_browser_QK2ydX_6840_9539.png EuroSciPy_2017__Simphony-Remote_-_Accessing_containerized_desktop_and_web_apps_with_a_browser_QK2ydX_9540_9779.png EuroSciPy_2017__Simphony-Remote_-_Accessing_containerized_desktop_and_web_apps_with_a_browser_QK2ydX_9780_11855.png EuroSciPy_2017__Simphony-Remote_-_Accessing_containerized_desktop_and_web_apps_with_a_browser_QK2ydX_11856_12275.png EuroSciPy_2017__Simphony-Remote_-_Accessing_containerized_desktop_and_web_apps_with_a_browser_QK2ydX_12276_13286.png