Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ......

41
Cloud First Application Development Lunchtime Learning December 8, 2016

Transcript of Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ......

Page 1: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

Cloud First Application DevelopmentLunchtime LearningDecember 8, 2016

Page 2: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

2ISC’s Cloud First Program

Core TeamApplication Design & Tools

Architecture, Infrastructure, &

MigrationIntegration

Communications & Engagement

Org Transformation

Contracts & Procurement

Security

IAM

Funding & Finance

Client Engagement

Page 3: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

3Integration: What (review)

Two primary flavors Authentication and authorization

• PennKey/SAML• PennGroups• Penn Community

Application-specific data• Data into applications (think student enrollment data into Canvas, or

employee job data into KnowledgeLink)• Data out of applications, to other applications or to reporting and

analytics environments like the Data Warehouse

Page 4: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

4Integration: Current State Primarily point-to-point integration between

SaaS, hosted, on-prem solutions and/or data warehouse

Variety of technical approaches PL/SQL / Oracle tool approaches Java / FAST / other development environments Mule / ESB Penn Community APIs

In most cases, dependent on highly-skilled developers

Page 5: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

5Integration: Goals Toolset that will accommodate Use by business analysts / non-programmers Support Warehouse needs Support SaaS implementations with support for data to/from

on-prem sources Support Penn-developed applications Support intra-application integrations (B2B / SaaS-to-SaaS)

Processes and documentation on standard usage for the tools we acquire

Integration Service supporting needs across ISC and the University’s schools and centers

Page 6: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

6Integration: work to date Lessons learned (nothing surprising) Most vendors of SaaS solutions we use don’t have great API/web

service platforms RFI/RFP content for Penn-wide consumption ETL tool acquisition effort in progress Currently working on live proof-of-concept use cases with two

vendors Both vendor solutions meet multiple needs which may provide

integration solution(s) for cloud-based services Research into other integration directions iPaaS, mPaaS, xXaas . . . This is a rapidly evolving product space; evaluation pending

available expertise/resources

Page 7: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

7Today

Why change so much? What’s our project? Updates and demos Technology Stack: Matt Schleindl Behavior and Test Driven Development: Sam Donnelly Agile Development: Lisa McBriar

Page 8: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

8What goes into an app

A user interfaceWhat people see

Page 9: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

9But there’s a lot more lurking…

…Technical Debt

Page 10: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

10What goes into an app

Business logicActual value

Page 11: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

11What goes into an app

AuthN and AuthZSecurity

Page 12: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

12What goes into an app

Persistence and data storesMaking it all matter

Page 13: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

13What goes into an app

Integration pointsPlaying well with others

Page 14: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

14What goes into an app

TestingProof it’s doing what it should be

Page 15: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

15What goes into an app

A source repositoryStorage for code and config

Page 16: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

16What goes into an app

Deployment pipelineGetting built and available

Page 17: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

17What goes into an app

A platformSomewhere to run and scale

Page 18: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

18That’s a lot of stuff

User interface Business logic Authentication and security Persistence and data stores Integration points Testing Source repository Deployment pipeline Platform

Page 19: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

19Until now…

We’ve built these ourselves And VERY successfully so! Like many, many others With full control Minimal short-term risk One language Unique ISC terminology

As 3-tier monolithic appsFAST framework and LCF

Page 20: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

20And for each one of those pieces…We have to:

Provide help, support, and examples Train and gain mindshare Build components and modules Maintain security Incorporate new technologies Innovate and revamp React to industry changes Test and roll out

Page 21: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

21We can’t keep up

A handful of architects…

… as only a part of their responsibilities

Page 22: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

22

>

Page 23: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

23Modern applications are… No longer self-

contained Think service areas Finance Student systems HR Research

Composed of small pieces Reusable Built that way Deployed that way

Looser Coupling, More Flexible/Portable, More Complex Outer Architecture

Tighter Coupling, Less Flexible/Portable, Less Complex Outer Architecture

Monolithic App

Data Store

WAR/EAR

App Server

MicroservicesService A

Runtime

Data Store

Service B

Runtime

Data Store

Service C

Runtime

Data Store

Service D

Runtime

Data Store

Service E

Runtime

Data Store

Coarse-Grained Services

Data Store

App Server

ServiceDomain

ServiceDomain

DataStore

ServiceDomain

Runtime

Page 24: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

24And each one is… Broken down even

more An assembly of others’

work Open source Vendor products PaaS, SaaS, modules

Small, disposable pieces

Automation

DevOps

Cloud-Ready/Cloud-Native PlatformAPI

