Fn ಅನ್ನು ಆಧರಿಸಿ ನಮ್ಮದೇ ಆದ ಸರ್ವರ್‌ಲೆಸ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು

Fn ಅನ್ನು ಆಧರಿಸಿ ನಮ್ಮದೇ ಆದ ಸರ್ವರ್‌ಲೆಸ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು

ಸರ್ವರ್‌ಲೆಸ್ ಕಂಪ್ಯೂಟಿಂಗ್ — ಕ್ಲೌಡ್ ಕಂಪ್ಯೂಟಿಂಗ್‌ನಲ್ಲಿ ಅತ್ಯಂತ ಗಮನಾರ್ಹ ಪ್ರವೃತ್ತಿಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಕಾರ್ಯಾಚರಣೆಯ ಮೂಲ ತತ್ವವೆಂದರೆ ಮೂಲಸೌಕರ್ಯವು ಡೆವೊಪ್ಸ್‌ನ ಕಾಳಜಿಯಲ್ಲ, ಆದರೆ ಸೇವಾ ಪೂರೈಕೆದಾರರ ಕಾಳಜಿಯಾಗಿದೆ. ಸಂಪನ್ಮೂಲ ಸ್ಕೇಲಿಂಗ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಲೋಡ್‌ಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಬದಲಾವಣೆಯ ದರವನ್ನು ಹೊಂದಿರುತ್ತದೆ.

ಮತ್ತೊಂದು ಸಾಮಾನ್ಯ ವೈಶಿಷ್ಟ್ಯವೆಂದರೆ ಕೋಡ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮತ್ತು ಕೇಂದ್ರೀಕರಿಸುವ ಪ್ರವೃತ್ತಿ, ಅದಕ್ಕಾಗಿಯೇ ಸರ್ವರ್‌ಲೆಸ್ ಕಂಪ್ಯೂಟಿಂಗ್ ಅನ್ನು ಕೆಲವೊಮ್ಮೆ "ಸೇವೆಯಾಗಿ ಕಾರ್ಯ" (FaaS) ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.

ಐತಿಹಾಸಿಕವಾಗಿ, AWS ಲ್ಯಾಂಬ್ಡಾ ಜೊತೆಗೆ FaaS ಅನ್ನು ನೀಡಿದ ಮೊದಲ ಕ್ಲೌಡ್ ಸೇವಾ ಪೂರೈಕೆದಾರ ಅಮೆಜಾನ್, ಆದ್ದರಿಂದ ಈ ಹೆಸರು ಬಂದಿದೆ. ಇತರ ಕ್ಲೌಡ್ ಸೇವಾ ಪೂರೈಕೆದಾರರು ಸಹ ಇದೇ ರೀತಿಯ ಕೊಡುಗೆಗಳನ್ನು ನೀಡುತ್ತಾರೆ:

  • Google ನಿಂದ ಕ್ಲೌಡ್ ಕಾರ್ಯಗಳು
  • ಮೈಕ್ರೋಸಾಫ್ಟ್‌ನಿಂದ ಅಜುರೆ ಕಾರ್ಯಗಳು

ಈ ಎಲ್ಲಾ ಕಂಪನಿಗಳು ಸರ್ವರ್‌ಲೆಸ್ ಕಂಪ್ಯೂಟಿಂಗ್, ಸ್ವಯಂಚಾಲಿತ ಸ್ಕೇಲಿಂಗ್ ಮತ್ತು ಪೇ-ಆಸ್-ಯು-ಗೋ ಬೆಲೆ ನಿಗದಿಯನ್ನು ಒದಗಿಸುತ್ತವೆ, ಆದರೆ ಅವು ಗ್ರಾಹಕರನ್ನು ತಮ್ಮ ಸ್ವಾಮ್ಯದ ಉತ್ಪನ್ನಕ್ಕೆ ಬಂಧಿಸುತ್ತವೆ. ಆದಾಗ್ಯೂ, ಸರ್ವರ್‌ಲೆಸ್ ಕಂಪ್ಯೂಟಿಂಗ್‌ಗೆ ಉಚಿತ, ಮುಕ್ತ-ಮೂಲ ಪರ್ಯಾಯಗಳಿವೆ. ಗಮನಿಸಬೇಕಾದ ಅಂಶವೆಂದರೆ:

