There are a variety of techniques to deploy new updates for environments to production, so choosing the right strategy is an important decision, weighing the options in terms of the impact of change on the system and the end-users.
The following strategies need to be considered:
Continue reading Deployment Strategies
- Recreate: Version A is terminated then version B is rolled out.
- Ramped (also known as rolling-update or incremental): Version B is slowly rolled out and replacing version A.
- Blue/Green: Version B is released alongside version A, then the traffic is switched to version B.
- Canary: Version B is released to a subset of users, then proceed to a full rollout.
- A/B testing: Version B is released to a subset of users under specific condition.
- Shadow: Version B receives real-world traffic alongside version A and doesn’t impact the response.
Many of today’s website is designed around giving a good user experience. This comes at a cost of high-bandwidth. Not everyone in the world will have a good internet connection, how about when you are at sea on a ship or in a developing country such as India or Pakistan.
Continue reading Low-Bandwidth website
In an event-driven architecture, when a service performs some piece of work that other services might be interested in, that service produces an event—a record of the completed action. Other services consume those events so that they can perform any of their tasks needed as a result of the event. Unlike with REST, services that create requests do not need to know the details of the services consuming the requests. Here’s a simple example: When an order is placed on an e-commerce site, a single “order placed” event is produced and then consumed by several microservices:
Continue reading What is Event-Driven Microservice Architecture?
What Is Multi-Tenancy?
“Software Multitenancy refers to a software architecture in which a single instance of a software runs on a server and serves multiple tenants. A tenant is a group of users who share common access with specific privileges to the software instance. With a multitenant architecture, a software application is designed to provide every tenant a dedicated share of the instance including its data, configuration, user management, tenant individual functionality and non-functional properties. Multitenancy contrasts with multi-instance architectures, where separate software instances operate on behalf of different tenants” (Wikipedia)
Continue reading Multi-Tenancy
It is important that when working with customers that the architecture is defined and clear in everyone’s mind, I have created this diagram to show the various different areas of the architecture.