Platform API

PolicyManagement

ConsumerIdentityProvider

API Gateway

BuildAutomation

PlatformAutomation

DeploymentAutomation

AdaptiveUI

ModularizedUI Components

ModularizedClient ApplicationLogic

JSJS

JSJS

Web Client

Persistence Services

Logging andDiagnostics

Monitoring and Alerting

Security

RuntimeManagement

ElasticScaling

?

Loosely CoupledServices/Microservices Platform Capabilities

Service A

Instance 1

Instance n

Instance 1

Instance n

Service B

LoadBalancing

Page 25: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

25The result is a conscious choice We built these ourselves And VERY successfully so! Like many, many others Full control Minimal short term risk One language Unique ISC terminology

Someone else built it And VERY successfully so! Like many, many others Less control More short-term risk More languages Common terminology More time spent on the parts

people see, not frameworks!!!

Page 26: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

26Working this way also means… New processes Agile development Automated testing Service-oriented delivery model Microservices DevOps Architecture lifecycle management Open source engagement

Page 27: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

27

So what is this project?

Page 28: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

28First of all… who:

Tim Bouffard, Application Architect Sam Donnelly, Sr. Application Developer Bryan Hopkins, Sr. IT Project Leader Anome Mammes, Sr. Application Developer Lisa McBriar, Sr. Business Systems Analyst Matt Schleindl, Application Architect

Page 29: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

29So… what is this project? Agile development Automated testing Service-oriented

architecture Microservices DevOps Architecture lifecycle

management Open source engagement

User interface Business logic Authentication and security Persistence API platform Testing Source repository Deployment pipeline Platform and scaling

Page 30: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

30So… what is this project?

Page 31: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

31Work iteratively

Pull from Backlog

• Based on ISC priorities

Define Criteria

• Identify methodology

• Identify technologies

Build and Evaluate

• Hands-on experience

• Assign scores

Pilot(s)

• Best-of-breed implementation

• Test assumptions

Page 32: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

32

Yeah but where are we now?

Page 33: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

33Yeah but where are we now?

https://www.isc.upenn.edu/cloud-first-application-delivery-refresh

Page 34: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

34Results – UI Framework

0.00%

20.00%

40.00%

60.00%

80.00%

100.00%Accessibility

Community andModules

Cost

Design for Cloud

DevelopmentProcess and toolsKey Capabilities

Operations

Resource Pool

Stability/Viability

AngularJS + Bootstrap + YeomangeneratorPossible Points

ReactJS + Bootstrap + Webpack +Yeoman generator + Redux

Page 35: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

35Results – Server Framework

0.00%

10.00%

20.00%

30.00%

40.00%

50.00%

60.00%

70.00%

80.00%

90.00%

100.00%Community and Modules

Cost

Data StoreCompatibility/Security

Design for Cloud

DevelopmentProcess andTools

IAM

Integration

Operations

Resource pool

Stability/Viability

Python + Django

Possible Points

NodeJS + ExpressJS

Page 36: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

36Results – Local Data Store

0.00%10.00%20.00%30.00%40.00%50.00%60.00%70.00%80.00%90.00%

100.00%Community and Modules

Cost

Design for Cloud

File Management

Key Capabilities

Operations

Resource pool

Stability/Viability

PostgreSQLPossible PointsMongoDB

Page 37: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

37Details! Decisions…

User interface: AngularJS + Bootstrap + Webpack

Business logic: Django REST Framework + Zappa

AuthN and security: NodeJS + ExpressJS + Passport-SAML

Persistence: PostgreSQL

Page 38: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

38Details! Placeholders…

API platform: AWS API Gateway Backend testing: Django TestCase + Mocha + Chai UI testing: Selenium + Karma + Gherkin Source repository: Gitlab Deployment pipeline: Jenkins Testing automation: Jenkins Platform and scaling: AWS ECS + AWS Lambda Agile development: JIRA Agile Plugin + Kanban

Page 39: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

39Not even started…

Service-oriented architecture Microservices DevOps Architecture lifecycle management Open source engagement More…

Page 40: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

40

No more slides. Demos!Technology Stack: Matt Schleindl

Behavior and Test Driven Development: Sam DonnellyAgile Development: Lisa McBriar

Page 41: Cloud First Application Development - UPenn ISC First Application Development Lunchtime Learning ... SaaS, hosted, on-prem solutions ... •Hands-on experience •Assign scores

41Comments/Questions

Questions? Website: https://www.isc.upenn.edu/cloud-first Comments and suggestions for future topics can

be sent to:[email protected]