ಅವೆಲ್ಲವೂ ಸಂಪೂರ್ಣವಾಗಿ ಕ್ಲೌಡ್-ಅಜ್ಞೇಯತಾವಾದಿಗಳು, ಅಂದರೆ ಅವುಗಳನ್ನು ನಿಮ್ಮ ಸ್ವಂತ, ಸಾರ್ವಜನಿಕ ಅಥವಾ ಖಾಸಗಿ ಸೇರಿದಂತೆ ಯಾವುದೇ ಕ್ಲೌಡ್‌ನಲ್ಲಿ ಮತ್ತು ಎಕ್ಸೋಸ್ಕೇಲ್‌ನಲ್ಲಿ ಸ್ಥಾಪಿಸಬಹುದು.

ಎಫ್ಎನ್ ಯೋಜನೆ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ

Fn ಸಂಪೂರ್ಣವಾಗಿ ಡಾಕರ್ ಅನ್ನು ಆಧರಿಸಿದೆ ಮತ್ತು ಎರಡು ಮುಖ್ಯ ಘಟಕಗಳನ್ನು ಒಳಗೊಂಡಿದೆ:

  • Fn ಮೂಲಸೌಕರ್ಯದ ಎಲ್ಲಾ ಅಂಶಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು Fn ಸರ್ವರ್‌ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ CLI ಪ್ರೋಗ್ರಾಂ,
  • Fn ಸರ್ವರ್ ಸ್ವತಃ ಡಾಕರ್ ಕಂಟೇನರ್‌ನಲ್ಲಿ ಪ್ಯಾಕ್ ಮಾಡಲಾದ ನಿಯಮಿತ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದೆ.

Fn ನಲ್ಲಿ ನಿಯೋಜಿಸಲಾದ ಕಾರ್ಯಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಕಂಟೇನರ್‌ಗಳಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಇದು... ಕ್ಲೋಜುರ್! ನಂತಹ ಕೆಲವು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳನ್ನು ಬೆಂಬಲಿಸಲು ನಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಫಂಕ್ಷನ್ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಇನ್‌ಪುಟ್ (STDIN) ಗೆ ರವಾನಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಔಟ್‌ಪುಟ್ (STDOUT) ಗೆ ಬರೆಯಲಾಗುತ್ತದೆ. ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳು ಅಥವಾ ರಿಟರ್ನ್ ಮೌಲ್ಯಗಳು ಸರಳ ಮೌಲ್ಯಗಳಲ್ಲದಿದ್ದರೆ (ಉದಾ., JSON ಆಬ್ಜೆಕ್ಟ್), ಅವುಗಳನ್ನು ಫಂಕ್ಷನ್ ಡೆವಲಪ್‌ಮೆಂಟ್ ಕಿಟ್ (FDK) ರೂಪದಲ್ಲಿ Fn ನಿಂದ ಒದಗಿಸಲಾದ ಅಮೂರ್ತ ಪದರವನ್ನು ಬಳಸಿಕೊಂಡು ಪರಿವರ್ತಿಸಬಹುದು.

ಅನುಕೂಲಕ್ಕಾಗಿ, ವಿವಿಧ ಭಾಷೆಗಳಲ್ಲಿ ಮತ್ತು ಅವುಗಳ ಆವೃತ್ತಿಗಳಲ್ಲಿ (ಗೋ, ಜಾವಾ, ಪೈಥಾನ್‌ನ ವಿವಿಧ ಆವೃತ್ತಿಗಳು, ಇತ್ಯಾದಿ) FaaS ನಿಯೋಜನೆಯನ್ನು ಸುಲಭಗೊಳಿಸಲು ಅಂತರ್ನಿರ್ಮಿತ ಟೆಂಪ್ಲೇಟ್ ಸೆಟ್‌ಗಳನ್ನು ನೀಡಲಾಗುತ್ತದೆ.

FaaS ಅನ್ನು ರಚಿಸುವುದು ಸುಲಭ, ಈ ರೇಖಾಚಿತ್ರವನ್ನು ಅನುಸರಿಸಿ:

  • Fn CLI ಬಳಸಿ ಕಾರ್ಯವನ್ನು ನಿಯೋಜಿಸಿ: ಇದು ಆಯ್ಕೆಮಾಡಿದ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಆಧರಿಸಿ Fn ಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ.
  • ನಾವು ನಮ್ಮದೇ ಆದ ಕಾರ್ಯವನ್ನು ಹೊರತರುತ್ತೇವೆ, ಮತ್ತೆ CLI Fn ಬಳಸಿ: ಕಂಟೇನರ್ ಚಿತ್ರವನ್ನು ನಿರ್ದಿಷ್ಟ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ, ಅದರ ನಂತರ ಈ ಚಿತ್ರದ ಅಸ್ತಿತ್ವ ಮತ್ತು ಸ್ಥಳದ ಬಗ್ಗೆ ಸರ್ವರ್‌ಗೆ ತಿಳಿಸಲಾಗುತ್ತದೆ.

