JavaRush /ื‘ืœื•ื’ Java /Random-HE /ืžื“ืจื™ืš ืœ-Java Microservices. ื—ืœืง 2: ืคืจื™ืกื” ื•ื‘ื“ื™ืงื”

ืžื“ืจื™ืš ืœ-Java Microservices. ื—ืœืง 2: ืคืจื™ืกื” ื•ื‘ื“ื™ืงื”

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ืชืจื’ื•ื ื•ื”ืชืืžื” ืฉืœ Java Microservices: ืžื“ืจื™ืš ืžืขืฉื™ . ืงื™ืฉื•ืจ ืœื—ืœืง ื”ืจืืฉื•ืŸ ืฉืœ ื”ืžื“ืจื™ืš . ืžื“ืจื™ืš ืœ-Java Microservices.  ื—ืœืง 2: ืคืจื™ืกื” ื•ื‘ื“ื™ืงื” - 1ื›ืœ ืชื•ื›ื ื™ืช Java ื‘ืฆื“ ื”ืฉืจืช, ื•ืœืคื™ื›ืš ื›ืœ ืฉื™ืจื•ืช ืžื™ืงืจื•, ื”ื•ื ืจืง ืงื•ื‘ืฅ ืขื ืกื™ื•ืžืช .jar ืื• .war. ื™ืฉ ื“ื‘ืจ ืื—ื“ ื ื”ื“ืจ ื‘ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ Java, ืื• ืœื™ืชืจ ื“ื™ื•ืง ื”-JVM: ืืชื” ืฆืจื™ืš ืœื›ืชื•ื‘ ืจืง ืงื•ื“ Java ืคืขื ืื—ืช ื•ื”ื•ื ื™ื›ื•ืœ ืœืคืขื•ืœ ื›ืžืขื˜ ืขืœ ื›ืœ ืžืขืจื›ืช ื”ืคืขืœื”, ื›ืœ ืขื•ื“ ืœื ื”ื™ื“ื•ืจ ื”ืงื•ื“ ืฉืœืš ืขื ื’ืจืกื” ื—ื“ืฉื” ื™ื•ืชืจ ืฉืœ Java ืžืืฉืจ ืฉืœืš ื’ืจืกืช ื™ืขื“ JVM. ื—ืฉื•ื‘ ืœื”ื‘ื™ืŸ ื–ืืช, ื‘ืžื™ื•ื—ื“ ื›ืฉืžื“ื•ื‘ืจ ื‘ื ื•ืฉืื™ื ื›ืžื• Docker, Kubernetes ืื• (ืชื•ืคื™ื!) ื”ืขื ืŸ. ืœืžื”? ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ืชืจื—ื™ืฉื™ ืคืจื™ืกื” ืฉื•ื ื™ื.

ื“ื•ื’ืžื” ืœืคืจื™ืกืช Java Microservice ืžื™ื ื™ืžืœื™ืกื˜ื™ืช

ื ืžืฉื™ืš ื‘ื“ื•ื’ืžื” ืฉืœ ื”ื‘ื ืง. ืื– ื™ืฉ ืœื ื• ืงื•ื‘ืฅ monobank.jar (ืžื•ื ื•ืœื™ืช) ื•ืืช riskengine.jar ืฉื—ื•ืœืฆื• ืœืื—ืจื•ื ื” (ื”ืžื™ืงืจื•-ืฉื™ืจื•ืช ื”ืจืืฉื•ืŸ ืœื‘ื“ื™ืงืช ืกื™ื›ื•ื ื™ื). ื‘ื•ืื• ื ื ื™ื— ื’ื ืฉืฉืชื™ ื”ืืคืœื™ืงืฆื™ื•ืช, ื›ืžื• ื›ืœ ืืคืœื™ืงืฆื™ื” ืื—ืจืช ื‘ืขื•ืœื, ื–ืงื•ืงื•ืช ืœืงื•ื‘ืฅ .properties. ื‘ืžืงืจื” ืฉืœื ื•, ื”ื•ื ื™ื›ื™ืœ ืจืง ืืช ื›ืชื•ื‘ืช ื”ืืชืจ ื•ื”ืื™ืฉื•ืจื™ื ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื. ืคืจื™ืกื” ืžื™ื ื™ืžืœื™ืช ืขืฉื•ื™ื” ืœื”ื™ื•ืช ืžื•ืจื›ื‘ืช ืžืฉืชื™ ืกืคืจื™ื•ืช ืฉื ืจืื•ืช ื‘ืขืจืš ื›ืš: ืจืืฉื™ืช:

