Moving Banner to Docker & AWS: A Technical Deep Drive

Moving Banner to Docker & AWS:
A Technical Deep Dive
 
 
Albert ‘Alby’ Holtsclaw
Senior DevOps Architect / Senior Database Administrator
East Tennessee State University
Disclaimer: 
This presentation is being recorded.
Goals and Overview
Motivation
Architecture
Processes, Technologies, and Services Used
Benefits Gained and Challenges Encountered
Motivations
Enterprise Systems, custom applications
Facing Upgrades: SQL Server, Windows Server, Codebase (Accessibility, Framework)
Growing number of “mission critical” applications
Aging Banner ERP Infrastructure
ERP Hosts: RHEL 5, Hardware Replacement, Datacenter Migration (2017)
Availability, Scalability, Disaster Recovery / BC
Growing Infrastructure Needs / Banner 9
Need for higher efficiency, easier maintenance
Puppet / Configuration Management wasn’t enough
 
Architecture
VPC Setup:  
dev vs prod, subnets, multi-AZ
Databases:
Oracle on EC2  (Unable to leverage RDS, filesystem access, one-off patches)
SQL Server Cluster on RDS, MySQL on Aurora RDS
Job Submission: 
EC2 (Docker in future?)
All Banner 9 Apps, SSB, Others: 
Docker / ECS Cluster
eInvoice / IFEP / Old Middleware: 
EC2 (for now)
Elastic Load Balancers / Application Load Balancers
ETL / Data Integration / Scheduled Tasks: 
AWS Lambda
Architecture
Architecture
Banner Oracle
EC2
https://
banner
.infosys.etsu.edu/applicationNavigator
Elastic Load Balancer
haproxy1
haproxy2
ECS Compute
Cluster
App. Load Balancer
Jobsub EC2
Public
Private
Other EC2
Other On-Prem
Architecture
Architecture
Technologies and Services
Docker
Technologies and Services
Docker
entrypoint.py
Technologies and Services
Git & ECS Configs
ECS Compute Cluster
Technologies and Services
Git & ECS Configs
ECS Compute Cluster
Technologies and Services
Terraform
resource "aws_instance" " dban" {
ami = "ami-ae7bfdb8"
instance_type 
= "m4.xlarge"
subnet_id = "${module.vpc.private_subnets[1]}"
key_name = "linux_banner_key"
private_ip = “xxx.xx.xx.xxx"
vpc_security_group_ids = ["${aws_security_group.dban.id}"]
root_block_device{
 
volume_type = "gp2"
 
volume_size = "100"
 
delete_on_termination = "false"
}
}
Technologies and Services
Terraform
resource "aws_ecs_service" "prod-BannerAdmin" {
     name = "prod-BannerAdmin"
     cluster = "${aws_ecs_cluster.pcompute.id}"
     task_definition = "${aws_ecs_task_definition.prod-BannerAdmin.arn}"
     
desired_count 
= 
2
     iam_role = "${aws_iam_role.pecs_service_role.arn}"
     depends_on = ["aws_iam_role_policy.pecs_service_role_policy"]
     load_balancer {
         target_group_arn = "${aws_alb_target_group.prod-BannerAdmin.arn}"
         container_name = "prod-BannerAdmin",
         container_port = 8080
     }
     …..
}
Technologies and Services
Terraform
Technologies and Services
Lambda
rave-rss
c2g
campustoursmaint
ec2-start-parkable
errors-remedy-to-slack
SecureAccess_ETL
pobox-sync
pwebsql1-ip-check
ebs-backup-worker
contracts_etlemailer
trs-etl
wets
sa-log-clean
campus_tours_emailer
compcalc_etl
major-change
contact_methods_etl
snsToSlack
provost_etl
ebs-backup-prune
ec2-stop-parkable
TRS_Reminders
parking
Technologies and Services
AMIs and Snapshots
Snap AMIs quarterly or major upgrades
Snap AMIs for install baselines
Snapshots nightly
Automated Backup and Prune via Lambda
Migrate to Amazon Data Lifecycle Manager
Technologies and Services
Route 53 and DNS forwarders
Legacy domains
Point on-prem DNS entry to APEX load balancer
 
goldlink.etsu.edu
degreeworks.etsu.edu
Technologies and Services
Logging
 
Cloudwatch
Cloudtrail (Audit)
S3 Log Dumps
 
Technologies and Services
Monitoring
 
Prometheus
Alerts Manager
Slack
Grafana
 
Technologies and Services
Configuration  Management
 
Benefits
Better Disaster Recovery
AMIs, Snapshots, Infrastructure as Code
High Availability
Multi-AZ, Multiple Instances, Load Balanced
Improved Scalability
ECS Compute Clusters, Auto-Scaling Groups, Containers. Capacity on Demand
Improved Security
Network Isolation, Security Groups, Monitoring, VPN Gateway, Peering
Easier to Maintain
Declarative Infrastructure and Services.  Git / Continuous Integration Pipelines
Challenges
Timing
Staffing (workload/capacity and self-learning)
Cost (Op-ex vs Cap-ex)
AWS Contract
Networking (VPN Gateway, CISCO ASA, SQL Fixup
protocol, persistent connection sniping)
What’s Next?
Containerize more apps
Puppetize when containers not ideal
Create standby in separate region
Increase usage of CI/CD
Increase monitoring via Prometheus and smart alerting
All the Dashboards!!!
Greenfield Projects
AWS Fargate
Kubernetes (EKS or Standalone)
Collaboration
Bandock Google Group
bandock@googlegroups.com
 
Banner AWS Slack Group
April Sims
Southern Utah University
aprilcsims@gmail.com
Monthly (ish) Meetings
Albert ‘Alby’ Holtsclaw
Senior DevOps Architect / Senior Database Administrator
AlbertHoltsclaw.com
holtsclawa@etsu.edu
Slide Note
Embed
Share

Learn about the goals, motivation, architecture, processes, technologies, and services used, as well as the benefits gained and challenges encountered.

  • goals
  • overview
  • motivation
  • architecture
  • processes
  • technologies
  • services
  • benefits

Uploaded on Dec 22, 2023 | 4 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Disclaimer: This presentation is being recorded.

  2. Goals and Overview Motivation Architecture Processes, Technologies, and Services Used Benefits Gained and Challenges Encountered

  3. Motivations Enterprise Systems, custom applications Facing Upgrades: SQL Server, Windows Server, Codebase (Accessibility, Framework) Growing number of mission critical applications Aging Banner ERP Infrastructure ERP Hosts: RHEL 5, Hardware Replacement, Datacenter Migration (2017) Availability, Scalability, Disaster Recovery / BC Growing Infrastructure Needs / Banner 9 Need for higher efficiency, easier maintenance Puppet / Configuration Management wasn t enough

  4. Architecture VPC Setup: dev vs prod, subnets, multi-AZ Databases: Oracle on EC2 (Unable to leverage RDS, filesystem access, one-off patches) SQL Server Cluster on RDS, MySQL on Aurora RDS Job Submission: EC2 (Docker in future?) All Banner 9 Apps, SSB, Others: Docker / ECS Cluster eInvoice / IFEP / Old Middleware: EC2 (for now) Elastic Load Balancers / Application Load Balancers ETL / Data Integration / Scheduled Tasks: AWS Lambda

  5. Architecture

  6. Architecture https://banner.infosys.etsu.edu/applicationNavigator Elastic Load Balancer Public Private haproxy1 haproxy2 Other On-Prem Other EC2 App. Load Balancer ECS Compute Cluster Jobsub EC2 Banner Oracle EC2

  7. Architecture

  8. Architecture

  9. Technologies and Services Docker

  10. Technologies and Services Docker entrypoint.py

  11. Technologies and Services ECS Compute Cluster Git & ECS Configs

  12. Technologies and Services ECS Compute Cluster Git & ECS Configs

  13. Technologies and Services Terraform resource "aws_instance" " dban" { ami = "ami-ae7bfdb8" instance_type = "m4.xlarge" subnet_id = "${module.vpc.private_subnets[1]}" key_name = "linux_banner_key" private_ip = xxx.xx.xx.xxx" vpc_security_group_ids = ["${aws_security_group.dban.id}"] root_block_device{ volume_type = "gp2" volume_size = "100" delete_on_termination = "false" } }

  14. Technologies and Services Terraform resource "aws_ecs_service" "prod-BannerAdmin" { name = "prod-BannerAdmin" cluster = "${aws_ecs_cluster.pcompute.id}" task_definition = "${aws_ecs_task_definition.prod-BannerAdmin.arn}" desired_count = 2 iam_role = "${aws_iam_role.pecs_service_role.arn}" depends_on = ["aws_iam_role_policy.pecs_service_role_policy"] load_balancer { target_group_arn = "${aws_alb_target_group.prod-BannerAdmin.arn}" container_name = "prod-BannerAdmin", container_port = 8080 } .. }

  15. Technologies and Services Terraform

  16. Technologies and Services Lambda rave-rss c2g campustoursmaint ec2-start-parkable errors-remedy-to-slack SecureAccess_ETL pobox-sync pwebsql1-ip-check ebs-backup-worker contracts_etlemailer trs-etl wets sa-log-clean campus_tours_emailer compcalc_etl major-change contact_methods_etl snsToSlack provost_etl ebs-backup-prune ec2-stop-parkable TRS_Reminders parking

  17. Technologies and Services AMIs and Snapshots Snap AMIs quarterly or major upgrades Snap AMIs for install baselines Snapshots nightly Automated Backup and Prune via Lambda Migrate to Amazon Data Lifecycle Manager

  18. Technologies and Services Route 53 and DNS forwarders Legacy domains Point on-prem DNS entry to APEX load balancer goldlink.etsu.edu degreeworks.etsu.edu

  19. Technologies and Services Logging Cloudwatch Cloudtrail (Audit) S3 Log Dumps

  20. Technologies and Services Monitoring Prometheus Alerts Manager Slack Grafana

  21. Technologies and Services Configuration Management

  22. Benefits Better Disaster Recovery AMIs, Snapshots, Infrastructure as Code High Availability Multi-AZ, Multiple Instances, Load Balanced Improved Scalability ECS Compute Clusters, Auto-Scaling Groups, Containers. Capacity on Demand Improved Security Network Isolation, Security Groups, Monitoring, VPN Gateway, Peering Easier to Maintain Declarative Infrastructure and Services. Git / Continuous Integration Pipelines

  23. Challenges Timing Staffing (workload/capacity and self-learning) Cost (Op-ex vs Cap-ex) AWS Contract Networking (VPN Gateway, CISCO ASA, SQL Fixup protocol, persistent connection sniping)

  24. Whats Next? Containerize more apps Puppetize when containers not ideal Create standby in separate region Increase usage of CI/CD Increase monitoring via Prometheus and smart alerting All the Dashboards!!! Greenfield Projects AWS Fargate Kubernetes (EKS or Standalone)

  25. Collaboration Bandock Google Group bandock@googlegroups.com Banner AWS Slack Group April Sims Southern Utah University aprilcsims@gmail.com Monthly (ish) Meetings

  26. Albert Alby Holtsclaw Senior DevOps Architect / Senior Database Administrator AlbertHoltsclaw.com holtsclawa@etsu.edu

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#