Fn ಅನ್ನು ಆಧರಿಸಿ ನಮ್ಮದೇ ಆದ ಸರ್ವರ್‌ಲೆಸ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು
Fn ನಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ಪೂರೈಸುವ ತತ್ವ

ಸರ್ವರ್‌ಲೆಸ್ ಕಾರ್ಯಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಸ್ಥಾಪಿಸುವುದು ಮತ್ತು ಪರೀಕ್ಷಿಸುವುದು

ಸ್ಥಳೀಯ ಯಂತ್ರದಲ್ಲಿ Fn ಅನ್ನು ಸ್ಥಾಪಿಸುವುದರೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸೋಣ. ಮೊದಲು, Fn ಗೆ ಅಗತ್ಯವಿರುವಂತೆ ನಾವು ಡಾಕರ್ ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇವೆ. ಇದು ನಾವು ಆನ್ ಆಗಿದ್ದೇವೆ ಎಂದು ಊಹಿಸುತ್ತದೆ Debian/Ubuntu:

$ sudo apt-get update
$ sudo apt-get install docker.io

ಅಥವಾ ನಿಮ್ಮ ಸಿಸ್ಟಂಗೆ ಅನುಗುಣವಾಗಿ ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್/ಡಾಕರ್ ಬಿಲ್ಡ್ ಬಳಸಿ. ನಂತರ ನೀವು ನೇರವಾಗಿ Fn CLI ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಹೋಗಬಹುದು. ಉದಾಹರಣೆಗೆ, ಕರ್ಲ್ ಬಳಸಿ:

$ curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh

ನೀವು ಹೋಂಬ್ರೂ ಸ್ಥಾಪಿಸಿದ OSX ಅನ್ನು ಚಲಾಯಿಸುತ್ತಿದ್ದರೆ, ನೀವು ಬೇರೆ ಮಾರ್ಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು:

$ brew install fn

==> Downloading https://homebrew.bintray.com/bottles/fn-0.5.8.high_sierra.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/b1/b1767fb00e2e69fd9da73427d0926b1d1d0003622f7ddc0dd3a899b2894781ff?__gda__=exp=1538038849~hmac=c702c9335e7785fcbacad1f29afa61244d02f2eebb
######################################################################## 100.0%
==> Pouring fn-0.5.8.high_sierra.bottle.tar.gz
  /usr/local/Cellar/fn/0.5.8: 5 files, 16.7MB

ಈಗ ನಾವು CLI ಬಳಸಿ ನಮ್ಮ ಕಾರ್ಯವನ್ನು ನಿಯೋಜಿಸಲು ಸಿದ್ಧರಿದ್ದೇವೆ. ಸರಳತೆಗಾಗಿ, ನಾವು ನೋಡ್‌ನಂತಹ ಅಂತರ್ನಿರ್ಮಿತ ರನ್‌ಟೈಮ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ:

$ fn init --runtime node --trigger http hellonode

Creating function at: /hellonode
Function boilerplate generated.
func.yaml created.

ಹೊಸ ಡೈರೆಕ್ಟರಿಯನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. hellonode ಕೆಲವು ಮೂಲಭೂತ ಸಂರಚನಾ ಫೈಲ್‌ಗಳೊಂದಿಗೆ ನಮ್ಮ Fn ಕಾರ್ಯವನ್ನು ಮತ್ತಷ್ಟು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು. ಹೊಸದಾಗಿ ರಚಿಸಲಾದ ಡೈರೆಕ್ಟರಿಯ ಒಳಗೆ, ನೀವು ಆಯ್ಕೆ ಮಾಡಿದ ಭಾಷೆ ಅಥವಾ ರನ್‌ಟೈಮ್‌ನ ಮಾನದಂಡಗಳನ್ನು ಅನುಸರಿಸಿ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರಚಿಸಬಹುದು:

