Fury Road: The Billing Developer's Journey

ืœืžื ื”ืœ ืฉืœ ื—ื‘ืจืช ืคื™ืชื•ื— ื—ื™ื•ื‘ ื™ืฉ ืฉืชื™ ื“ืจื›ื™ื ืœื‘ื ื•ืช ืฆื•ื•ืช. ื”ืจืืฉื•ื ื” ื”ื™ื ืœื’ื™ื™ืก "ืงืฉื™ืฉื™ื" ืžื•ื›ื ื™ื ื•ืœื™ืฆื•ืจ ื‘ืื•ืคืŸ ืจืฆื™ืฃ ืชื ืื™ ืขื‘ื•ื“ื” ื›ืืœื” ื›ื“ื™ ืฉื™ื ืฆืœื• ืืช ื›ื™ืฉื•ืจื™ื”ื ื•ื ื™ืกื™ื•ื ื ื‘ืฆื•ืจื” ื”ืžืงืกื™ืžืœื™ืช, ื™ืชืคืชื—ื• ื•ื‘ื• ื–ืžื ื™ืช ืœื ื™ื›ื ืกื• ืœืžืจื™ื‘ื•ืช. ื”ืฉื ื™ ื”ื•ื ืœื™ืฆื•ืจ ืฆื•ื•ืช ืžืฉื™ืœื•ื‘ ืฉืœ ืขื•ืœื™ื ื—ื“ืฉื™ื, ื‘ื™ื ื•ื ื™ื™ื ื•ืžืงืฆื•ืขื ื™ื, ื›ืš ืฉื”ื ืžืชืงืฉืจื™ื, ื™ืฉืคื™ืขื• ื–ื” ืขืœ ื–ื”, ื™ืœืžื“ื• ื•ื™ืฆืžื—ื• ื‘ืชื•ืš ื”ื—ื‘ืจื”. ืื ื™ ื ื’ื“ ืžืขื’ืœ ื”ืงืกืžื™ื ื-ืœื” "ืื™ืŸ ื ื™ืกื™ื•ืŸ - ืื™ืŸ ืขื‘ื•ื“ื” - ืื™ืŸ ื ื™ืกื™ื•ืŸ" ื•ืื ื™ ืœื ืจื•ืื” ื‘ืขื™ื” ื‘ื’ื™ื•ืก ืžืคืชื— ืžืชื—ื™ืœ. ืœ-Forward Telecom ื™ืฉ ื›ื‘ืจ ื–ืžืŸ ืจื‘ ืชื•ื›ื ื™ืช ื”ืชืžื—ื•ืช, ืฉื”ืคื›ื” ืœืงืจืฉ ืงืคื™ืฆื” ืœืงืจื™ื™ืจื” ืขื‘ื•ืจ ืขื•ื‘ื“ื™ื ืจื‘ื™ื ื‘ื”ื•ื•ื”.

ืขื›ืฉื™ื• ืื ื™ ืื’ื™ื“ ืœืš ืื™ืš ืื ื™ ืจื•ืื” ืืช ื ืชื™ื‘ ื”ืคื™ืชื•ื— ืฉืœ ืžืคืชื— ื—ื™ื•ื‘, ื•ื‘ืื™ื–ื” ืจืฆืฃ ืืชื” ืฆืจื™ืš ืœืฉืœื•ื˜ ื‘ืžื™ื•ืžื ื•ื™ื•ืช ืžืงืฆื•ืขื™ื•ืช.

1. ืœืžื“ ืฉืคืช ืชื›ื ื•ืช

ื‘ืชื•ืจ ื”ืชื—ืœื”, ื›ืœ ืื—ื“. ื”ืขื“ื™ืคื•ืช ื”ื™ื Java, Python ื•-JavaScript, ืื‘ืœ Ruby, Go, C, C++ ืžืชืื™ืžื™ื ืœืจื›ื™ืฉืช ื™ื“ืข ื‘ืกื™ืกื™. ืื™ืš ืœืœืžื“? ืงื— ืงื•ืจืกื™ื ื‘ืชืฉืœื•ื ื•ื—ื™ื ืžื™ื™ื; ืื ื™ ื™ื›ื•ืœ ืœื”ืžืœื™ืฅ โ€‹โ€‹ืขืœ ื”ื›ืฉืจื” ืžื’ื•ืœื ื’. ืื ืจืžืช ื”ืื ื’ืœื™ืช ืฉืœืš ืžืืคืฉืจืช, ืฆืคื™ื™ื” ื‘ืกืจื˜ื•ื ื™ื ื–ืจื™ื ื”ื™ื ืžื™ื•ืžื ื•ืช ื ื•ืกืคืช ื˜ื•ื‘ื”.

