microservice architecture

Make Developing software is easier, cheaper, faster and smarter.

 

 

Scope - Why and How , Biz-Tech Drivers, Eco System

Domain Concerns - Technology /Business - Tools and processes

Design Patterns Re-applied - Design/Code/Test/Deployment, Best Practices

API Governance - Elements and implementation. Hands on Demo

Observability - DevOps Culture, Practices,

 

Few minutes about what you can expect from this sessions/workshop

 

& some house keeping stuff

General Software TRENDS

Micro Services

  • Independently deployable and scalable   

  • Parallel, Rapid development, provisioning, and deployment of artifacts with independent life cycle 

  • Stateless and Open API based RESTful to be easily consumed by modern client JS frameworks, mobile and external apps

  • APIs need to be based on modern tech stack and should be quick to adapt to changes and services easily amenable. 

  • Efficient & scalable storage/data transfer with high volume/velocity and the variety of data.  

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

Development with microservices is different journey for different teams and one needs to find their own path. Consider microservices as means for bringing agility and not the end.

It is helping us not only to keep up with pace and innovate faster, but also bringing in more predictable and faster software releases 

 

Economic

  • API-first development strategy is the state of art, provides unprecedented up-sell opportunity (disruptive, as ~30 million developers can write new way applications with multiplier effect)
  • Developer first, then build products has proved to be good strategy for various consumption methods (web, mobile, 3rd party apps and in house products)
  • Automated faster releases will improve agility enormously,
  • Bounded contexts to limit cognitive load. Increases the adoption rate

Technology

  • Independently deploy-able/testable services with independent release cycles
  • Makes it easy to scale with inherent stateless architecture
  • Works well with large teams, Easy to manage the releases
  • Trend for SaaS solutions is to develop API as for all internal and external usage as well with API as scaling with that remains the only credible option
  • Quicker technology adoption and increases happiness quotient for developers

Drivers

Economic

  • Enables diverse technologies to co-exist,new busines oppurtunity, speed to market, data provided by API can be mixed and remixed as per business needs to provide various visualizations, adapt to new trends faster.
  • Eat your own API - Same APIs for internal as well as external. reduces the cost with early feedback cycles

Technology

  • It builds on loosely coupled but highly cohesive set of services.
  • Eliminates long-term commitment to a technology stack.

Drivers

"API becomes digital glue" - Forrester.

Trends

  • The rise of the cloud native applications
  • End of the road for monolithic software architectures for large systems where "scale is a feature"
  • De-productisation through micro services
  • Infrastructure shifts to ‘serverless’ event-driven programming models
  • Rules of software distribution being rewritten -Software design/processes have to adjust to that
  • Reactive programming models. - Newer frameworks

About trends

thoughtworks radar

InfoQJRabel

 

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.

servers need to be provisioned for peak usages of one module, Huge wear and tear effect of deployment if not downtime, Mutating artefacts technically requires complete testing. Expects homogeneous.

 

More about CQRS

Value delivered.              

Velocity achieved.

 

Lines of code shipped.

Number of deploys to production.

 

Design/Code that works, survives, wins and most importantly understood easily by all stakeholders.

 

How you measure success

Building Blocks

Its all about "scaling" at all levels

Conway’s law - Any organisation that designs a system will inevitably produce a design whose structure is a copy of the organisation’s communication structure

 

  • Single business capabilities
  • Small teams
  • Components as service
  • Domain driven design
  • Product focussed
  • De-centralized Data
  • Infrastructure Automation
  • Design for failure
  • Evolutionary Design
  • Rapid Provisioning
  • Monitoring
  • Rapid application development and deployment
  • DevOps culture/Observability

traits

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. 

traits

Orchestration, Issues, IaaS - Tools/Processes

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 of a particular company, one need to invest one of the above approach.

Consistency

 

  • Distributed transactions

  • Eventual consistency

Performance

  • Many Data classes
  • Network Overhead

 

Made with Slides.com