# Каталог с node выглядит так:

   hellonode
   ├── func.js
   ├── func.yaml
   └── package.json

# Свежеустановленное окружение Java11 такое:

   hellojava11
   ├── func.yaml
   ├── pom.xml
   └── src
       ├── main
       │   └── java
       │       └── com
       │           └── example
       │               └── fn
       │                   └── HelloFunction.java
       └── test
           └── java
               └── com
                   └── example
                       └── fn
                           └── HelloFunctionTest.java

Fn ಆರಂಭಿಕ ಯೋಜನೆಯ ರಚನೆಯನ್ನು ರಚಿಸುತ್ತದೆ, ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ func.yaml, ಇದು Fn ಗೆ ಅಗತ್ಯವಾದ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಮತ್ತು ನೀವು ಆಯ್ಕೆ ಮಾಡಿದ ಭಾಷೆಯಲ್ಲಿ ಕೋಡ್‌ಗಾಗಿ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ.

ನೋಡ್ ರನ್‌ಟೈಮ್‌ನ ಸಂದರ್ಭದಲ್ಲಿ, ಇದರರ್ಥ:

$ cat hellonode/func.js

const fdk=require('@fnproject/fdk');

fdk.handle(function(input){
  let name = 'World';
  if (input.name) {
    name = input.name;
  }
  return {'message': 'Hello ' + name}
})

ಈಗ ಎಲ್ಲವೂ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ನೋಡಲು ನಾವು ನಮ್ಮ ಕಾರ್ಯವನ್ನು ಸ್ಥಳೀಯವಾಗಿ ತ್ವರಿತವಾಗಿ ಪರೀಕ್ಷಿಸುತ್ತೇವೆ.

ಮೊದಲು, ನಾವು Fn ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ. ಹೇಳಿದಂತೆ, Fn ಸರ್ವರ್ ಒಂದು ಡಾಕರ್ ಕಂಟೇನರ್ ಆಗಿದೆ, ಆದ್ದರಿಂದ ಪ್ರಾರಂಭಿಸಿದ ನಂತರ ಅದು ಹೋಗಿ ಡಾಕರ್ ರಿಜಿಸ್ಟ್ರಿಯಿಂದ ಚಿತ್ರವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.

$ fn start -d                    # запускаем локальный сервер в фоне

Unable to find image 'fnproject/fnserver:latest' locally
latest: Pulling from fnproject/fnserver
ff3a5c916c92: Pull complete
1a649ea86bca: Pull complete
ce35f4d5f86a: Pull complete

...

Status: Downloaded newer image for fnproject/fnserver:latest
668ce9ac0ed8d7cd59da49228bda62464e01bff2c0c60079542d24ac6070f8e5

ನಮ್ಮ ಕಾರ್ಯವನ್ನು ಪ್ರಾರಂಭಿಸಲು, ನಾವು ಅದನ್ನು "ರೋಲ್ ಔಟ್" ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಇದಕ್ಕೆ ಅಗತ್ಯವಿದೆ имя приложения: Fn ನಲ್ಲಿ, ಎಲ್ಲಾ ಅನ್ವಯಿಕೆಗಳನ್ನು ಸಂಬಂಧಿತ ಕಾರ್ಯಗಳಿಗಾಗಿ ನಾಮಸ್ಥಳಗಳಾಗಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು.

Fn CLI ಫೈಲ್ ಅನ್ನು ಹುಡುಕುತ್ತದೆ func.yaml ಪ್ರಸ್ತುತ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ, ಇದನ್ನು ಕಾರ್ಯವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಬಳಸಲಾಗುತ್ತದೆ. ಆದ್ದರಿಂದ ಮೊದಲು ನಾವು ನಮ್ಮ ಡೈರೆಕ್ಟರಿಗೆ ಹೋಗಬೇಕು hellonode.

$ cd hellonode
$ fn deploy --app fnexo --local  # выкатываем функцию локально, имя приложения - fnexo.
                                 # параметр local не заливает образ в удаленный реестр,
                                 # запуская его напрямую

Deploying hellonode to app: fnexo
Bumped to version 0.0.2
Building image nfrankel/hellonode:0.0.3 .
Updating function hellonode using image nfrankel/hellonode:0.0.3...
Successfully created app:  fnexo
Successfully created function: hellonode with nfrankel/hellonode:0.0.3
Successfully created trigger: hellonode-trigger

