parc02 / self-study

0 stars 0 forks source link

self-docker-cron

This repo is for concreting the concept of the things I've been studying including nginx, docker, crontab, ngrinder(performance testing),kubernetes and jenkins

1. Web Server Architecture

web server can be divided into four parts. Web Browser, Server, WAS, and Database.

REF https://en.wikipedia.org/wiki/Web_browser
https://www.nginx.com/resources/glossary/application-server-vs-web-server/
https://blog.naver.com/gi_balja/223028077537

2. Nginx

3. Kubernetes

- Pods

ref

4. Performance Testing Scenario

Performance testing is simply testing how many users that the web-server(API) can afford. other than that it can also be used to check whether which model shows a better performance.

Performance Testing Indicators

TPS -> Transaction Per Second
TPS = Active User / Response Time

image From the picture above, the total TPS and Latency would be

Throughput Latency
500TPS 350ms

Latency sums up all section but Throughput is the min value of all the section Thus if you want to improve TPS it is crucial to find the critical path.
and if you want to improve latency, you should minimize each latency.

image

as you see the graph above, At saturation Point TPS no longer when User increases which means
TPS = Active User / Response Time -> Active User = Response time
-So it means that response time is increasing -> which is the imoportant point to define performance 'load point'

REF: https://ch4njun.tistory.com/266

5. jenkins

Jenkins offers a simple way to set up a CI or CD environment for almost any combination of languages and source code repositories using pipelines, as well as automating other routine development tools than you can easily build yourself

- CI

Continuous Integration refers to the practice of automatically and frequently integrating code changes into a shared source code repository.

- CD

CD stands for Continuous Delivery and/or Continuous Deployment