Fury Road: The Billing Developer's Journey

2. ื”ื‘ืŸ ืืช ืžื•ืฉื’ื™ ืžืขืจื›ืช ื”ื”ืคืขืœื”

ืžืขืจื›ื•ืช ื”ื”ืคืขืœื” ืžื‘ื•ืกืกื•ืช ืขืœ ืฉื‘ืขื” ืจื›ื™ื‘ื™ื ืฉืืชื ืฆืจื™ื›ื™ื ืœื”ื›ื™ืจ ื•ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœื”ืกื‘ื™ืจ ืืช ืขืงืจื•ืŸ ื”ืคืขื•ืœื”:

  • ื ื™ื”ื•ืœ ืชื”ืœื™ืš;
  • ืฉืจืฉื•ืจื™ื ื•ืงื•ื“ ืจื‘-ื”ืœื™ื›ื™;
  • Socket (ืžืžืฉืง ืชื•ื›ื ื”);
  • ืฉื™ื’ื•ืจ I/O;
  • ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื”;
  • ืึดื—ืกื•ึผืŸ;
  • ืžืขืจื›ื•ืช ืงื‘ืฆื™ื.

ืื ื™ ืžืžืœื™ืฅ ืœืงื—ืช ืงื•ืจืก ื ื™ื”ื•ืœ ืœื™ื ื•ืงืก ื‘ืกื™ืกื™. ืžืขืจื›ื•ืช ื”ื”ืคืขืœื” ื”ืฉื ื™ื•ืช ื‘ืชื•ืจ ื”ืŸ Windows ื•-Unix.

3. ืชืชืจื’ืœื• ืœื˜ืจืžื™ื ืœ

ื‘ืื ืœื•ื’ื™ื” ืœืคื•ื‘ื™ื” ืžื’ื™ืœื™ื•ืŸ ืจื™ืง, ื™ืฉ ืคื•ื‘ื™ื” ืžืžืกืš ืฉื—ื•ืจ ืจื™ืง ืขื ืกืžืŸ ืžื”ื‘ื”ื‘. ืชืฆื˜ืจืš ืœื”ืชื’ื‘ืจ ืขืœ ื–ื” ื›ื“ื™ ืœืœืžื•ื“ ืื™ืš ืœื›ืชื•ื‘ ืคืงื•ื“ื•ืช ื˜ื•ื‘ื•ืช ื‘ืฉื•ืจืช ื”ืคืงื•ื“ื”.
ื—ื™ื™ื‘ ืœื“ืขืช:

  • ืงื•ื ื›ื™ื•ืช Bash ื•-KornShell;
  • ืคืงื•ื“ื•ืช find, grep, awk, sed, lsof;
  • ืคืงื•ื“ื•ืช ืจืฉืช nslookup ื•-netstat.

Fury Road: The Billing Developer's Journey

4. ืจืฉืช ื•ืื‘ื˜ื—ื”

ื—ื™ื•ื‘ ืงืฉื•ืจ ืงืฉืจ ื”ื“ื•ืง ืœื“ืจื™ืฉื•ืช ื”ื’ื ืช ื”ืจืฉืช ื•ื”ื ืชื•ื ื™ื. ืืชื” ืœื ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืฉื™ืจื•ืชื™ื ืžืงื•ื•ื ื™ื ื‘ืœื™ ืœื”ื‘ื™ืŸ ืื™ืš ื”ืจืฉืช ืขื•ื‘ื“ืช, ืื– ืืชื” ืฆืจื™ืš ืœืœืžื•ื“ ืืช ื”ืžื•ืฉื’ื™ื ื•ื”ืคืจื•ื˜ื•ืงื•ืœื™ื ื”ื‘ืกื™ืกื™ื™ื: DNS, OSI model, HTTP, HTTPS, FTP, SSL, TLS. ืœืื—ืจ ืžื›ืŸ, ื›ืืฉืจ ืชื™ืชืงืœ ื‘ืฉื’ื™ืื” ืฉืœ Connection Refused, ืชื“ืข ืžื” ืœืขืฉื•ืช.

