Docker for Product Owners

Pre-Requisites

  1. Inquisitiveness to learn
  2. Product Owner in High-Tech Industry
  3. Personality to push the envelope
  4. Not afraid to say "I don't know"

Docker Installation Video in References Slide

Greg is product owner for data science products. He not only interfaces daily with business aka. sales/marketing to get high level requirements, but participates and drives agile ceremonies for the engineering team. Greg has been a developer in the past, hence he aligns the engineering team to meet the expectations of the business. Greg hears during daily stand ups in engineering team about the impediments around data sets in hadoop cluster. He understands the overall problem, however he has questions to clarify from the technical perspective in terms of the exact technical limitations - is it data, compute or anything else. Greg would like to get a sample data set that the team is looking at, load it up in hdfs (hadoop file system) and explore in a self-serviced manner. Production hadoop clusters require 100-150 nodes with high demands on memory, storage and networks. Greg would like to experiment on a model environment, but NOT muck around the actual production system. He doesn't want to spend too much time on installation, configuration and issues that arise out of setup.

Data Science Product Owner

  1. Spin up hadoop cluster
  2. Run map-reduce job
  3. Access hadoop management console

Hadoop - Tactics

Spin up Hadoop Cluster

Open Kitematic

Search for 'hadoop'

Click "create" button

Hadoop  Starts

 

Observe Home & Settings Tabs

Run Map Reduce Job

Access Hadoop Management Console

Explore

Cluster > Scheduler

Cluster > Nodes

Cluster > Applications

Cluster > Node Labels....

Tools > Configuration

Tools > Server

Tools > Local logs

Tools > Metrics...

Hadoop Dockerized - Video

Vikram is a product owner for applications that involve different database types for legacy application(s). For example postgresql, mysql, hbase etc. He would like to stand up a database server and model the production schema and load up simple data sets, so that he can execute queries and analyse the data better. Vikram would like to use his analysis to write up more epics and stories for the engineering team. He would like to self-service and reach a point to have a meaningful discussion with the engineering team on the technical context and feasibility and decide on future steps.

Legacy Products- Product Owner

  1. Stand up Postgresql database server
  2. Connect using pgAdmin client
  3. Create a table

Db - Tactics

Stand up Postgresql database

Click "create" on the official postgres container

Container should start up in seconds

Port mapping : 32804 > 5432

Access Postgres via Client

Default username:password

postgres:postgres

Create a Table

Databases - Video

Raj is a product owner for web application products. He interacts daily with Chakri(developer) and Hari(test automation engineer) during agile ceremonies. Raj gets to know that the engineering team pushes changes to the product in an integration environment almost continuously using a process called Continuous Integration(CI). He is intrigued about tools like Jenkins, a CI server. Raj wants to quickly skim through the high level capabilities of such a CI server. He watches the screenshots in various forums and he can't wait to have hands-on. He doesn't want to bother the engineers because he wants them to focus on more important things than to explain what CI is. Raj prefers self-service.

Web Application - Product Owner

CI Tactics

  1. Stand up Jenkins Server
  2. Access Jenkins
  3. Create Hello World Job

Stand up Jenkins Server

Click "Create"

Access jenkins on port 32806

Access Jenkins

Create Hello World Job

Continuous Integration - Video

Aishwarya is a product owner for big data group. She deeply cares about data crunching, analysis, dashboards and surfacing up the analytics and patterns from big data sets. She would like to have a way for her peers to be able to query data sets that are structured, unstructured or semi-structured. That said, she would prefer that everyone has read access to all data sets and be able to analyse the data using R programming language and on-demand. Aishwarya also prefers that the big data is available for folks who are on the move, travel or anywhere as long as they have access to internet. Aishwarya reads about Python notebooks and how the user interface is exposed through web aka. browser. She would like to do an MVP to understand the capabilities of jupyter notebooks and quickly make it available to all stakeholders, for their feedback. Based on positive feedback, she would like to expand that out in to a production installation. For now, she prefers self-service and needs a lean way to test the python notebook environment.

Big Data - Product Owner

Jupyter Notebook - Tactics

  1. Stand up Jupyter Notebook environment - Python 2 & 3
  2. Create a Python 3 notebook
  3. Operate on a data set

Stand up Jupyter Notebook

Create Python 3 notebook

Operate on data set

Python Notebook- Video

Pradeep is the product owner for a highly integrated application, lets say a micro-service based application. The application is a bunch of api, ui and worker processes that communicate with each other , thus enabling a highly flexible application than can scale horizontally. That means each of the micro-services can be installed on different machines, can be scaled individually, yet they communicate with each other giving the end user a perspective of a single unified application. During development, Pradeep is trying to get the product delivered and he is following up with each micro-team that develops their piece of micro-service. Each engineering team is confident on the quality of their micro-service delivered and they have rigorously tested their component. It is time to test the integrated application, because that is the real value add for a end user. Pradeep would like to have a one-click deployment/installation of the composite application and expects that the UI micro-service will automatically hook up to the api micro-service and the hierarchy thereafter. For example, a worker process might cache data from database for availability to an api, that in turn serves a UI page. Pradeep would like to avoid the dependency nightmare and avoid the bias "My component works, I don't know if the other works or not".

Integrated Solution - Product Owner

Dockerized Micro Service App

Spin up Micro-Service App

Access web UI - Vote

Access Result App

Scale Up - Workers

Full Blog Post

Micro-Service - Video

References

  1. Docker Toolbox Installation - Video
  2. Docker website
  3. Blog
  4. Git Repo

Docker for Product Owners

By Pradeep

Docker for Product Owners

  • 1,663