- Kubernetes Design Patterns and Extensions
- Onur Yilmaz
- 314字
- 2021-07-23 16:57:37
Sidecar Pattern
Modern software applications often require external functionalities such as monitoring, logging, configuration, and networking. When these functionalities are tightly integrated into the application, they can run as a single process. However,
this violates the isolation principle and creates an opportunity for a single point of failure. With this idea, containers in cloud-native applications are expected to follow the Unix philosophy:
- Containers should have one task
- Containers should work together
- Containers should handle text streams
The Unix philosophy focuses on designing a small operating system with a clean service interface. To have such a system, simple, precise, clear, and modular software development should be undertaken, taking into consideration the developers and maintainers. Besides, the philosophy emphasizes that you should compose subsystems instead of creating a big, monolithic design.
With this idea, it is a conventional approach to separate the main application and run a couple of sidecars attached, which are provided for extra functionality. The main advantages of using a sidecar are as follows:
- They have independent programming languages and runtime dependencies
- They monitor the main application closely and minimize latency
- They extend black box applications
In the following activity, a web-based game will be installed in Kubernetes. As expected, there should be at least one container running the web server. However, there is an additional requirement of continuous source code synchronization.
With the Unix philosophy, it is expected to make containers with only one primary task. They should also work independently and together to achieve the necessary requirements. Finally, these containers should update their statuses, informing the console as log lines. All three of these points are covered in the following activity.
- 后稀缺:自動(dòng)化與未來(lái)工作
- Getting Started with Clickteam Fusion
- Getting Started with Containerization
- 流處理器研究與設(shè)計(jì)
- STM32G4入門(mén)與電機(jī)控制實(shí)戰(zhàn):基于X-CUBE-MCSDK的無(wú)刷直流電機(jī)與永磁同步電機(jī)控制實(shí)現(xiàn)
- PostgreSQL Administration Essentials
- Maya極速引擎:材質(zhì)篇
- DevOps:Continuous Delivery,Integration,and Deployment with DevOps
- Machine Learning with the Elastic Stack
- 基于企業(yè)網(wǎng)站的顧客感知服務(wù)質(zhì)量評(píng)價(jià)理論模型與實(shí)證研究
- INSTANT Adobe Story Starter
- 空間機(jī)器人
- 從機(jī)器學(xué)習(xí)到無(wú)人駕駛
- 大話數(shù)據(jù)科學(xué):大數(shù)據(jù)與機(jī)器學(xué)習(xí)實(shí)戰(zhàn)(基于R語(yǔ)言)
- Intel Edison Projects