https://medium.com/@mrprabu.as Intro Enterprise Architect | Cloud | Frontend UI/UX Architecture and Engineering | Digital Transformation | Web & Mobile
Issues with Airline booking ✓ Mobile app: unable to search flights, unable to manage booking ✓ Website: search for flights, book tickets, manage booking ✓ Different error messages on Mobile app and on website for same action Possible causes ✓ Not using APIs: different teams, codebases, lack of collaboration
Explicitly declare and isolate dependencies Config Store config in the environment Backing services Treat backing services as attached resources Build, Release and Run Strictly separate build and run stages Processes Execute the app as one or more stateless processes Port Binding Expose services via port binding Concurrency Scale out via process-model Disposability Maximize robustness with fast startup and graceful shutdown Dev/Prod Parity Keep development, staging and production as similar as possible Logs Treat Logs as event streams Admin Processes Run admin/management tasks as one-off processes 12 Factor Apps
Explicitly declare and isolate dependencies Config Store config in the environment Backing services Treat backing services as attached resources Build, Release and Run Strictly separate build and run stages Processes Execute the app as one or more stateless processes Port Binding Expose services via port binding Concurrency Scale out via process-model Disposability Maximize robustness with fast startup and graceful shutdown Dev/Prod Parity Keep development, staging and production as similar as possible Logs Treat Logs as event streams Admin Processes Run admin/management tasks as one-off processes 15 Factor Apps API First Define service contract Telemetry Monitor process performance Authentication Secure applications across hardware, network, and software layers
development • Allows rapid prototyping • Support a services ecosystem • Facilitates automated deployment testing and continuous delivery pipelines • Enables consumers and service developers to work in parallel • Helps to avoid bottlenecks and facilitates virtualization of APIs by allowing consumers to run tests against the mocks
Performance Monitoring (APM) • Domain-specific telemetry • Health and System logs • Helps to scale, self-heal and manage alerts for end users and platform operators
using Declarative methods with Terraform, Ansible, Pulami etc. Things to Improve Resiliency and Adaptability Chaos testing Deliberately introduce faults to test for resiliency Serverless Automatically provision, scale and manage resources Observability Collect and analyse data to identify issues and potential improvements Progressive Delivery • Blue Green Deployment • Canary Release • Dark launches • Phased alfa, beta, and gamma releases