5. ืฉืจืชื™ื

ืœืื—ืจ ืœื™ืžื•ื“ ื”ืขืงืจื•ื ื•ืช ืฉืœ ื”ืขื‘ืจืช ืžื™ื“ืข ื‘ืจืฉืช, ืืชื” ื™ื›ื•ืœ ืœื”ืชื—ื™ืœ ืืช ื”ื™ืกื•ื“ื•ืช ืฉืœ ืชืคืขื•ืœ ื”ืฉืจืช. ื”ืชื—ืœ ืขื ืฉืจืชื™ ืื™ื ื˜ืจื ื˜: IIS, Apache, Nginx, Caddy ื•-Tomcat.

ื‘ื”ืžืฉืš ื”ืจืฉื™ืžื”:

  • ืคืจื•ืงืกื™ ื”ืคื•ืš;
  • ืคืจื•ืงืกื™ ืื ื•ื ื™ืžื™;
  • ืฉืžื™ืจื” ื‘ืžื˜ืžื•ืŸ;
  • ืื™ื–ื•ืŸ ืขื•ืžืกื™ื;
  • ื—ื•ืžืช ืืฉ.

6. ืœืžื“ ืชืฉืชื™ืช ื›ืงื•ื“

ืื ื™ ืžืืžื™ืŸ ืฉื”ืฉืœื‘ ื”ื–ื” ื”ื•ื ืื—ื“ ื”ื—ืฉื•ื‘ื™ื ื‘ื™ื•ืชืจ. ืชืฆื˜ืจืš ืœื”ื‘ื™ืŸ ืฉืœื•ืฉื” ื ื•ืฉืื™ื ืจื—ื‘ื™ื:

  • ืžื›ื•ืœื•ืช: Docker ื•-Kubernetes
  • ื›ืœื™ ื ื™ื”ื•ืœ ืชืฆื•ืจื”: ืื ืกื™ื‘ืœ, ืฉืฃ, ืžืœื— ื•ื‘ื•ื‘ื”
  • ื’ื™ื‘ื•ื™: Terraform, ืขื ื ื™ื.

7. ืœืžื“ CI/CD

ืžื™ื•ืžื ื•ืช ืฉื™ืžื•ืฉื™ืช ื ื•ืกืคืช ืขื‘ื•ืจ ืžืคืชื— ื—ื™ื•ื‘ ื”ื™ื ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœื”ื’ื“ื™ืจ ืฆื™ื ื•ืจ ืœืื™ื ื˜ื’ืจืฆื™ื” ื•ืžืชืžืฉื›ืช. ื‘ืชื—ื•ื ื”-CI/CD ื™ืฉื ื ื›ืœื™ื ื›ืžื• Jenkins, TeamCity, Drone, Circle CI ื•ืื—ืจื™ื. ืกืคื•ื™ืœืจ: ืœื™ืžื•ื“ ื’'ื ืงื™ื ืก ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื™ืกืคื™ืง ื‘ื”ืชื—ืœื”.

8. ื‘ืงืจืช ืชื•ื›ื ื” ื•ืชืฉืชื™ื•ืช

ื”ืžื˜ืจื” ื”ืขื™ืงืจื™ืช ื”ื™ื ืœื”ื‘ื™ืŸ ืืช ื”ื™ืกื•ื“ื•ืช ืฉืœ ื ื™ื˜ื•ืจ ื™ื™ืฉื•ืžื™ื. ื”ื›ืœื™ื ื‘ืชื—ื•ื ื–ื” ืžื—ื•ืœืงื™ื ืœืฉืœื•ืฉ ืงื‘ื•ืฆื•ืช:

  • ื ื™ื˜ื•ืจ ืชืฉืชื™ื•ืช: Nagios, Icinga, Datadog, Zabbix, Monit.
  • ื ื™ื˜ื•ืจ ื‘ื™ืฆื•ืขื™ ืืคืœื™ืงืฆื™ื”: AppDynanic, New Relic.
  • LMS: ELK Stack, Graylog, Splunk, Papertrail.

9. ืฉื™ืจื•ืชื™ ืขื ืŸ

