Posts

Showing posts from 2018

Container Volume Options and Features

Background Containers need a mechanism to store data, without which it will not be useful. Virtual Machines have the quality that once started, any modifications are saved as a new VM. Containers on the other hand are transient and are not designed to store any state that the application generates Types of Container Storage needs Image Storage: The first is  image storage . This can be provided with existing shared storage and has requirements much like platforms already built for distributing and protecting virtual machine (VM) images in server virtualization. ·        The benefit is container images are much smaller than golden VM images because they don't duplicate operating system code. ·        Also, running container images are immutable by design, so they can be stored and shared efficiently. There is a consequence, though, as the container image cannot store dynamic application data. The second req...

Practical Learnings on Microservices

In a recent project, we delivered over 60 Microservices deployed on multiple Tomcat servers each in Production. Below are some notes on real-life learnings. Designing the Microservices: • Business focus • Small services with CRUD operations on single business function or domain  •Design •Use Lightweight REST based communication (client-to-service and service-to-service)          • Keep Loosely Coupled        •Ensure Services are Stateless •Appropriate design patterns such as Aggregator, Proxy & Branch Patterns are commonly used •In unavoidable cases - there will be Distributed Transactions and need to design for them •Resilience •Must design for Failure – e.g. Delays, Errors or Unavailability of another service or 3 rd party system. •Provide default functionality in case of failures from a service •Rely on Input Validation - (client-to-service and service-to-service) •Observability •Centralized...