ಆಜ್ಞೆಯ ಔಟ್‌ಪುಟ್‌ನಿಂದ ನೀವು ನೋಡಬಹುದಾದಂತೆ, ನಮ್ಮ ಕಾರ್ಯವನ್ನು ಹೊಂದಿರುವ ಹೊಸ ಡಾಕರ್ ಕಂಟೇನರ್ ಇಮೇಜ್ ಅನ್ನು ರಚಿಸಲಾಗಿದೆ. ಕಾರ್ಯವನ್ನು ಕರೆಯಲು ಸಿದ್ಧವಾಗಿದೆ, ಮತ್ತು ಇದನ್ನು ಮಾಡಲು ನಮಗೆ ಎರಡು ಮಾರ್ಗಗಳಿವೆ:

  • fn ಆಜ್ಞೆಯನ್ನು ಬಳಸುವುದು invoke
  • ನೇರವಾಗಿ ಕರೆ ಮಾಡಲಾಗುತ್ತಿದೆ http

ಸವಾಲು invoke Fn ಮೂಲಕ ಪರೀಕ್ಷೆಗಳಿಗೆ HTTP ಮೂಲಕ ಕೆಲಸವನ್ನು ಅನುಕರಿಸುತ್ತದೆ, ಇದು ತ್ವರಿತ ಪರಿಶೀಲನೆಗೆ ಅನುಕೂಲಕರವಾಗಿದೆ:

$ fn invoke fnexo hellonode      # вызываем функцию hellonode приложения fnexo

{"message":"Hello World"}

ಕಾರ್ಯವನ್ನು ನೇರವಾಗಿ ಕರೆಯಲು, ನೀವು ಪೂರ್ಣ URL ಅನ್ನು ತಿಳಿದುಕೊಳ್ಳಬೇಕು:

$ curl http://localhost:8080/t/fnexo/hellonode-trigger

{"message":"Hello World"}

