practical data visualization · overview infrastructure ... feature dev test github pull request...

25
Practical Data Visualization Infrastructure, Tools, and Project Management Jonathan Page

Upload: others

Post on 07-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Practical Data Visualization Infrastructure, Tools, and Project Management

Jonathan Page

Page 2: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Overview

▪ Infrastructure

▪ Development and Monitoring Tools

▪ Project Management

Page 3: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Infrastructure Virtual Machines and Server Applications

Page 4: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Production

Database

User perspective

Page 5: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Production

Database

User perspective

Page 6: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Production

File Database

Worker

3rd Party Perspective

New

Data Files

Page 7: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Production

File Database

Admin Perspective

New

Data Source

Page 8: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Production Staging

File Deployment Database

Worker

Nightly Data Update

Worker

Page 9: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Production Staging

Deployment Database

Worker

Developer Perspective New

Feature

Dev Test

GitHub Pull Request

Travis CI

Approval

Page 10: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Production Server

▪ UHERO Data Manager (Ruby on Rails)

▪ REST API (Go)

▪ NGINX – serves static files

▪ UHERO Data Portal (Angular, Highcharts)

▪ DBEDT Data Warehouse (Angular)

Page 11: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Database Server

▪ MySQL

▪ Redis

Page 12: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Worker Server

▪ Sidekiq Workers (Ruby on Rails)

Page 13: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

File Server

▪ SMB File Server

▪ Stores raw data files for future processing and backup

Page 14: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Staging Server

▪ Sandbox for testing code/DB changes before move to production

▪ All applications on Production Server

▪ Nightly copy of DBs from Database Server

▪ Testing subset of File Server contents

▪ Sidekiq workers from Worker Server

Page 15: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Open Source Software

▪ github.com/UHERO/udaman

▪ github.com/UHERO/rest-api

▪ github.com/UHERO/data-portal

▪ github.com/UHERO/dbedt-data-portal

Page 16: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Lessons Learned

▪ AWS (the cloud in general) is more expensive than hosting with University ITS VMs

▪ Prefer a small group of well chosen programming languages

▪ Building is more fun than supporting, so build carefully

Page 17: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Tools Development and Monitoring

Page 18: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Development Tools

▪ Development Environments

▪ IDEs: RubyMine, WebStorm, SublimeText, Atom, Vim

▪ Vagrant, [Future] Docker

▪ Version Control

▪ Git, GitHub.com

▪ Code Review

▪ GitHub Pull requests

Page 19: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Development Tools (continued)

▪ Testing

▪ Travis.CI

▪ Deployment

▪ Currently manual runbook, [Future] Bamboo (Atlassian)

▪ Documentation

▪ Confluence (Atlassian)

▪ Issue Management

▪ JIRA (Atlassian)

Page 20: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Lessons Learned

▪ Stick to industry standard tools as much as possible (community help is invaluable)

▪ There is always a newer, shinier tool; “if it aint broke, don’t fix it”

▪ Some tools allow you to build more reliable and more maintainable software

▪ Tool switching is not costless

Page 21: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Project Management Agile

Page 22: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Agile

▪ Kanban for service teams

▪ Scrum for development teams

▪ JIRA (Atlassian)

Page 23: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Scrum Ceremonies

▪ Daily Scrum (Standup)

▪ Sprint Planning (Story Grooming, Planning Poker)

▪ Showcase (Sprint Review)

▪ Sprint Retrospective

Page 24: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo

Lessons Learned

▪ Scrum ceremony adherence should depend on development team size

▪ If the structure of Scrum is intimidating/overbearing, try Kanban

▪ If Kanban feels to unstructured, try Scrum

▪ It’s not uncommon for development teams in the tech industry to switch between flavors of Agile

▪ See if your University ITS has a license for JIRA

Page 25: Practical Data Visualization · Overview Infrastructure ... Feature Dev Test GitHub Pull Request Travis CI Approval . Production Server ... Currently manual runbook, [Future] Bamboo