Preparing For a Future Microservices Journey Susanne Kaiser - - PowerPoint PPT Presentation
Preparing For a Future Microservices Journey Susanne Kaiser - - PowerPoint PPT Presentation
Preparing For a Future Microservices Journey Susanne Kaiser Independent Tech Consultant @suksr @suksr @suksr @suksr Source: http://www.thomasthwaites.com @suksr @suksr Source: http://www.thomasthwaites.com @suksr @suksr Data Store
@suksr
@suksr
@suksr Source: http://www.thomasthwaites.com
@suksr
@suksr Source: http://www.thomasthwaites.com
@suksr
@suksr
Data Store
@suksr
Hardware O/S Virtualization Container Runtime
@suksr
API Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery
- 1. Register
- 3. Connect
- 2. Discover
Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Idempotency Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Idempotency Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- Heads Circuit Breaker Idempotency Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Circuit Breaker Idempotency Message Broker Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Circuit Breaker Idempotency Message Broker API-Gateway Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Idempotency Message Broker API-Gateway Circuit Breaker Config-Mngmt. Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Idempotency Message Broker API-Gateway Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Idempotency Message Broker API-Gateway Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM
Checkout Test Build
CI/CD Pipeline
Deploy
Hardware O/S Virtualization Container Runtime
@suksr
API API API Service Discovery Load-Balancer API Timeout-Handling Retries Bulk- heads Idempotency Message Broker API-Gateway Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM
Checkout Test Build
CI/CD Pipeline
Deploy
Hardware O/S Virtualization Container Runtime Backup Recovery
@suksr
µService
@suksr
Hardware Data Store API API-Gateway Service Discovery Load-Balancer Message Broker Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks SCM O/S Virtualization Container Runtime
Checkout Test Build
CI/CD Pipeline
Deploy
µService Backup Recovery
@suksr
Hardware Data Store API API-Gateway
Service Discovery Load-Balancer
Message Broker Timeout-Handling Retries Idempotency Bulkheads Circuit Breaker Config-Mngmt. Monitoring Log Aggreation Metrics Distributed Tracing Health Checks
SCM
O/S Virtualization Container Runtime Checkout Test Build
CI/CD Pipeline
Deploy Backup Recovery
@suksr
Complexities
Source: http://www.thomasthwaites.com/folio5/wp-content/uploads/2010/10/Toaster_Project1-PhotoCredit-Daniel_Alexanderx630.jpg
@suksr Source: http://www.thomasthwaites.com
How can a small team handle infrastructure complexities and deliver user & business value?
@suksr
Focus on Core Domain Offload commodities
@suksr
Core Domain Focus User Value
@suksr
User Needs Build in-house
@suksr
Offloading commodities Business Needs Business Value Core Domain Focus User Value User Needs Build in-house Outsource to utility suppliers
@suksr
Software Delivery Performance Productivity Profitability Market Share
@suksr
CTO at Just Software @JustSocialApps
Susanne Kaiser … who?
Independent Tech Consultant @suksr Co-Organizer @microXchg, Berlin Program committee ServerlessDays, Hamburg @ServerlessHAM Program committee MicroCPH, Copenhagen @MicroCPH Program committee & track host QCon, New York @qconnewyork
What to build in-house? What to outsource?
@suksr
Wardley Maps
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Uncha harted ed Ind ndus ustrialised ed Chaotic Uncertain Unpredictable Changing ... Ordered Known Measured Stable ...
By Simon Wardley
P
- s
i t i
- n
Movement
Visualisation of a value chain’s evolution
@suksr
Who are your users?
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Value Chain
@suksr
Who are your users? What are your users’ needs?
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Value Chain
@suksr
Who are your users? What are your users’ needs? What are the components/activities to fulfil your users’ needs incl. dependencies?
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Value Chain
P
- s
i t i
- n
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Evolution
Wardley Maps
Landscape
Components along evolution axes
Genesis Custom-Built Product (+rental) Commodity (+utility) P
- s
i t i
- n
Movement
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Everything evolves
Past Current Future
Supply Competition Demand Competition
Wardley Maps
Patterns
Uncharted Industrialised @suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Past Current Future
Characteristics change
Uncharted Undefined market Uncertain Unpredictable Rare Poorly understood Forming market Learning on use Increasing understanding Slowly increasing consumption Rapid increases in learning Growing market Learning on operation Increasing education Rapidly increasing consumption Rapid increase in use Mature market Known / accepted Stable Widespread and stabilising Commonly understood (in term of use) Industrialised
Wardley Maps
Patterns
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Everything evolves
Past Current Future
Continuous adaption
Wardley Maps
Patterns
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps
Patterns
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps
Patterns
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps
Patterns
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Efficiency enables innovation
Uncharted Industrialised
Wardley Maps
Patterns
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Past Current
Success breeds inertia
Wardley Maps
Patterns
@suksr
Value Chain
I n v i s i b l e V i s i b l e Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Success breeds inertia
Past Current
Inertia can kill an organisation
Wardley Maps
Patterns
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule Speakers Feedback
Focus on user needs
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule Schedule Management Speaker Management Survey Platform Speakers Feedback Session Rating Ticketing Platform
P
- s
i t i
- n
Understand the involved components and their dependencies (position)
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule Schedule Management Speaker Management Survey Platform Speakers Feedback Session Rating Ticketing Platform
P
- s
i t i
- n
Data Storage
Understand the involved components and their dependencies (position)
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule Schedule Management Speaker Management Survey Platform Speakers Feedback Session Rating Ticketing Platform Search Engine
P
- s
i t i
- n
Data Storage
Understand the involved components and their dependencies (position)
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule Schedule Management Speaker Management Survey Platform Speakers Feedback Session Rating Ticketing Platform Search Engine Message Broker
P
- s
i t i
- n
Data Storage
Understand the involved components and their dependencies (position)
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule Schedule Management Speaker Management Survey Platform Speakers Feedback Session Rating Ticketing Platform Search Engine Compute Platform Message Broker
P
- s
i t i
- n
Data Storage
Understand the involved components and their dependencies (position)
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule Schedule Management Speaker Management Survey Platform Speakers Feedback Session Rating Ticketing Platform Search Engine Compute Platform Message Broker VM
P
- s
i t i
- n
Data Storage
Understand the involved components and their dependencies (position)
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule Mgmnt. Speaker Mgmnt. Survey Platform
Speakers Feedback
Session Rating Ticketing Platform Search Engine Compute Platform Data Storage VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Movement Message Broker
Plot components along evolution axes (movement)
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule Mgmnt. Speaker Mgmnt. Survey Platform
Speakers Feedback
Session Rating Ticketing Platform Search Engine Compute Platform Data Storage VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Movement Message Broker
Discuss & plan
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Search Engine Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Movement Message Broker
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Search Engine Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Movement Message Broker
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Use appropriate methods per evolution stage
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Search Engine Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Movement Message Broker
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Use appropriate methods per evolution stage
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Search Engine Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Movement Message Broker
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Use appropriate methods per evolution stage
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Search Engine Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution
Movement Message Broker
Build in-house Use/buy off-the-shelf product Outsource to utility suppliers @suksr
Infrastructure & operational complexities Discuss & plan
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Message Broker
@suksr
Open Source Software
Example
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Message Broker
@suksr
Discuss & plan Offload to container
- rchestration
platform
Managed by YOU Managed by Platform Hardware O/S Virtualization Container Runtime O/S Orchestration µService Container Runtime µService Service Discovery Load Balancer Config-Mngmt. Monitoring Log Aggreation Health Checks Recovery Scaling
@suksr
Container Orchestration
API Gateway
Containerized Microservices
Container Orchestration
Basic components of Kubernetes
Pod Volume
Container Orchestration
Basic components of Kubernetes Containerized Microservices
Containerized Microservice Pod Service Volume
Container Orchestration
Basic components of Kubernetes
Containerized Microservice Pod Service Volume
Master Node Worker Node Worker Node
Container Orchestration
Basic components of Kubernetes
Containerized Microservice Pod Service Volume
Deployment Master Node Worker Node Worker Node
Container Orchestration
Deployment Deployment
Basic components of Kubernetes
Containerized Microservice Pod Service Volume
Deployment Master Node Worker Node Worker Node Ingress
Container Orchestration
Deployment Deployment
Basic components of Kubernetes
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Message Broker Worker Nodes Master Node
@suksr
Container Orchestration w/ Kubernetes
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Message Broker Worker Nodes Master Node Pod Deploym. Service Volume
New Primitives
@suksr
Container Orchestration w/ Kubernetes
Ingress
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Message Broker Worker Nodes Master Node Pod Deploym. Service Volume
New Primitives
Stateful Set Job Daemon Set Cron Job Ingress Egress Secret Config Map Persistent Volume Claim Replica Set Horizontal Pod Autoscaler … and more
@suksr
Container Orchestration w/ Kubernetes
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Message Broker Worker Nodes Master Node Container Orchestration
@suksr
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Message Broker Worker Nodes Master Node Container Orchestration
Offload application networking concerns to a service mesh
@suksr
Discuss & plan
Separation Of Concerns
Service Discovery Load-Balancer Circuit Breaker Timeout Retries Bulkheads Kubernetes / Service Mesh Proxy Proxy
Service Mesh Application Networking Concerns
@suksr
Metrics Health Checks
Service Mesh
Components of Istio
Proxy Proxy Microservice Microservice Policy & Telemetry (Mixer) Discovery & Config to Proxies (Pilot) Config (Galley) TLS Certs to Proxies (Citadel)
Data Plane Control Plane
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Message Broker Worker Nodes Master Node
Service Mesh w/ Istio New Primitives
@suksr
Citadel Mixer Pilot Proxy Galley Container Orchestration
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Message Broker Worker Nodes Master Node
@suksr
Container Orchestration Service Mesh
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS Compute Platform DB aaS VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Message Broker Worker Nodes Master Node
@suksr
Container Orchestration Service Mesh
Discuss & plan Move to Serverless
Serverless
Function Event
Event-Driven Workflow
Hardware Data Store O/S Virtualization Container Runtime
Fully Managed By Third Party Ephemeral Function Pay-per-Execution Auto-Scaling Characteristics
@suksr
triggers
Serverless
AWS Building Blocks
Lambda API Gateway SNS SQS DynamoDB Step Functions
Core AWS Serverless Building Blocks
S3 Kinesis CloudWatch Cognito @suksr IAM and more
Serverless
Example Conference Solution Speaker
Submit CfP API Gateway createCfP DynamoDB sendCfPSubmittedEmail
CfP Handling
Serverless
Example Conference Solution Speaker
Submit CfP API Gateway createCfP DynamoDB sendCfPSubmittedEmail S3 updateCfPPicture
CfP Handling
Serverless
Example Conference Solution Speaker Organiser
Submit CfP API Gateway createCfP DynamoDB sendCfPConfirmedEmail Confirm CfP getCfP confirmCfP sendCfPSubmittedEmail S3 updateCfPPicture SNS
CfP Handling Schedule Management
updateTalkDetails
Serverless
Example Conference Solution Speaker Organiser
Submit CfP API Gateway createCfP DynamoDB sendCfPConfirmedEmail Confirm CfP getCfP confirmCfP sendCfPSubmittedEmail S3 updateCfPPicture Create Schedule createSchedule API Gateway SNS DynamoDB updateSearchIndex updateTalkDetails
CfP Handling Schedule Management
Serverless
Example Conference Solution Speaker Organiser Attendee
Submit CfP API Gateway createCfP DynamoDB sendCfPConfirmedEmail Confirm CfP getCfP confirmCfP sendCfPSubmittedEmail S3 updateCfPPicture Create Schedule createSchedule API Gateway SNS DynamoDB updateSearchIndex getSchedule Get Schedule updateTalkDetails
CfP Handling Schedule Management
Serverless
Example Conference Solution Speaker Organiser Attendee
Submit CfP API Gateway createCfP DynamoDB sendCfPConfirmedEmail Confirm CfP getCfP confirmCfP sendCfPSubmittedEmail S3 updateCfPPicture Create Schedule createSchedule API Gateway SNS DynamoDB updateSearchIndex getSchedule Get Schedule updateTalkDetails
CfP Handling Schedule Management
Your code Use/Configure
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS DB VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine Function Compute Platform
@suksr
Pub/Sub File Storage API Gateway
Serverless
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS DynamoDB VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine
Serverless Application Repository (SAR)
Lambda Compute Platform
@suksr
SNS S3 API Gateway Serverless Component
Value Chain
I n v i s i b l e V i s i b l e
Wardley Maps
Example Conference Solution Attendee
Ticket Schedule
Schedule M. Speaker M. Survey aaS
Speakers Feedback
Session Rating Ticketing aaS DynamoDB VM Genesis Custom-Built Product (+rental) Commodity (+utility)
Evolution Build in-house Use/buy off-the-shelf product Outsource to utility suppliers
Search Engine
Serverless Application Repository (SAR)
Lambda Compute Platform
@suksr
SNS S3 API Gateway Serverless Component
Efficiency enables innovation
Q & A
Q&A Handling
@suksr
Fulfil user & business needs Focus on core domain & build in-house Identify & outsource commodities Continuously adapt
@suksr