Skip to main content

How I can share my Azure Notebook with another person from my team?

The Azure team is offering a service where you can run code and develop Jypyter notebook called Azure Notebooks. Azure Notebooks is allowing us to build our notebooks in multiple languages (e.g. R, Python 2/3, F#) and run them automatically inside our Azure Subscriptions. We don't need anymore to spin up the resources, manage them and think about how we can deploy the notebook from our machine to different environments.

THE PROBLEM
One of the most common questions that I receive is 
How I can share my Notebook with another person from my team?

CONTEXT
In most of the cases, you are not the only one that is working on a notebook, you might have a team of people that would like to work on a collection of notebooks from the same project. In other cases, the client would like to own the notebook project and allow external teams to use the notebooks. 

REALITY
The reality is that at this moment in time, sharing notebooks is limited. Why? Let see below.
A notebook project can be private or public.
  • Public - Anybody can access it using the public URL
    • e.g. https://notebooks.azure.com/vunvulear/projects/rvplayground 
  • Private - The notebook it is not publicly accessible to anybody. The only person that can access the project is the owner of the project.

SHARING
You might be now a little bit confuse because as you can see in the above picture, we have a share button with the ability to share it via email or link. There are two things that you might not be so obvious:
  1. Share button even it is available and works for both Public and Private projects the URL to the notebook project works only for public ones. For private projects, users will receive an error when they want to access it.
  2. There is no mechanism at this moment in time (June 2020) to provide access to another person to a private notebook project.
Another feature that could be used is the ability to upload a GitHub repository to Azure Notebooks.
It means that in theory, we could create a private GitHub repo with our notebooks that could be imported inside Azure Notebooks. The problem is that only public GitHub repos can be imported. For private ones, there is no ability to import them.

At this moment in time, there is no support of a REST API or CLI that would allow us to manage projects and notebooks from a script. Once we have a REST API for management, we could build script that would clone a project automatically, do the merging and other similar things that would enable collaboration. 

CONCLUSION
Azure Notebooks are great to build and play with Jupyter notebooks. The lack of sharing capability for private notebooks makes them almost impossible to be used by organisations. The current sharing ability can be used only for public projects that limit the ability to use them in commercial projects. 
What we are missing at this moment in time? A notebook sharing capability based on AD or integration with private GitHub repos. Why not even support inside Azure DevOps.

Comments

Popular posts from this blog

Windows Docker Containers can make WIN32 API calls, use COM and ASP.NET WebForms

After the last post , I received two interesting questions related to Docker and Windows. People were interested if we do Win32 API calls from a Docker container and if there is support for COM. WIN32 Support To test calls to WIN32 API, let’s try to populate SYSTEM_INFO class. [StructLayout(LayoutKind.Sequential)] public struct SYSTEM_INFO { public uint dwOemId; public uint dwPageSize; public uint lpMinimumApplicationAddress; public uint lpMaximumApplicationAddress; public uint dwActiveProcessorMask; public uint dwNumberOfProcessors; public uint dwProcessorType; public uint dwAllocationGranularity; public uint dwProcessorLevel; public uint dwProcessorRevision; } ... [DllImport("kernel32")] static extern void GetSystemInfo(ref SYSTEM_INFO pSI); ... SYSTEM_INFO pSI = new SYSTEM_INFO(...

How to audit an Azure Cosmos DB

In this post, we will talk about how we can audit an Azure Cosmos DB database. Before jumping into the problem let us define the business requirement: As an Administrator I want to be able to audit all changes that were done to specific collection inside my Azure Cosmos DB. The requirement is simple, but can be a little tricky to implement fully. First of all when you are using Azure Cosmos DB or any other storage solution there are 99% odds that you’ll have more than one system that writes data to it. This means that you have or not have control on the systems that are doing any create/update/delete operations. Solution 1: Diagnostic Logs Cosmos DB allows us activate diagnostics logs and stream the output a storage account for achieving to other systems like Event Hub or Log Analytics. This would allow us to have information related to who, when, what, response code and how the access operation to our Cosmos DB was done. Beside this there is a field that specifies what was th...

Cloud Myths: Cloud is Cheaper (Pill 1 of 5 / Cloud Pills)

Cloud Myths: Cloud is Cheaper (Pill 1 of 5 / Cloud Pills) The idea that moving to the cloud reduces the costs is a common misconception. The cloud infrastructure provides flexibility, scalability, and better CAPEX, but it does not guarantee lower costs without proper optimisation and management of the cloud services and infrastructure. Idle and unused resources, overprovisioning, oversize databases, and unnecessary data transfer can increase running costs. The regional pricing mode, multi-cloud complexity, and cost variety add extra complexity to the cost function. Cloud adoption without a cost governance strategy can result in unexpected expenses. Improper usage, combined with a pay-as-you-go model, can result in a nightmare for business stakeholders who cannot track and manage the monthly costs. Cloud-native services such as AI services, managed databases, and analytics platforms are powerful, provide out-of-the-shelve capabilities, and increase business agility and innovation. H...