Make Developing software is easier, cheaper, faster and smarter.
Scope - Why and How , Biz-Tech Drivers
Domain Concerns - Technology Options
Best Practices - Design/Code/Test/Deployment
API Governance - Elements and implementation. Spring Boot Application, Demo
Dev-Ops - Culture, Practices
Microservices
Is an architectural style that structures an application as a collection of loosely coupled services, which implement business capabilities that can be deployed and scaled independently
Something strange is happening ...
TRENDS
Stateless, independently deployable and scalable
Rapid development, provisioning, and deployment of artifacts with independent life cycle
RESTful to be easily consumed by modern client JS frameworks.
Services APIs based on OpenAPI standards
API governance where in various service concerns are managed.
APIs need to be based on modern tech stack and should be quick to adapt to changes and services easily amenable.
Cloud friendly APIs (should be able to leverage the cloud standards), Easy to implement cloud design patterns. Services are SaaS friendly with the ability to turn into on-premise easily.
Efficient & scalable storage/data transfer with high volume/velocity and the variety of data.
"API becomes digital glue" - Forrester.
Selecting Best persistent model - Options
Data really powers everything that we do. —Jeff Weiner, CEO of LinkedIn
ElasticSearch
Low latency for indexed read (return set of documents)
Low latency for random search (return set of documents)
Low latency for full text and aggregates queries (return facets)
MySQL/Mongo
Low latency indexed read
High latency random search
Dynamic schema - Mongo
Controlled schema and transactions - MySQL
Redshift/Vertica
High write throughput
Low latency aggregation queries
S3
High read throughput (MB/sec)
Moderate latency single document Read
Lightening fast performance regardless of number of users or data volume.
Dramatically improve throughput and response time.
High availability with truly distributed processing.
It is estimated TCO of these services reduces by 40-60%
Micro services enable faster innovation with frequent independent release lifecycle and delivery of quality software
Monolith API benefits from economy of scope, micro service API benefits from economy of scale.
MICROSERVICES
Micro services enable faster innovation with frequent independent release lifecycle and delivery of quality software
Monolith API benefits from economy of scope, micro service API benefits from economy of scale.
Micro services enable faster innovation with frequent independent release lifecycle and delivery of quality software
Monolith API benefits from economy of scope, micro service API benefits from economy of scale.
Micro services enable faster innovation with frequent independent release lifecycle and delivery of quality software
Monolith API benefits from economy of scope, micro service API benefits from economy of scale.
Micro services enable faster innovation with frequent independent release lifecycle and delivery of quality software
Monolith API benefits from economy of scope, micro service API benefits from economy of scale.
Micro services enable faster innovation with frequent independent release lifecycle and delivery of quality software
Monolith API benefits from economy of scope, micro service API benefits from economy of scale.
Micro services enable faster innovation with frequent independent release lifecycle and delivery of quality software
Monolith API benefits from economy of scope, micro service API benefits from economy of scale.
Small Teams
- Experts in that domain, Focus on Single purpose
- Cross functional - Have all skill sets for complete solution
Test Driven Development, CI and Deployment
- Regression, Fail fast
- Merciless Refactoring, Performance improvement
- Fast iterations
Dev-Ops
- End to end design/development/deployment and retirement
- Independently deployed and scaled.
Orchestration Vs CM
Chef, Puppet, Ansible, and SaltStack are all “configuration management” tools, which means they are designed to install and manage software on existing servers.
CloudFormation and Terraform are “orchestration tools”, which means they are designed to provision the servers themselves, leaving the job of configuring those servers to other tool
Although they can be complimentary there is lot of over-lap and each of them stepping into other's shoe, given the scale/hardware/team requirement ofa particular company, one need to invest one of the above approach.
infrastructure-as-code