-r-r------ 1 ubuntu ubuntu     2476 Nov 26 09:41 application.properties
-r-x------ 1 ubuntu ubuntu 94806861 Nov 26 09:45 monobank-384.jar

ubuntu@somemachine:/var/www/www.monobank.com/java$ java -jar monobank-384.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
...
ืฉืึฐื ึดื™ึธื”:

-r-r------ 1 ubuntu ubuntu     2476 Nov 26 09:41 application.properties
-r-x------ 1 ubuntu ubuntu 94806861 Nov 26 09:45 risk-engine-1.jar

ubuntu@someothermachine:/var/www/risk.monobank.com/java$ java -jar risk-engine-1.jar

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
...
ื–ื” ืžืฉืื™ืจ ืืช ื”ืฉืืœื” ืคืชื•ื—ื”: ื›ื™ืฆื“ ื™ื’ื™ืขื• ืงื‘ืฆื™ ื”-.properties ื•-.jar ืœืฉืจืช? ืœืžืจื‘ื” ื”ืฆืขืจ, ืขืฉื•ื™ื•ืช ืœื”ื™ื•ืช ืชืฉื•ื‘ื•ืช ืจื‘ื•ืช.

ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ Build, SSH ื•-Ansible ืœืคืจื™ืกืช ืฉื™ืจื•ืชื™ Java Microservices

ืขืฆื” ืžืฉืขืžืžืช, ืื‘ืœ ืœื ืคื—ื•ืช ืžืžืฆื•ื™ื ืช ื›ื™ืฆื“ ืœืคืจื•ืก ืฉื™ืจื•ืชื™ ืžื™ืงืจื• ืฉืœ Java... ืœืžืขืฉื”, ื‘ื“ื™ื•ืง ื›ืžื• ืฉืžื ื”ืœื™ ืžืขืจื›ืช ืคืจืกื• ื›ืœ ืชื•ื›ื ื™ืช ืฉืจืช Java ื‘ื—ื‘ืจื•ืช ื‘ืžื”ืœืš 20 ื”ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช. ื–ื” ื”ืชืžื”ื™ืœ:
  • ื›ืœื™ ื”ื‘ื ื™ื™ื” ื”ืžื•ืขื“ืฃ ืขืœื™ืš (Maven, Gradle)
  • SSH/SCP ื™ืฉืŸ ื•ื˜ื•ื‘ ืœื”ืขืชืงืช .jars ืœืฉืจืชื™ื
  • ืกืงืจื™ืคื˜ื™ื Bash ืœื ื™ื”ื•ืœ ืกืงืจื™ืคื˜ื™ื ื•ืฉืจืชื™ื ืฉืœ ืคืจื™ืกื”
  • ืื• ืืคื™ืœื• ื˜ื•ื‘ ื™ื•ืชืจ: ื›ืžื” ืกืงืจื™ืคื˜ื™ื ืฉืœ Ansible.
ื›ืžื•ื‘ืŸ ืฉื–ื” ืœื ืžืชืื™ื ืœื—ื“ืฉื ื™ื ืฉืฆืจื™ื›ื™ื ืขื ืŸ "ื ื•ืฉื", ืฉืจืชื™ื ืขื ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ืื•ื˜ื•ืžื˜ื™ ื•ื›ื•'. ื–ื” ืืกื›ื•ืœื” ืขืชื™ืงื” ืžืžืฉ ืžืฉืขืžืžืช. ืขื ื–ืืช ื–ื” ืขื•ื‘ื“!

ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘-Docker ืœืคืจื™ืกืช Java Microservices

