Slide 1

Slide 1 text

Awash with Tech How to Keep Sane in an Ever-expanding World of Tech Lunch & Learn Monday November 28. 2016 Woodward Hall 130 12:30-1:45 Brought to by your friends at:

Slide 2

Slide 2 text

Doug Corbett Senior Application Architect PMMC [email protected]

Slide 3

Slide 3 text

Agenda A Little History

Slide 4

Slide 4 text

Agenda A Little History Getting Our Bearings At PMMC

Slide 5

Slide 5 text

Agenda A Little History Getting Our Bearings At PMMC Agile CI, CD and CD NoSQL Containers Cloud

Slide 6

Slide 6 text

Agenda A Little History Getting Our Bearings At PMMC Agile CI, CD and CD NoSQL Containers Parting Words Cloud

Slide 7

Slide 7 text

A Little History I PROMISE TO KEEP IT SHORT

Slide 8

Slide 8 text

Early 1990’s

Slide 9

Slide 9 text

Late 1990’s JSP ASP COBOL Java Oracle Visual Basic SQL Server DB2 JavaScript CSS HTML

Slide 10

Slide 10 text

JSP ASP.NET COBOL Java Oracle .NET SQL Server DB2 JavaScript CSS HTML Early 2000’s

Slide 11

Slide 11 text

Late 2000’s ASP.NET JSP ASP.NET MVC PHP Java Oracle .NET SQL Server JavaScript CSS HTML Ruby on Rails MySQL jQuery

Slide 12

Slide 12 text

Today WCF ASP.NET WebAPI ASP.NET JSP ASP.NET MVC PHP Java Oracle .NET SQL Server JavaScript CSS HTML Ruby on Rails MySQL jQuery MongoDB NodeJS Express KnockOut Angular Durandal Handlebars Aurelia Ember React SASS/SCSS Meteor RavenDB Underscore Lodash

Slide 13

Slide 13 text

A Little About My Work at PMMC WHERE WE WERE AND WHERE WE WANT TO GO.

Slide 14

Slide 14 text

Survey Results (Part 1/3)

Slide 15

Slide 15 text

Survey Results (Part 2/3)

Slide 16

Slide 16 text

Survey Results (Part 3/3)

Slide 17

Slide 17 text

#1 Agile Methodology SOME SAY THIS WILL BE SYNONYMOUS WITH SOFTWARE DEVELOPMENT IN THE FUTURE

Slide 18

Slide 18 text

Waterfall Requirements Analysis Design Development Testing Acceptance

Slide 19

Slide 19 text

http://agilemanifesto.org/

Slide 20

Slide 20 text

Notable Agile Variants LEAN - 1990 • Kaizen – continuous improvement • Kanban boards Extreme Programming (XP) – 1999 • Refactoring • Pair Programming • Small Releases • Testing • Continuous Builds Scrum - 2001 • Borrowed from LEAN and XP • Formalized the process with Stand-ups

Slide 21

Slide 21 text

Agile – Scrum Variant 2-4 week sprint Build Product Backlog Determine sprint backlog Analysis Development Testing Acceptance Design Release Daily Stand-ups Retro- spectives Stake- holder Demo

Slide 22

Slide 22 text

Agile – User Story Considerations • Business value • Development effort • Complexity • Known unknowns

Slide 23

Slide 23 text

Agile – Observation People are bad at estimating, but are good at comparing.

Slide 24

Slide 24 text

Agile – Story Priority Example 7 bv / 1 sp = 7 7 bv / 144 sp = 0.049 58 bv / 12 sp = 4.83 Business Value / Story Points (aka Development Effort) = Story Priority

Slide 25

Slide 25 text

#2 NoSQL Databases REMOVES A LOT OF FRICTION POINTS DURING DEVELOPMENT AND PROVIDES MORE FLEXIBILITY

Slide 26

Slide 26 text

What is a NoSQL Database?

Slide 27

Slide 27 text

What is a NoSQL Database? Access SQL Server Oracle Ingress Postgress MySQL DocumentDB CouchDB MongoDB Hadoop RavenDB Graph Databases Document Databases Object Databases Neo4j ObjectDB Key-Value Databases Redis RDBMS

Slide 28

Slide 28 text

Customer Invoices – RDBMS Style

Slide 29

Slide 29 text

Customer Invoices – Mongo Style

Slide 30

Slide 30 text

Benefits • Easy to refactor • Performant • Horizontal scalability by design • Reduced complexity • No DBA required • No need for Object Relationship Mappers (ORM) • Data is more readable "Creative Commons Fireworks" by nuic is licensed under CC BY 2.0

Slide 31

Slide 31 text

When would I prefer a RDBMS over a document database?

Slide 32

Slide 32 text

#3 CI, CD and the other CD IF SOMETHING IS HARD AND ERROR-PRONE, DO IT MORE OFTEN

Slide 33

Slide 33 text

Continuous Integration The practice of compiling code found within a repository frequently.

Slide 34

Slide 34 text

