The above diagram details ISC's cloud-native application development architecture on Amazon Web Services (AWS). Below, the tools and frameworks used in each of the five layers of the application stack are detailed, along with general roadmapping on future and past direction as the ISC Cloud First team continues to make iterative improvements. Expand a section below for additional information.
The User Interface layer covers the parts of the application users see and with which they interact as well as the technologies used to deploy those components.
Item | Phase Out | Current | Exploration | Existing Tool |
---|---|---|---|---|
UI Framework |
AngularJS 1.4 |
Angular JS 1.5 |
Angular 2 + TypeScript |
JSP + Jquery |
Component |
Angular UI |
|||
CSS Framework | Bootstrap + SCSS | |||
Depoyment |
Webpack 1.x |
Webpack 2.x |
||
Unit Testing |
Karma + Sinon |
|||
End-to-End Testing |
Selenium + Gherkin |
Robot Framework + Gherkin |
The Continuous Integration & Deployment layer covers the process by which applications are developed, tested, deployed, and monitored.
Item | Phase Out | Current | Exploration | Existing Tool |
---|---|---|---|---|
Source Repository |
|
Gitlab Cloud |
Amazon CodeCommit + Gitlab Cloud |
CVS |
Secret Management |
Encrypted S3 |
File System |
||
Deployment |
Jenkins |
Amazon CodeBuild |
Bash + Groovy |
|
Automated Test |
Jenkins |
Jenkins + Browserstack |
||
End-to-End |
Selenium IDE |
Robot Framework |
||
Code Scanner |
PEP 8 + JSLint |
|||
Agile Development |
Jira Cloud + Kanban |
Jira Server + Kanban |
||
Screen Mockups | Balsamiq | LucidChart |
The Session Management & Security layer covers the tools and technologies for user authentication, authorization, and session state as well as overall security and secret handling strategies for the application.
Item | Phase Out | Current | Exploration | Existing Tool |
---|---|---|---|---|
Framework |
|
NodeJS + ExpressJS |
|
Java |
Unit Testing |
Mocha + Chai |
JUnit |
||
API Request |
Amazon IAM Roles |
Amazon Cognito, Enhanced Authorizers |
SSL + Basic AuthN |
|
Platorm |
Amazon ECS |
|||
Authentication |
Shibboleth |
Amazon Cognito, |
Weblogin, |
|
Authorization | PennGroups | |||
Browser |
ngStorage |
|||
Integrated |
Webstorm |
Eclipse |
The Data Persistence layer covers the long-term data repository of the application where changes are saved.
Item | Phase Out | Current | Exploration | Existing Tool |
---|---|---|---|---|
Database |
PostgreSQL 9.x |
Oracle 12c |
||
Document Storage |
MongoDB |
PostgreSQL 9.x |
Oracle CLOB |
|
Object Relational |
Django ORM |
HIbernate |
||
Platform |
Amazon RDS |
Amazon Aurora |
||
Integrated |
pgAdmin |
DataGrip |
Toad |
The Business Logic & Integration layer covers the core service APIs where business rules and data are offered to both the User Inteface layer as well as shared with our partners and clients. In addition to the APIs themselves, this layer includes the gateway through which the APIs are managed and also the integrations back to campus and external data centers and between services within the AWS environment.
Item | Phase Out | Current | Exploration | Existing Tool |
---|---|---|---|---|
Framework |
Python 2.7 |
Django REST + Python 3.6 |
Django REST + Chalice, GraphQL |
Java |
API Documentation |
Swagger |
Axis + WSDL |
||
Unit Testing |
Django TestCase |
JUnit |
||
Platform |
Amazon Lambda |
LCF |
||
Message Bus |
Amazon SQS |
|||
API Gateway |
Amazon API |
Amazon API |
||
Integrated |
PyCharm Professional |
Eclipse |