ื‘ื•ืื• ื ื—ื–ื•ืจ ืœื™ื™ืกื•ืจื™ื ื”ืžืชื•ืงื™ื ืฉืœ ื”ื‘ื—ื™ืจื”. ืœืคื ื™ ืฉื ืชื™ื™ื ื”ื’ื™ืข ื“ื•ืงืจ ืœืžืงื•ื, ื•ืื™ืชื• ืžื›ื•ืœื•ืช. ืื ืžืขื•ืœื ืœื ืขื‘ื“ืช ืขื ื–ื”, ื”ื ื” ืชื™ืื•ืจ ืงืฆืจ ื”ืžื™ื•ืขื“ ืœืžืฉืชืžืฉื™ ืงืฆื” ื•ืœืžืคืชื—ื™ื:
  • ืžื™ื›ืœ (ืคืฉื•ื˜) ื“ื•ืžื” ืœืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช ื”ื™ืฉื ื” ื•ื”ื˜ื•ื‘ื”, ืื‘ืœ "ืงืœ ื™ื•ืชืจ". ืื ืœื ื‘ืจื•ืจ ืœืš ืžื” ื”ืžืฉืžืขื•ืช ืฉืœ "ืงืœ ื™ื•ืชืจ" ื‘ื”ืงืฉืจ ื”ื–ื”, ืื ื ื‘ื“ื•ืง ืืช ื”ืชืฉื•ื‘ื” ื”ื–ื• ื‘-Stackoverflow .
  • ื”ืžื›ื•ืœื” ืžื‘ื˜ื™ื—ื” ื ื™ื™ื“ื•ืช ืžืฉืœื”. ื›ืœื•ืžืจ, ื–ื” ืขื•ื‘ื“ ื‘ื›ืœ ืžืงื•ื. ื ืฉืžืข ืžื•ื›ืจ, ืœื?