ื‘ืขืชื™ื“ ื”ืงืจื•ื‘, ืœื›ืœ ืืคืœื™ืงืฆื™ื” ืื• ืชื•ื›ื ื” ื™ื”ื™ื” ืžืงื‘ื™ืœ ื‘ืขื ืŸ. ื‘ืžื•ืงื“ื ืื• ื‘ืžืื•ื—ืจ, ืžืคืชื—ื™ื ื ืชืงืœื™ื ื‘ืขื ืŸ, ืื– ืงืจืื• ืขืœ ืกืคืงื™ ืขื ืŸ ืคื•ืคื•ืœืจื™ื™ื (AWS, Google Cloud ื•-Azure) ื•ืืช ื”ื™ืกื•ื“ื•ืช ืฉืœ ื”ื˜ื›ื ื•ืœื•ื’ื™ื”.

10. ืขื‘ื•ื“ื” ืขื ืžืกื“ ื”ื ืชื•ื ื™ื

ื›ืœ ื”ืคืจื•ื™ืงื˜ื™ื ื”ื ื•ื›ื—ื™ื™ื ืžืฉืชืžืฉื™ื ื‘ื‘ืกื™ืกื™ ื ืชื•ื ื™ื, ื•ื ื™ืกื™ื•ืŸ ืขื DBMS ื•- SQL ื™ืงืœ ืขืœ ื”ื”ืชื—ืœื”. ืœืžื“ ืœื›ืชื•ื‘ ืฉืื™ืœืชื•ืช SQL, ื”ืฉืชืžืฉ ื‘ื”ืกื‘ืจ ื•ืœืžื“ ื›ื™ืฆื“ ืคื•ืขืœ ื”ืื™ื ื“ืงืก. ื”ื“ืจืš ื”ืงืœื” ื‘ื™ื•ืชืจ ื”ื™ื ืœืงื—ืช ืงื•ืจืก. ืืชื” ื™ื›ื•ืœ ื’ื ืœืชืจื’ืœ ืืช ื›ื™ืฉื•ืจื™ ื”ืชื™ืขื•ื“ ืฉืœืš ื‘-Postgres ื•ืœืฉื—ืง ื‘ืฉื›ืคื•ืœ.

11. ืฉืคืจ ืืช ื”ื›ื™ืฉื•ืจื™ื ื”ืจื›ื™ื ืฉืœืš

ื ืงื•ื“ื” ื™ื•ืฆืืช ื“ื•ืคืŸ ื‘ืื•ืคืŸ ื‘ืœืชื™ ืฆืคื•ื™, ืืš ืœื ืคื—ื•ืช ื—ืฉื•ื‘ื”. ืžืœื›ืชื—ื™ืœื”, ื”ื™ื• ืกื‘ืœื ื™ื™ื. ืืชื” ืžืชืจื’ืœ ืžื”ืจ ืœืกื™ื˜ื•ืืฆื™ื•ืช ื›ืžื• "ืชืงืŸ ืืช ื”ื‘ืจื–ืœ ืฉืœืš, ืืชื” ืžืชื›ื ืช", ืื‘ืœ ืืชื” ืฆืจื™ืš ืœื”ื™ื•ืช ืžื•ื›ืŸ ื ืคืฉื™ืช ืœืžื•ืขื“ื™ื ืœื”ืฉืงืช ืคืจื•ื™ืงื˜ื™ื ื—ื“ืฉื™ื. ืื ืืชื” ืžืืคืก ืขื“ ืฉื ื” ื‘ืชื›ื ื•ืช ื•ื ื—ืฉื‘ ืœื’'ื•ื ื™ื•ืจ, ื”ืชื›ื•ื ืŸ ืœื‘ื™ืงื•ืจืช ื•ืœืžื“ ืœืงื‘ืœ ืื•ืชื”, ืกืงื™ืจืช ืงื•ื“ ืขืœ ื™ื“ื™ ืžื ื˜ื•ืจ ื”ื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืชื”ืœื™ืš ื›ื•ืื‘. ืื‘ืœ ื™ื—ื“ ืขื ื–ืืช, ืžื™ื•ืžื ื•ืช ื—ื•ื‘ื” ื”ื™ื ื”ื™ื›ื•ืœืช ืœื”ื’ืŸ ืขืœ ื ืงื•ื“ืช ื”ืžื‘ื˜ ืฉืœื• ื•ืœื”ืชื•ื•ื›ื— ื‘ืฆื•ืจื” ื‘ื•ื ื”; ืœืคืขืžื™ื ื”ืืžืช ื ื•ืœื“ืช ื‘ื•ื•ื™ื›ื•ื—. ืžืคืชื—ื™ื ืืฃ ืคืขื ืœื ืžืคืกื™ืงื™ื ืœืœืžื•ื“, ืื™ืŸ ื›ืžืขื˜ ืชืงืจื” ื‘ืžืงืฆื•ืข, ืื– ื™ื›ื•ืœืช ื”ืœืžื™ื“ื” ื•ื”ืจืฆื•ืŸ ืœืœืžื•ื“ ื“ื‘ืจื™ื ื—ื“ืฉื™ื ื”ื ื”ื‘ืกื™ืก ืœื”ืชืคืชื—ื•ืช ืฉืœืš.

Fury Road: The Billing Developer's Journey

ื”ืจื‘ื” ืคืขืžื™ื ืฉื•ืืœื™ื ืื•ืชื™ ืžืชื™ ืžืชื—ื™ืœ ืžื’ื™ืข ืœืจืžืช ื”ื‘ื™ื ื™ื™ื, ื•ืžืชื™ ืืคืฉืจ ืœืงืจื•ื ืœื• ื‘ื’ืื•ื•ื” "ื‘ื›ื™ืจ". ืื ื™ ืžืืžื™ืŸ ืฉืจื’ืข ื”ืžืขื‘ืจ ืžืจืžื” ืœืจืžื” ืื™ื ื• ื ืงื‘ืข ืขืœ ืคื™ ืžืกืคืจ ืฉื ื•ืช ื”ืขื‘ื•ื“ื”, ืื ื›ื™ ื›ื™ืฉื•ืจื™ื ืžืขืฉื™ื™ื ื”ื ืงืจื™ื˜ืจื™ื•ืŸ ืžืจื›ื–ื™. ื‘ื“ื™ื•ืง ืžื™ื•ืžื ื•ื™ื•ืช ืจื›ื•ืช ื”ืŸ ืฉืงื•ื‘ืขื•ืช ืœืจื•ื‘ ืืช ืžื”ื™ืจื•ืช ื”ืฆืžื™ื—ื” ืฉืœ ืžืคืชื—: ืžืชื—ื™ืœ ืžืื•ืžืŸ ื•ื—ืจื•ืฅ ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืงื•ื“ ื‘ืื™ื›ื•ืช ื’ื‘ื•ื”ื” ื‘ืžืกืคืจ ืฉืคื•ืช ื•ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœืขื‘ื•ื“ ื‘ืฆื•ื•ืช ืชื•ืš ืžืกืคืจ ื—ื•ื“ืฉื™ื ื‘ืœื‘ื“. ืžืคืชื— ืขื ื ื™ืกื™ื•ืŸ ืฉืœ 10 ืฉื ื™ื ืขืฉื•ื™ ืฉืœื ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœืคืชื•ืจ ื‘ืขื™ื•ืช ืœื ืกื˜ื ื“ืจื˜ื™ื•ืช, ืœื ื”ืœ ืฆื•ื•ืช ื•ืœื”ื™ื•ืช ื‘ืขืœ ื›ื™ืฉื•ืจื™ื ื—ื“ ืฆื“ื“ื™ื™ื.

ื›ืš ืื ื™ ืจื•ืื” ืืช ื ืชื™ื‘ ื”ืคื™ืชื•ื— ืฉืœ ืžืคืชื— ื—ื™ื•ื‘, ื›ืš ืื ื• ืžื’ื“ืœื™ื ืžื•ืžื—ื™ื ืžื•ืกืžื›ื™ื ื‘ืฆื•ื•ืช Forward Telecom ืฉืœื ื•. ืœื ื ืจืื” ืฉื—ืกืจ ืžืฉื”ื•, ืื‘ืœ ืื ื™ ืชืžื™ื“ ืืกื™ืจ ืชื•ื“ื” ืขืœ ืชื•ืกืคื•ืช ืžื•ืขื™ืœื•ืช ืœืขื ื™ื™ืŸ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”