Summary: | Large scale internet services are increasingly implemented as distributed systems to achieve availability, fault tolerance and scalability. To achieve fault tolerance, microservices need to employ different resilience mechanisms such as automatic retries, rate limiting, circuit breaking amongst others to make the services handle failures gracefully and cause minimum damage to the performance of the overall system. These features are provided by service proxies such as Envoy which is deployed as a sidecar (sidecar proxy is an application design pattern which abstracts certain features, such as inter-service communications, monitoring and security, away from the main architecture to ease the tracking and maintenance of the application as a whole), the service proxies are very new developments and are constantly evolving. Evaluating their presence in a system to see if they add latency to the system and understand the advantages provided is crucial in determining their fit in a large scale system.Using an experimental approach, the services are load tested with and without the sidecar proxies in different configurations to determine if the usage of Envoy added latency and if its advantages overshadow its disadvantages. The Envoy sidecar proxy adds latency to the system; however, the benefits it brings in terms of resilience, make the services perform better when there is a high number of failures in the system. === Storskaliga internettjänster implementeras alltmer som distribuerade system för att uppnå tillgänglighet, feltolerans och skalbarhet. För att uppnå feltolerans måste microservices använda olika typer av resiliens mekanismer som automatisk återförsök, hastighetsbegränsning, kretsbrytning bland annat som tillåter tjänsterna att hantera misslyckanden graciöst och orsaka minimala skador på prestandan hos det övergripande systemet. Dessa funktioner tillhandahålls av service proxies som Envoy. Dessa proxies används som sidovagn (sidvagnproxy är ett applikationsdesignmönster som abstraherar vissa funktioner, såsom kommunikation mellan kommunikationstjänster, övervakning och säkerhet, bort från huvudarkitekturen för att underlätta spårningen och underhåll av ansökan som helhet). Dessa tjänster är väldigt nya och utvecklas ständigt. Att utvärdera deras närvaro i ett system för att se om de lägger till latens för systemet och förstå fördelarna som tillhandahålls är avgörande för att bestämma hur väl de skulle passa i ett storskaligt system. Med hjälp av ett experimentellt tillvägagångssätt testas tjänsterna med och utan sidospårproxys i olika konfigurationer för att avgöra om användningen av Envoy lägger till latens och om dess fördelar överskuggar dess nackdelar. Envoy sidecar proxy ökar latensen i systemet; De fördelar som det ger med avseende på resiliens gör tjänsterna bättre när det finns ett stort antal misslyckanden i systemet.
|