ืžื“ืจื™ืš ืœ-Java Microservices.  ื—ืœืง 2: ืคืจื™ืกื” ื•ื‘ื“ื™ืงื” - 2ื–ื” ืžืฆื—ื™ืง ืฉืœืื•ืจ ื”ื ื™ื™ื“ื•ืช ื•ื”ืชืื™ืžื•ืช ืœืื—ื•ืจ ืฉืœ ื”-JVM, ื”ืชื›ื•ื ื” ื”ื–ื• ืœื ื ืจืื™ืช ื›ืžื• ื™ืชืจื•ืŸ ื›ื–ื”. ืืชื” ื™ื›ื•ืœ ืคืฉื•ื˜ ืœื”ื•ืจื™ื“ ืืช JVM.zip ื‘ื›ืœ Raspberry Pi (ืื• ืืคื™ืœื• ื˜ืœืคื•ืŸ ื ื™ื™ื“), ืœื—ืœืฅ ืื•ืชื• ื•ืœื”ืคืขื™ืœ ื›ืœ ืงื•ื‘ืฅ jar. ื”ืžืฆื‘ ืžืฉืชื ื” ื‘ืฉืคื•ืช ื›ืžื• PHP ืื• Python, ืฉื‘ื”ืŸ ืื™ ืชืื™ืžื•ืช ื’ืจืกืื•ืช ืื• ื”ื’ื“ืจื•ืช ืคืจื™ืกื” ืžื•ืจื›ื‘ื•ืช ื™ื•ืชืจ. ืื• ืื ืืคืœื™ืงืฆื™ื™ืช Java ืฉืœืš ืชืœื•ื™ื” ื‘ืฉื™ืจื•ืชื™ื ืžื•ืชืงื ื™ื ืจื‘ื™ื ืื—ืจื™ื (ืขื ืžืกืคืจื™ ื”ื’ืจืกื” ื”ื ื›ื•ื ื™ื): ืœื“ื•ื’ืžื”, ืžืกื“ ื ืชื•ื ื™ื Postgres, ืื• ืžืื’ืจ ืขืจื›ื™ ืžืคืชื— Redis. ืื–, ื”ื™ืชืจื•ืŸ ื”ืขื™ืงืจื™ ืฉืœ Docker for Java microservices, ืื• ืœื™ืชืจ ื“ื™ื•ืง ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ Java, ื”ื•ื ื–ื”: ื”ื™ื›ื•ืœืช ืœื”ื’ื“ื™ืจ ืกื‘ื™ื‘ื•ืช ื‘ื“ื™ืงื•ืช ื”ื•ืžื•ื’ื ื™ื•ืช ืื• ืื™ื ื˜ื’ืจืฆื™ื” ื‘ืืžืฆืขื•ืช ื›ืœื™ื ื›ืžื• Testcontainers . ืคื™ืชื•ื—ื™ื ืžื•ืจื›ื‘ื™ื ืงืœื™ื ื™ื•ืชืจ ืœื”ืชืงื ื”. ืงื— ืชื•ื›ื ืช ืคื•ืจื•ื ืฉื™ื— . ืืชื” ื™ื›ื•ืœ ืœื”ืชืงื™ืŸ ืื•ืชื• ืขื ืชืžื•ื ืช Docker ืื—ืช, ื•ื–ื• ืžื›ื™ืœื” ืืช ื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš, ืžืชื•ื›ื ืช Discourse ืฉื ื›ืชื‘ื” ื‘ืจื•ื‘ื™, ื“ืจืš ืžืกื“ ื ืชื•ื ื™ื Postgres ื•ืขื“ Redis ื•ื›ื™ื•ืจ ื”ืžื˜ื‘ื—. ืื ื”ืคืจื™ืกื•ืช ืฉืœืš ื“ื•ืžื•ืช ืื• ืฉืืชื” ืจื•ืฆื” ืœื”ืคืขื™ืœ ืžืกื“ ื ืชื•ื ื™ื ืงื˜ืŸ ืฉืœ Oracle, ื ืกื” ืืช Docker. ืื– ืœืกื™ื›ื•ื, ื‘ืžืงื•ื ืœื”ืกืชื›ืœ ืจืง ืขืœ ืงื•ื‘ืฅ ื”-.jar, ืืชื” ืขื›ืฉื™ื•:
  • ืื’ื“ ืืช ืงื•ื‘ืฅ ื”-jar ืฉืœืš ืœืชืžื•ื ืช Docker
  • ื“ื—ื•ืฃ ืชืžื•ื ื” ื–ื• ืœืจื™ืฉื•ื ื“ื•ืงืจ ืคืจื˜ื™
  • ืžืฉื•ืš ื•ื”ืคืขืœ ืืช ื”ืชืžื•ื ื” ื”ื–ื• ืขืœ ืคืœื˜ืคื•ืจืžืช ื”ื™ืขื“ ืฉืœืš
  • ืื• ื”ืขืชืง ืืช ืชืžื•ื ืช Docker ื™ืฉื™ืจื•ืช ืœืžืขืจื›ืช ื”ื™ื™ืฆื•ืจ ืฉืœืš ื•ื”ืคืขืœ ืื•ืชื”.

ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘-Docker Swarm ืื• Kubernetes ื›ื“ื™ ืœืคืจื•ืก ืฉื™ืจื•ืชื™ Java Microservices