Fn ಸರ್ವರ್ ತನ್ನ ಕಾರ್ಯಗಳನ್ನು ಪೋರ್ಟ್ 8080 ನಲ್ಲಿ ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ ಮತ್ತು ಕಾರ್ಯ URL ಸ್ಕೀಮ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುವಂತೆ ಕಾಣುತ್ತದೆ. t/app/function, ಆದರೆ ಸಂಪೂರ್ಣವಾಗಿ ಅಲ್ಲ. HTTP ಮೂಲಕ, ಕಾರ್ಯವನ್ನು ನೇರವಾಗಿ ಕರೆಯಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಟ್ರಿಗ್ಗರ್ ಎಂದು ಕರೆಯಲ್ಪಡುವ ಮೂಲಕ ಕರೆಯಲ್ಪಡುತ್ತದೆ, ಅದು ಅದರ ಹೆಸರೇ ಸೂಚಿಸುವಂತೆ, ಕಾರ್ಯ ಕರೆಯನ್ನು "ಪ್ರಾರಂಭಿಸುತ್ತದೆ". ಟ್ರಿಗ್ಗರ್‌ಗಳನ್ನು ಇದರಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ `func.yml ಯೋಜನೆ:

schema_version: 20180708
name: hellonode
version: 0.0.3
runtime: node
entrypoint: node func.js
format: json
triggers:
- name: hellonode-trigger
  type: http
  source: /hellonode-trigger    # URL триггера

ಕಾರ್ಯದ ಹೆಸರಿಗೆ ಹೊಂದಿಕೆಯಾಗುವಂತೆ ನಾವು ಟ್ರಿಗ್ಗರ್ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಬಹುದು, ಇದು ವಿಷಯಗಳನ್ನು ಸುಲಭಗೊಳಿಸುತ್ತದೆ:

triggers:
- name: hellonode-trigger
  type: http
  source: /hellonode    # совпадает с именем функции

ನಂತರ ನಾವು ಫಂಕ್ಷನ್ ಡೆಲಿವರಿಯನ್ನು ಮತ್ತೆ ರನ್ ಮಾಡುತ್ತೇವೆ ಮತ್ತು ಅದನ್ನು ಹೊಸ ಟ್ರಿಗ್ಗರ್‌ನಿಂದ ಕರೆಯುತ್ತೇವೆ:

$ fn deploy --app fnexo hellonode --local
$ curl http://localhost:8080/t/fnexo/hellonode

{"message":"Hello World"}

ಎಲ್ಲವೂ ಕೆಲಸ ಮಾಡುತ್ತದೆ! ನಿಜ ಜೀವನದ ಪ್ರಯೋಗಗಳಿಗೆ ತೆರಳಿ ನಮ್ಮ FaaS ಅನ್ನು ಸರ್ವರ್‌ನಲ್ಲಿ ಪ್ರಕಟಿಸುವ ಸಮಯ!

ನಿಮ್ಮ ಸ್ವಂತ ಮೂಲಸೌಕರ್ಯದಲ್ಲಿ ಸರ್ವರ್‌ಲೆಸ್ ಕಾರ್ಯ ಸೇವೆಗಳನ್ನು ಸ್ಥಾಪಿಸುವುದು

ಎಕ್ಸೋಸ್ಕೇಲ್ CLI ಬಳಸಿ ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ತ್ವರಿತವಾಗಿ ಹೊಂದಿಸೋಣ. ನೀವು ಇನ್ನೂ ಅದನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, ನೀವು ಬಳಸಬಹುದು ನಮ್ಮ ತ್ವರಿತ ಆರಂಭ ಮಾರ್ಗದರ್ಶಿ. ಇದು ನಿಮ್ಮ ಉತ್ಪಾದಕತೆಯನ್ನು ಮತ್ತಷ್ಟು ಹೆಚ್ಚಿಸುವ ತಂಪಾದ ಸಾಧನವಾಗಿದೆ. ಸೆಕ್ಯುರಿಟಿ ಗ್ರೂಪ್‌ನಲ್ಲಿ ಪೋರ್ಟ್ 8080 ಅನ್ನು ತೆರೆಯಲು ನಿಯಮವನ್ನು ಹೊಂದಿಸಲು ಮರೆಯಬೇಡಿ! ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಗಳು ನಮ್ಮ ಕಾರ್ಯಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡಲು ಸಿದ್ಧವಾಗಿರುವ ಕ್ಲೀನ್ ವರ್ಚುವಲ್ ಯಂತ್ರವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತವೆ:

$ exo firewall create fn-securitygroup
$ exo firewall add fn-securitygroup ssh --my-ip
$ exo firewall add fn-securitygroup -p tcp -P 8080-8080 -c 0.0.0.0/0
$ exo vm create fn-server -s fn-securitygroup

ನಂತರ ನೀವು ssh ಮೂಲಕ ವರ್ಚುವಲ್ ಯಂತ್ರಕ್ಕೆ ಲಾಗಿನ್ ಆಗಬಹುದು ಮತ್ತು ರಿಮೋಟ್ Fn ಸರ್ವರ್ ಅನ್ನು ಸ್ಥಾಪಿಸಬಹುದು:

$ exo ssh fn-server

The authenticity of host '185.19.30.175 (185.19.30.175)' can't be established.
ECDSA key fingerprint is SHA256:uaCKRYeX4cvim+Gr8StdPvIQ7eQgPuOKdnj5WI3gI9Q.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '185.19.30.175' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64)

ನಂತರ ನಾವು ಸ್ಥಳೀಯ ಯಂತ್ರದಲ್ಲಿ ಮಾಡಿದ ರೀತಿಯಲ್ಲಿಯೇ ಡಾಕರ್ ಮತ್ತು ಎಫ್ಎನ್ ಸರ್ವರ್ ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇವೆ ಮತ್ತು ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ:

$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo systemctl start docker
$ curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
$ sudo fn start

...

    ______
   / ____/___
  / /_  / __ 
 / __/ / / / /
/_/   /_/ /_/
    v0.3.643

Fn ಕಾರ್ಯಗಳನ್ನು ಸ್ವೀಕರಿಸಲು ಸಿದ್ಧವಾಗಿದೆ! ರಿಮೋಟ್ ಸರ್ವರ್‌ಗೆ ಕಾರ್ಯಗಳ ಗುರಿ ವರ್ಗಾವಣೆಗಾಗಿ, ನಾವು ಆಜ್ಞೆಯನ್ನು ಬಳಸುತ್ತೇವೆ deploy ಸ್ಥಳೀಯ ಕಂಪ್ಯೂಟರ್‌ನಿಂದ, ಧ್ವಜವನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ --local.

ಇದರ ಜೊತೆಗೆ, Fn ಸರ್ವರ್ ಮತ್ತು ಡಾಕರ್ ರಿಜಿಸ್ಟ್ರಿಯ ಸ್ಥಳವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು Fn ನಿಮ್ಮನ್ನು ಕೇಳುತ್ತದೆ. ಈ ನಿಯತಾಂಕಗಳನ್ನು ಪರಿಸರ ವೇರಿಯೇಬಲ್‌ಗಳ ಮೂಲಕ ಹೊಂದಿಸಬಹುದು. FN_API_URL и FN_REGISTRY ಕ್ರಮವಾಗಿ, ಆದರೆ ನಿಯೋಜನಾ ಸಂರಚನೆಗಳ ರಚನೆ ಮತ್ತು ನಿರ್ವಹಣೆಯನ್ನು ಸುಲಭವಾಗಿ ನಿರ್ವಹಿಸಲು ಹೆಚ್ಚು ಅನುಕೂಲಕರ ಮಾರ್ಗವನ್ನು ನೀಡುತ್ತದೆ.

Fn ಪರಿಭಾಷೆಯಲ್ಲಿ, ನಿಯೋಜನಾ ಸಂರಚನೆಯನ್ನು ಹೀಗೆ ಕರೆಯಲಾಗುತ್ತದೆ contextಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯು ಒಂದು ಸಂದರ್ಭವನ್ನು ರಚಿಸುತ್ತದೆ:

$ fn create context exoscale --provider default --api-url http://185.19.30.175:8080 --registry nfrankel

ನೀವು ಲಭ್ಯವಿರುವ ಸಂದರ್ಭಗಳನ್ನು ಈ ರೀತಿ ವೀಕ್ಷಿಸಬಹುದು:

$ fn list contexts

CURRENT NAME      PROVIDER      API URL                      REGISTRY
    default       default       http://localhost:8080/
    exoscale      default       http://185.19.30.175:8080    nfrankel

ಮತ್ತು ಈ ರೀತಿ ರಚಿಸಲಾದ ಸಂದರ್ಭಕ್ಕೆ ಬದಲಿಸಿ:

 $ fn use context exoscale

 Now using context: exoscale

ಇಲ್ಲಿಂದ ಮುಂದೆ, Fn ಕಾರ್ಯ ವಿತರಣೆಯು ಡಾಕರ್‌ಹಬ್‌ನಲ್ಲಿ ಆಯ್ಕೆಮಾಡಿದ ಖಾತೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಡಾಕರ್ ಚಿತ್ರಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ (ನನ್ನ ಸಂದರ್ಭದಲ್ಲಿ, nfrankel), ತದನಂತರ ರಿಮೋಟ್ ಸರ್ವರ್‌ಗೆ ಸೂಚಿಸಿ (ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, http://185.19.30.175:8080) ನಿಮ್ಮ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಹೊಂದಿರುವ ಇತ್ತೀಚಿನ ಚಿತ್ರದ ಸ್ಥಳ ಮತ್ತು ಆವೃತ್ತಿಯ ಬಗ್ಗೆ.

$ fn deploy --app fnexo .   # выполняется на локальной машине из каталога hellonode

Deploying function at: /.
Deploying hellonode to app: fnexo
Bumped to version 0.0.5
Building image nfrankel/hellonode:0.0.5 .

ಅಂತಿಮವಾಗಿ:

$ curl http://185.19.30.175:8080/t/fnexo/hellonode

{"message":"Hello World"}

Fn ಅನ್ನು ಆಧರಿಸಿ ನಮ್ಮದೇ ಆದ ಸರ್ವರ್‌ಲೆಸ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು
Fn ಆಧಾರಿತ ಸರ್ವರ್‌ಲೆಸ್ ಕಂಪ್ಯೂಟಿಂಗ್‌ನಲ್ಲಿ ಕಾರ್ಯ ಜೀವನಚಕ್ರ

ಆನ್-ಪ್ರಿಮೈಸ್ ಸರ್ವರ್‌ಲೆಸ್ ಕಂಪ್ಯೂಟಿಂಗ್‌ನ ಪ್ರಯೋಜನಗಳು

ಸರ್ವರ್‌ಲೆಸ್ ಕಂಪ್ಯೂಟಿಂಗ್ ಎನ್ನುವುದು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಅಥವಾ ಮೈಕ್ರೋಸರ್ವೀಸ್‌ಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವ ಅಪ್ಲಿಕೇಶನ್‌ನ ಸ್ವತಂತ್ರ ಭಾಗಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅನುಕೂಲಕರ ಪರಿಹಾರವಾಗಿದೆ.

ಇದು ಹೆಚ್ಚಾಗಿ ಆಯ್ಕೆಮಾಡಿದ ಪೂರೈಕೆದಾರರನ್ನು ಲಾಕ್ ಮಾಡುವ ಗುಪ್ತ ವೆಚ್ಚದಿಂದಾಗಿ, ನಿರ್ದಿಷ್ಟ ಬಳಕೆಯ ಸಂದರ್ಭ ಮತ್ತು ಪರಿಮಾಣವನ್ನು ಅವಲಂಬಿಸಿ, ಭವಿಷ್ಯದಲ್ಲಿ ಹೆಚ್ಚಿನ ವೆಚ್ಚಗಳು ಮತ್ತು ಕಡಿಮೆ ನಮ್ಯತೆಗೆ ಕಾರಣವಾಗಬಹುದು.

ಈ ಸಂದರ್ಭದಲ್ಲಿ ಮಲ್ಟಿ-ಕ್ಲೌಡ್ ಮತ್ತು ಹೈಬ್ರಿಡ್ ಕ್ಲೌಡ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳು ಸಹ ಬಳಲುತ್ತವೆ, ಏಕೆಂದರೆ ನೀವು ಸರ್ವರ್‌ಲೆಸ್ ಕಂಪ್ಯೂಟಿಂಗ್ ಅನ್ನು ಬಳಸಲು ಬಯಸುವ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ ನಿಮ್ಮನ್ನು ಸುಲಭವಾಗಿ ಕಂಡುಕೊಳ್ಳಬಹುದು, ಆದರೆ ಕಾರ್ಪೊರೇಟ್ ನೀತಿಗಳಿಂದಾಗಿ ಅದು ಸಾಧ್ಯವಾಗದಿರಬಹುದು.

Fn ಜೊತೆ ಕೆಲಸ ಮಾಡುವುದು ತುಂಬಾ ಸುಲಭ, ಕಡಿಮೆ ಓವರ್ಹೆಡ್‌ನೊಂದಿಗೆ FaaS ನಂತೆಯೇ ಬಹುತೇಕ ಅದೇ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸಬಹುದು. ಇದು ಯಾವುದೇ ಮಾರಾಟಗಾರರ ಲಾಕ್-ಇನ್ ಅನ್ನು ನಿವಾರಿಸುತ್ತದೆ, ನೀವು ಅದನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಅಥವಾ ನಿಮ್ಮ ಆಯ್ಕೆಯ ಯಾವುದೇ ಅನುಕೂಲಕರ ಕ್ಲೌಡ್ ಪೂರೈಕೆದಾರರಲ್ಲಿ ಸ್ಥಾಪಿಸಬಹುದು. ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡುವಲ್ಲಿಯೂ ಸ್ವಾತಂತ್ರ್ಯವಿದೆ.

ಈ ಲೇಖನವು Fn ನ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಮಾತ್ರ ಒಳಗೊಂಡಿದೆ, ಆದರೆ ನಿಮ್ಮ ಸ್ವಂತ ರನ್‌ಟೈಮ್ ಅನ್ನು ರಚಿಸುವುದು ಸಾಕಷ್ಟು ಸರಳವಾಗಿದೆ ಮತ್ತು Fn ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಅನ್ನು ಬಳಸುವ ಮೂಲಕ ಅಥವಾ ರಕ್ಷಣೆಗಾಗಿ ಪ್ರಾಕ್ಸಿಯ ಹಿಂದೆ Fn ಅನ್ನು ಇರಿಸುವ ಮೂಲಕ ಒಟ್ಟಾರೆ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಮತ್ತಷ್ಟು ಹೆಚ್ಚಿಸಬಹುದು.

ಮೂಲ: www.habr.com

DDoS ರಕ್ಷಣೆ, VPS VDS ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ಸೈಟ್‌ಗಳಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ಹೋಸ್ಟಿಂಗ್ ಅನ್ನು ಖರೀದಿಸಿ 🔥 DDoS ರಕ್ಷಣೆ, VPS VDS ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ವೆಬ್‌ಸೈಟ್ ಹೋಸ್ಟಿಂಗ್ ಅನ್ನು ಖರೀದಿಸಿ | ProHoster