Continuous Deployment The practice of deploying a compiled solution in its entirety to a host or set of hosts, typically to be tested by an automated testing framework.

Slide 35

Slide 35 text

Continuous Delivery The practice of deploying a compiled solution in its entirety to production servers.

Slide 36

Slide 36 text

Automated Testing Let’s let the computers run tests instead of humans. Computers are more thorough, more reliable and lot quicker.

Slide 37

Slide 37 text

#4 Containers REDUCES DEVELOPMENT FRICTION AND IMPROVES HARDWARE UTILIZATION

Slide 38

Slide 38 text

Containerization The abstraction of software packages from the operating system in such a way that the software packages are logically separated from each other and the operating system.

Slide 39

Slide 39 text

“Classic” Multiple Servers CMS Mail Server Source Control Web Server RDBMS Document Database Hardware OS OS OS Hardware Hardware

Slide 40

Slide 40 text

“Classic” Resource Utilization 3 machines 1-3% CPU utilization 1GB RAM

Slide 41

Slide 41 text

Server Usage with Virtualization Virtualization Software Hardware OS Mail Server Source Control web server RDBMS OS OS OS CMS Document Database

Slide 42

Slide 42 text

Virtualization Resource Utilization 1 machine 4-12% CPU utilization 4GB RAM

Slide 43

Slide 43 text

Server Usage with Containers SharePoint Exchange TFS IIS SQL Server Mongo Containerization Software Hardware OS

Slide 44

Slide 44 text

Container-based Resource Utilization 1 machine 1-3% CPU utilization 1GB RAM

Slide 45

Slide 45 text

Side-by-side Comparison Container based 1 machine 1-3% CPU utilization 1GB RAM VM based 1 machine 4-12% CPU utilization 4GB RAM “Classic” 3 machines 1-3% CPU utilization 1GB RAM

Slide 46

Slide 46 text

Other Benefits

Slide 47

Slide 47 text

Other Benefits 1. Spin up times are seconds, not minutes

Slide 48

Slide 48 text

Other Benefits 1. Spin up times are seconds, not minutes 2. Easier onboarding of new developers

Slide 49

Slide 49 text

Other Benefits 1. Spin up times are seconds, not minutes 2. Easier onboarding of new developers 3. Can more easily develop on local containers that match production exactly

Slide 50

Slide 50 text

Other Benefits 1. Spin up times are seconds, not minutes 2. Easier onboarding of new developers 3. Can more easily develop on local containers that match production exactly 4. No more “It works on my machine”

Slide 51

Slide 51 text

Other Benefits 1. Spin up times are seconds, not minutes 2. Easier onboarding of new developers 3. Can more easily develop on local containers that match production exactly 4. No more “It works on my machine” 5. Container removal is a total removal

Slide 52

Slide 52 text

#5 Cloud MORE THAN JUST MARKETING HYPE … SO MUCH MORE.

Slide 53

Slide 53 text

What is the Cloud? 1. Pay for what you use. 2. Self-serve.

Slide 54

Slide 54 text

Types of Cloud Services SaaS – Software as a service

Slide 55

Slide 55 text

Types of Cloud Services SaaS – Software as a service IaaS - Infrastructure as a service

Slide 56

Slide 56 text

Types of Cloud Services SaaS – Software as a service IaaS - Infrastructure as a service PaaS - Platform as a service

Slide 57

Slide 57 text

Types of Cloud Services SaaS – Software as a service IaaS - Infrastructure as a service PaaS - Platform as a service CaaS - Container as a service

Slide 58

Slide 58 text

Ways we Leverage Cloud at PMMC Team Services – PaaS Agile Process Management Source Code Control CI, CD Release Management Azure App Service and API Service - PaaS supporting 3 environments Dev/Test environment – IaaS Can manage startup and shutdown times Allows developers to spin up servers as needed Windows 2012 RS Server VM with Mongo – IaaS

Slide 59

Slide 59 text

Parting Words .

Slide 60

Slide 60 text

Trite Aphorisms Stay Curious! Apply yourself! Don’t get comfortable.

Slide 61

Slide 61 text

Less-Trite Aphorisms With Some Teeth Your first job sets the tone for the rest of your career.

Slide 62

Slide 62 text

Less-Trite Aphorisms With Some Teeth Your first job sets the tone for the rest of your career. Master something you are interested in and get a project doing that. Rinse and repeat.

Slide 63

Slide 63 text

Less-Trite Aphorisms With Some Teeth Your first job sets the tone for the rest of your career. Master something you are interested in and get a project doing that. Rinse and repeat. Embrace contracting or consulting. Job security is based more on your technical skills and people skills than seniority.

Slide 64

Slide 64 text

Less-Trite Aphorisms With Some Teeth Your first job sets the tone for the rest of your career. Master something you are interested in and get a project doing that. Rinse and repeat. Embrace contracting or consulting. Job security is based more on your technical skills and people skills than seniority. Read, listen to podcasts and find mentors.

Slide 65

Slide 65 text

Thank you! Doug Corbett Senior Application Architect PMMC [email protected]