ื ื ื™ื— ืฉื”ื—ืœื˜ืช ืœื ืกื•ืช ืืช Docker. ื‘ื›ืœ ืคืขื ืฉืืชื” ืคื•ืจืก ืžื™ืงืจื•-ืฉื™ืจื•ืช Java, ืืชื” ื™ื•ืฆืจ ืชืžื•ื ืช Docker ื”ืžืื’ื“ืช ืืช ืงื•ื‘ืฅ ื”-.jar ืฉืœืš. ื ื ื™ื— ืฉื™ืฉ ืœืš ื›ืžื” ืžืฉื™ืจื•ืชื™ ื”ืžื™ืงืจื• ื”ืืœื” ืฉืœ Java, ื•ืืชื” ืจื•ืฆื” ืœืคืจื•ืก ืืช ื”ืฉื™ืจื•ืชื™ื ื”ืืœื” ื‘ืžืกืคืจ ืžื—ืฉื‘ื™ื (ื‘ืืฉื›ื•ืœ). ื ืฉืืœืช ื”ืฉืืœื”: ืื™ืš ืœื ื”ืœ ืืช ื”ืืฉื›ื•ืœ ื”ื–ื”? ืœื”ืคืขื™ืœ ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉืœ Docker, ืœื‘ื“ื•ืง ื‘ื™ืฆื•ืขื™ื, ืœืคืจื•ืก ืขื“ื›ื•ื ื™ื, ืœืฉื ื•ืช ืืช ืงื ื” ื”ืžื™ื“ื” ืฉืœ ื”ืžืขืจื›ืช (brrr)? ืฉืชื™ ืชืฉื•ื‘ื•ืช ืืคืฉืจื™ื•ืช ืœืฉืืœื” ื–ื• ื”ืŸ Docker Swarm ื•-Kubernetes. ืคื™ืจื•ื˜ ืฉืœ ืฉืชื™ ื”ืืคืฉืจื•ื™ื•ืช ื™ื”ืคื•ืš ืืช ื”ืžื“ืจื™ืš ื”ืืจื•ืš ื”ื–ื” ื›ื‘ืจ ืืจื•ืš ืžื“ื™, ืื‘ืœ ืื ื—ื ื• ื—ื•ืฉื‘ื™ื ืฉื—ืฉื•ื‘ ืœื”ื–ื›ื™ืจ ืฉืฉืชื™ ื”ืืคืฉืจื•ื™ื•ืช ืžืกืชืžื›ื•ืช ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืขืœ ื›ืš ืฉืืชื” ื›ื•ืชื‘ ืงื‘ืฆื™ YAML (ืจืื” ืกื™ืคื•ืจื™ ื”ื–ื—ื” ืฉืœ Yaml ) ื›ื“ื™ ืœื ื”ืœ ืืช ื”ืืฉื›ื•ืœ ืฉืœืš. ืื ืืชื” ืจื•ืฆื” ืœื“ืขืช ืื™ืš ื–ื” ื’ื•ืจื ืœืš ืœื”ืจื’ื™ืฉ ื‘ืคื•ืขืœ, ืคืฉื•ื˜ ื”ืงืœื“ ืฉืื™ืœืชื” ื“ื•ืžื” ื‘ื—ื™ืคื•ืฉ ื‘ื˜ื•ื•ื™ื˜ืจ. ืื– ืชื”ืœื™ืš ื”ืคืจื™ืกื” ืขื‘ื•ืจ ืฉื™ืจื•ืชื™ ื”ืžื™ืงืจื• ืฉืœ Java ืฉืœืš ื ืจืื” ื›ืขืช ื‘ืขืจืš ื›ืš:
  • ื”ื’ื“ืจื” ื•ื ื™ื”ื•ืœ ืฉืœ Docker Swarm/Kubernetes
  • ื›ืœ ื”ืฉืœื‘ื™ื ืขื‘ื•ืจ Docker (ืจืื” ืœืžืขืœื”)
  • ื›ืชื•ื‘ ื•ื”ืคืขืœ YAML ืขื“ ืฉื”ืขื™ื ื™ื™ื ืฉืœืš ืžื“ืžืžื•ืช ืขื“ ืฉื”ื›ืœ ื™ืขื‘ื•ื“.

ื›ื™ืฆื“ ืœื‘ื“ื•ืง Java Microservices

