Docker for Product Owners
Pradeep Macharla

Pre-Requisites
- Inquisitiveness to learn
- Product Owner in High-Tech Industry
- Personality to push the envelope
- 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

- Spin up hadoop cluster
- Run map-reduce job
- 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

- Stand up Postgresql database server
- Connect using pgAdmin client
- 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
- Stand up Jenkins Server
- Access Jenkins
- 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
- Stand up Jupyter Notebook environment - Python 2 & 3
- Create a Python 3 notebook
- 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
Docker for Product Owners
By Pradeep
Docker for Product Owners
- 1,863