Lectures 13 & 14: Project Planning, Phasing, and Execution (Capstone)

Learning Objective: Learn how to bring an integration architecture to life. Understand project phasing strategies, continuous deployment for integrations, and apply all semester concepts to a final Capstone Architectural Review.

1. The Integration Project Lifecycle

Designing a microservices architecture or an iPaaS solution is only half the battle. Executing the project in a live enterprise environment without disrupting current business operations is a massive undertaking. The lifecycle involves:

2. Implementation Phasing: Big Bang vs. Incremental

When it is time to deploy the new integrated system, Enterprise Architects must choose a rollout strategy. The two most common approaches are the Big Bang and Incremental (Phased) rollouts.

1. Big Bang Rollout High Risk, Short Transition Legacy System Active "Cut-Over Weekend" New Integrated System Time 2. Incremental (Strangler) Rollout Low Risk, Long Transition Legacy Svc A Legacy Svc B & C Active New Svc A (Integrated) Legacy B New Svc B C Temporary Sync Bridges Time

Figure 1: Big Bang Rollout vs. Incremental Rollout (The Strangler Fig Pattern)

Big Bang

The old system is shut down on Friday night, and the new integrated system is turned on Monday morning. Data is migrated over the weekend.

Incremental (Strangler Pattern)

Also known as the "Strangler Fig Pattern". The old system is slowly replaced module by module. The API Gateway routes traffic to the new module if it exists, otherwise it falls back to the legacy system.

3. Continuous Integration / Continuous Deployment (CI/CD)

Modern integrations (APIs, Microservices) are not deployed manually by copying files to a server. Enterprise teams use CI/CD pipelines to automatically test and deploy integration logic. This ensures that every change is verified before it reaches production.

Code Example: Deploying an Integration Service (GitHub Actions)

Below is an example of a modern pipeline definition. When a developer updates the integration code, this pipeline automatically runs automated tests. If they pass, it builds a Docker container and deploys the new microservice to the cloud.

# .github/workflows/deploy-integration.yml
name: Deploy Billing Integration Service

on:
  push:
    branches:
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v3

      - name: Run Integration Tests
        run: |
          echo "Running mock tests against Salesforce and ERP APIs..."
          npm run test:integration

      - name: Build Docker Image
        run: docker build -t billing-integration-svc:latest .

      - name: Push to Container Registry
        run: |
          docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASS }}
          docker push myregistry.com/billing-integration-svc:latest

      - name: Deploy to Kubernetes Production Cluster
        run: |
          kubectl apply -f k8s/deployment.yaml
          kubectl rollout status deployment/billing-integration-svc

4. Capstone Project: Smart Campus Architecture Review

For the final assignment of this course, students will form groups to architect a complete integration solution for a hypothetical scenario.

Scenario: Udayana Smart Campus 2030

Udayana University is modernizing its IT infrastructure. You have the following existing systems:

The Task: Provide an architectural diagram and an ADR (Architectural Decision Record) detailing how you will integrate these systems so that when a student pays tuition via the Mobile App, their E-Learning courses unlock instantly, and the Legacy Academic System is updated.

Considerations: Which parts use an API Gateway? Where do you place a Message Queue (MOM) to handle legacy bottlenecks? How do you secure the mobile app (JWT)?

Final Discussion Prompt: Reflecting on the entire semester—from PL/SQL and EDI to ESBs, Microservices, iPaaS, and Observability—what do you believe is the single biggest challenge in System Integration today? Is it a technical limitation, or is it human/organizational resistance to change?