ื ื ื™ื— ืฉืืชื” ืžื—ืœื™ื˜ ืœื™ื™ืฉื ืฉื™ืจื•ืชื™ ืžื™ืงืจื• ื‘ื™ื™ืฆื•ืจ. ื›ื™ืฆื“ ื ื•ื›ืœ ืœื‘ื“ื•ืง ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœ n-microservices ื‘ืžื”ืœืš ื”ืคื™ืชื•ื— ื›ืขืช? ืื™ืš ืืชื” ื™ื›ื•ืœ ืœืจืื•ืช ืื ื–ืจื™ืžืช ื”ืขื‘ื•ื“ื” ื›ื•ืœื” ืขื•ื‘ื“ืช, ื•ืœื ืจืง ื—ืœืงื™ื ืžืžื ื”? ื‘ืคื•ืขืœ, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืื—ืช ืžืฉืœื•ืฉ ืฉื™ื˜ื•ืช:
  1. ืขื ืงืฆืช ืขื‘ื•ื“ื” (ืื ืืชื” ืžืฉืชืžืฉ ื‘ืžืกื’ืจื•ืช ื›ืžื• Spring Boot), ืืชื” ื™ื›ื•ืœ ืœืฉืœื‘ ืืช ื›ืœ ืฉื™ืจื•ืชื™ ื”ืžื™ืงืจื• ืฉืœืš ืœืžื—ืœืงื” ืื—ืช ืฉืœ ืžืฉื’ืจ ื•ืœื˜ืขื•ืŸ ืืช ื›ืœ ืฉื™ืจื•ืชื™ ื”ืžื™ืงืจื• ื‘ืืžืฆืขื•ืช ืžื—ืœืงื” ืื—ืช ืฉืœ Wrapper.java - ืชืœื•ื™ ืื ื™ืฉ ืœืš ืžืกืคื™ืง ื–ื™ื›ืจื•ืŸ ื‘ืžื—ืฉื‘ ืฉืœืš ื›ื“ื™ ืœื”ืคืขื™ืœ ืืช ื›ืœ ืฉื™ืจื•ืชื™ ื”ืžื™ืงืจื• ืฉืœืš.
  2. ืืชื” ื™ื›ื•ืœ ืœื”ืขืชื™ืง ืืช ื”ื’ื“ืจื•ืช Docker Swarm ืื• Kubernetes ื‘ืื•ืคืŸ ืžืงื•ืžื™.
  3. ืคืฉื•ื˜ ืืœ ืชืคืขื™ืœ ื™ื•ืชืจ ืžื‘ื—ื ื™ ืื™ื ื˜ื’ืจืฆื™ื” ืžืงื•ืžื™ืช. ื‘ืžืงื•ื ื–ืืช, ืคืจื•ืก ืกื‘ื™ื‘ืช DEV/TEST ื™ื™ืขื•ื“ื™ืช. ื–ื” ืžืฉื”ื• ืฉืœื ืžืขื˜ ืฆื•ื•ืชื™ื ื‘ืืžืช ืขื•ืฉื™ื ื›ืฉื”ื ื ื›ื ืขื™ื ืœื›ืื‘ ืฉืœ ื”ื’ื“ืจื•ืช ืžื™ืงืจื•-ืฉื™ืจื•ืช ืžืงื•ืžื™ื•ืช.
ื‘ื ื•ืกืฃ, ื‘ื ื•ืกืฃ ืœืฉื™ืจื•ืชื™ ื”-Java ืฉืœืš, ื›ื ืจืื” ืฉืชื–ื“ืงืง ื’ื ืœืžืชื•ื•ืš ื”ื•ื“ืขื•ืช ืคื•ืขืœ (ื›ื’ื•ืŸ ActiveMQ ืื• RabbitMQ) ืื• ืื•ืœื™ ืฉืจืช ืื™ืžื™ื™ืœ ืื• ื›ืœ ืจื›ื™ื‘ ื”ื•ื“ืขื•ืช ืื—ืจ ืฉืฉื™ืจื•ืชื™ ื”-Java ืฉืœืš ืฆืจื™ื›ื™ื ื›ื“ื™ ืœืชืงืฉืจ ื–ื” ืขื ื–ื”. ื–ื” ืžื•ื‘ื™ืœ ืœื”ืขืจื›ืช ื—ืกืจ ืžืฉืžืขื•ืชื™ืช ืฉืœ ื”ืžื•ืจื›ื‘ื•ืช ื‘ืฆื“ DevOps. ืชืกืชื›ืœ ื‘ืกืคืจื™ื•ืช ื”ื‘ื“ื™ืงื•ืช ืฉืœ Microservice, ื”ืŸ ื™ื›ื•ืœื•ืช ืœื”ืงืœ ืขืœ ื”ื›ืื‘ ื”ื–ื”. ื‘ื›ืœ ืžืงืจื”, ื”ืžื•ืจื›ื‘ื•ืช ื”ื–ื• ืžื‘ื™ืื” ืื•ืชื ื• ืœื‘ืขื™ื•ืช ื”ื›ืœืœื™ื•ืช ืฉืœ ืฉื™ืจื•ืชื™ ืžื™ืงืจื•, ืขืœื™ื”ืŸ ื ื“ื‘ืจ ื›ื‘ืจ ืขื›ืฉื™ื•. ื‘ื—ืœืง ื”ืื—ืจื•ืŸ ื ืกืงื•ืจ ืฉืืœื•ืช ื›ืœืœื™ื•ืช ืขืœ ืฉื™ืจื•ืชื™ ืžื™ืงืจื• ืฉืœ Java.
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION