Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Awash with Tech

Awash with Tech

In this presentation Doug Corbett discusses five emerging technology shifts and gives some strategies in coping with the sheer magnitude of the changes occurring today.

Doug Corbett

November 28, 2016
Tweet

More Decks by Doug Corbett

Other Decks in Programming

Transcript

  1. 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:

    View Slide

  2. Doug Corbett
    Senior Application Architect
    PMMC
    [email protected]

    View Slide

  3. Agenda
    A Little History

    View Slide

  4. Agenda
    A Little History
    Getting Our Bearings At PMMC

    View Slide

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

    View Slide

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

    View Slide

  7. A Little History I PROMISE TO KEEP IT SHORT

    View Slide

  8. Early 1990’s

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. 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

    View Slide

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

    View Slide

  14. Survey Results (Part 1/3)

    View Slide

  15. Survey Results (Part 2/3)

    View Slide

  16. Survey Results (Part 3/3)

    View Slide

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

    View Slide

  18. Waterfall
    Requirements
    Analysis
    Design
    Development
    Testing
    Acceptance

    View Slide

  19. http://agilemanifesto.org/

    View Slide

  20. 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

    View Slide

  21. 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

    View Slide

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

    View Slide

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

    View Slide

  24. 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

    View Slide

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

    View Slide

  26. What is a NoSQL Database?

    View Slide

  27. 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

    View Slide

  28. Customer Invoices – RDBMS Style

    View Slide

  29. Customer Invoices
    – Mongo Style

    View Slide

  30. 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

    View Slide

  31. When would I prefer a RDBMS over a
    document database?

    View Slide

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

    View Slide

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

    View Slide

  34. 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.

    View Slide

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

    View Slide

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

    View Slide

  37. #4 Containers REDUCES DEVELOPMENT
    FRICTION AND IMPROVES
    HARDWARE UTILIZATION

    View Slide

  38. 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.

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  45. 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

    View Slide

  46. Other Benefits

    View Slide

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

    View Slide

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

    View Slide

  49. 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

    View Slide

  50. 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”

    View Slide

  51. 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

    View Slide

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

    View Slide

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

    View Slide

  54. Types of Cloud Services
    SaaS – Software as a service

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  58. 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

    View Slide

  59. Parting Words .

    View Slide

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

    View Slide

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

    View Slide

  62. 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.

    View Slide

  63. 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.

    View Slide

  64. 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.

    View Slide

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

    View Slide