NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

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

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

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

ื›ื™ืฆื“ ืœื”ืขื‘ื™ืจ ื‘ืงืœื•ืช ื•ืœืœื ืžืืžืฅ ืคืจื•ื™ืงื˜ ืœ-RPM ื‘ืืžืฆืขื•ืช ืœื™ื‘ืช TFS, Puppet, Linux .NET? ื›ื™ืฆื“ ืœืชืžื•ืš ื‘ื’ื™ืจืกืื•ืช ืฉืœ ืžืกื“ ื ืชื•ื ื™ื ืฉืœ ืคืจื•ื™ืงื˜ ืื ืฆื•ื•ืช ื”ืคื™ืชื•ื— ืฉื•ืžืข ืืช ื”ืžื™ืœื™ื Postgres ื•-Flyway ื‘ืคืขื ื”ืจืืฉื•ื ื”, ื•ื”ื“ื“-ืœื™ื™ืŸ ื”ื•ื ืžื—ืจืชื™ื™ื? ื›ื™ืฆื“ ืœื”ืฉืชืœื‘ ืขื Docker? ืื™ืš ืœื”ื ื™ืข ืžืคืชื—ื™ NET ืœื ื˜ื•ืฉ ืืช Windows ื•ื”ืฉื™ื™ืงื™ื ืœื˜ื•ื‘ืช Puppet ื•ืœื™ื ื•ืงืก? ืื™ืš ืœืคืชื•ืจ ืงื•ื ืคืœื™ืงื˜ื™ื ืื™ื“ื™ืื•ืœื•ื’ื™ื™ื ืื ืื™ืŸ ืœื ื”ื›ื•ื—, ืœื ื”ืจืฆื•ืŸ ื•ืœื ื”ืžืฉืื‘ื™ื ืœืชื—ื–ืง ืืช Windows ื‘ื™ื™ืฆื•ืจ? ืขืœ ื–ื”, ื›ืžื• ื’ื ืขืœ Web Deploy, ื‘ื“ื™ืงื•ืช, CI, ืขืœ ืฉื™ื˜ื•ืช ื”ืฉื™ืžื•ืฉ ื‘-TFS ื‘ืคืจื•ื™ืงื˜ื™ื ืงื™ื™ืžื™ื, ื•ื›ืžื•ื‘ืŸ, ืขืœ ืงื‘ื™ื™ื ืฉื‘ื•ืจื™ื ื•ืคืชืจื•ื ื•ืช ืขื‘ื•ื“ื”, ื‘ืชืžืœื™ืœ ื”ื“ื•"ื— ืฉืœ ืืœื›ืกื ื“ืจ.


ืื–, ื•ืืกื™ื” ืขื–ื‘ื”, ื”ืžืฉื™ืžื” ืขืœื™ื™, ื”ืžืคืชื—ื™ื ืžื—ื›ื™ื ื‘ืงื•ืฆืจ ืจื•ื— ืขื ืงืœืฉื•ืŸ. ื›ืฉื”ื‘ื ืชื™ ืœื‘ืกื•ืฃ ืฉืื™ ืืคืฉืจ ืœื”ื—ื–ื™ืจ ืืช ื•ืืกื™ื”, ื ื™ื’ืฉืชื™ ืœืขื ื™ื™ื ื™ื. ืžืœื›ืชื—ื™ืœื” ื”ืขืจื›ืชื™ ืืช ืื—ื•ื– ื”-WMs ื‘ืฆื™ ืฉืœื ื•. ื”ืฆื™ื•ืŸ ืœื ื”ื™ื” ืœื˜ื•ื‘ืช Windows.

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

ืžื›ื™ื•ื•ืŸ ืฉืื ื• ืžืคืชื—ื™ื DevOps ื‘ืื•ืคืŸ ืคืขื™ืœ, ื”ื‘ื ืชื™ ืฉืฆืจื™ืš ืœืฉื ื•ืช ืžืฉื”ื• ื‘ื’ื™ืฉื” ืœืืกืคืงืช ืืคืœื™ืงืฆื™ื” ื—ื“ืฉื”. ื”ื™ื” ืจืง โ€‹โ€‹ืคืชืจื•ืŸ ืื—ื“ - ืื ืืคืฉืจ, ื”ืขื‘ืจ ื”ื›ืœ ืœืœื™ื ื•ืงืก. ื’ื•ื’ืœ ืขื–ืจ ืœื™ - ื‘ืื•ืชื• ื–ืžืŸ .Net ื›ื‘ืจ ื”ื•ืขื‘ืจื” ืœืœื™ื ื•ืงืก, ื•ื”ื‘ื ืชื™ ืฉื–ื” ื”ืคืชืจื•ืŸ!

ืœืžื” ืœื™ื‘ืช .NET ื‘ืฉื™ืœื•ื‘ ืขื ืœื™ื ื•ืงืก?

ื”ื™ื• ืœื›ืš ืžืกืคืจ ืกื™ื‘ื•ืช. ื‘ื™ืŸ "ืœืฉืœื ื›ืกืฃ" ืœ"ืœื ืœืฉืœื", ื”ืจื•ื‘ ื™ื‘ื—ืจ ื‘ืฉื ื™ - ื›ืžื•ื ื™. ืจื™ืฉื™ื•ืŸ ืขื‘ื•ืจ MSDB ืขื•ืœื” ื›-1 ื“ื•ืœืจ; ืื—ื–ืงืช ืฆื™ ืฉืœ ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืฉืœ Windows ืขื•ืœื” ืžืื•ืช ื“ื•ืœืจื™ื. ืขื‘ื•ืจ ื—ื‘ืจื” ื’ื“ื•ืœื” ื–ื• ื”ื•ืฆืื” ื’ื“ื•ืœื”. ื‘ื’ืœืœ ื–ื” ื—ึดืกึธื›ื•ึนืŸ - ืกื™ื‘ื” ืจืืฉื•ื ื”. ืœื ื”ื—ืฉื•ื‘ ื‘ื™ื•ืชืจ, ืื‘ืœ ืื—ื“ ื”ืžืฉืžืขื•ืชื™ื™ื ืฉื‘ื”ื.

ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืฉืœ Windows ืชื•ืคืกื•ืช ื™ื•ืชืจ ืžืฉืื‘ื™ื ืžืื—ื™ื”ื ืœืœื™ื ื•ืงืก - ื”ื ื›ื‘ื“ื™ื. ื‘ื”ืชื—ืฉื‘ ื‘ืงื ื” ื”ืžื™ื“ื” ืฉืœ ื”ื—ื‘ืจื” ื”ื’ื“ื•ืœื”, ื‘ื—ืจื ื• ื‘ืœื™ื ื•ืงืก.

ื”ืžืขืจื›ืช ืคืฉื•ื˜ ืžืฉื•ืœื‘ืช ื‘-CI ืงื™ื™ื. ืื ื• ืจื•ืื™ื ื‘ืขืฆืžื ื• DevOps ืžืชืงื“ืžื™ื, ืื ื• ืžืฉืชืžืฉื™ื ื‘ื‘ืžื‘ื•, Jenkins ื•-GitLab CI, ื›ืš ืฉืจื•ื‘ ื”ืขื‘ื•ื“ื” ืฉืœื ื• ืคื•ืขืœืช ืขืœ ืœื™ื ื•ืงืก.

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

ื“ืจื™ืฉื•ืช

ืงื•ื“ื ื›ืœ - ื”ื ื•ื—ื•ืช ืฉืœ ื”ืคืชืจื•ืŸ ื”ื—ื“ืฉ ืœืžืคืชื—ื™ื. ืœื ื›ื•ืœื ื”ื™ื• ืžื•ื›ื ื™ื ืœืฉื™ื ื•ื™, ื‘ืžื™ื•ื—ื“ ืœืื—ืจ ืฉื ืืžืจื” ื”ืžื™ืœื” ืœื™ื ื•ืงืก. ืžืคืชื—ื™ื ืจื•ืฆื™ื ืืช Visual Studio ื”ืื”ื•ื‘ ืขืœื™ื”ื, TFS ืขื ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ืœืžื›ืœื•ืœื™ื ื•ืฉื™ื™ืงื™ื. ืื•ืคืŸ ื”ื”ื’ืฉื” ืœื™ื™ืฆื•ืจ ืื™ื ื• ื—ืฉื•ื‘ ืœื”ื. ืœื›ืŸ, ื”ื—ืœื˜ื ื• ืœื ืœืฉื ื•ืช ืืช ื”ืชื”ืœื™ืš ื”ืจื’ื™ืœ ื•ืœื”ืฉืื™ืจ ื”ื›ืœ ืœืœื ืฉื™ื ื•ื™ ืœืคื™ืชื•ื— Windows.

ื“ืจื•ืฉ ืคืจื•ื™ืงื˜ ื—ื“ืฉ ืœื”ืฉืชืœื‘ ื‘-CI ืงื™ื™ื. ื”ืžืกื™ืœื•ืช ื›ื‘ืจ ื”ื™ื• ืฉื ื•ื›ืœ ื”ืขื‘ื•ื“ื” ื”ื™ื™ืชื” ืฆืจื™ื›ื” ืœื”ื™ืขืฉื•ืช ืชื•ืš ื”ืชื—ืฉื‘ื•ืช ื‘ืคืจืžื˜ืจื™ื ืฉืœ ืžืขืจื›ืช ื ื™ื”ื•ืœ ื”ืชืฆื•ืจื”, ืชืงื ื™ ืืกืคืงื” โ€‹โ€‹ืžืงื•ื‘ืœื™ื ื•ืžืขืจื›ื•ืช ื ื™ื˜ื•ืจ.

ืงืœื•ืช ืชืžื™ื›ื” ื•ืชืคืขื•ืœ, ื›ืชื ืื™ ืœืกืฃ ื›ื ื™ืกื” ืžื™ื ื™ืžืœื™ ืœื›ืœ ื”ืžืฉืชืชืคื™ื ื”ื—ื“ืฉื™ื ืžื—ื˜ื™ื‘ื•ืช ืฉื•ื ื•ืช ื•ืžืžื—ืœืงืช ื”ืชืžื™ื›ื”.

ื“ื“ืœื™ื™ืŸ - ืืชืžื•ืœ.

Win Group Development

ืขื ืžื” ืฆื•ื•ืช Windows ืขื‘ื“ ืื–?

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

ืขื›ืฉื™ื• ืื ื™ ื™ื›ื•ืœ ืœื”ื’ื™ื“ ืืช ื–ื” ื‘ื‘ื™ื˜ื—ื•ืŸ IdentityServer4 ื”ื•ื ื—ืœื•ืคื” ื—ื™ื ืžื™ืช ืžื’ื ื™ื‘ื” ืœ-ADFS ืขื ื™ื›ื•ืœื•ืช ื“ื•ืžื•ืช, ืื• ืžื” ืœื™ื‘ืช ืžืกื’ืจืช ื”ื™ืฉื•ืช - ื’ืŸ ืขื“ืŸ ืœืžืคืชื—, ืฉื‘ื• ืืชื” ืœื ืฆืจื™ืš ืœื˜ืจื•ื— ื‘ื›ืชื™ื‘ืช ืกืงืจื™ืคื˜ื™ื ืฉืœ SQL, ืืœื ืœืชืืจ ืฉืื™ืœืชื•ืช ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื‘ืžื•ื ื—ื™ OOP. ืื‘ืœ ืื–, ื‘ืžื”ืœืš ื”ื“ื™ื•ืŸ ื‘ืชื•ื›ื ื™ืช ื”ืคืขื•ืœื”, ื”ืกืชื›ืœืชื™ ืขืœ ื”ืขืจื™ืžื” ื”ื–ื• ื›ืื™ืœื• ื”ื™ื ื›ืชื‘ ื™ืชื“ื•ืช ืฉื•ืžืจื™, ื•ื–ื™ื”ื™ืชื™ ืจืง ืืช PostgreSQL ื•-Git.

ื‘ืื•ืชื” ืชืงื•ืคื” ื”ืฉืชืžืฉื ื• ื‘ืื•ืคืŸ ืคืขื™ืœ ื‘ึผื•ึผื‘ึผึธื” ื›ืžืขืจื›ืช ืœื ื™ื”ื•ืœ ืชืฆื•ืจื”. ื‘ืจื•ื‘ ื”ืคืจื•ื™ืงื˜ื™ื ืฉืœื ื• ื”ืฉืชืžืฉื ื• GitLab CI, ืืœืกื˜ื™, ืฉื™ืจื•ืชื™ ืขื•ืžืก ื’ื‘ื•ื” ืžืื•ื–ื ื™ื ื‘ืืžืฆืขื•ืช HAProxy ืคื™ืงื— ืขืœ ื”ื›ืœ ืขื ื–ืื‘ื™ืงืก, ืจืฆื•ืขื•ืช ื’ืจืคื ื” ะธ ืคืจื•ืžืชืื•ืก, ื™ื’ืจ, ื•ื›ืœ ื–ื” ื”ืกืชื•ื‘ื‘ ืขืœ ืคื™ืกื•ืช ื‘ืจื–ืœ HPESXi ืขืœ VMware. ื›ื•ืœื ืžื›ื™ืจื™ื ืืช ื–ื” - ืงืœืืกื™ืงื” ืฉืœ ื”ื–'ืื ืจ.

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

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

ืžื” ืงืจื”

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

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก
ื‘ืขื‘ืจ, ืืœื• ื”ื™ื• ื—ืœื•ื ื•ืช ืžื•ืฆืงื™ื. TFS ื”ืฉืชืžืฉ ื‘ืžืกืคืจ ืกื•ื›ื ื™ Build, ืฉืฉื™ืžืฉื• ืœื”ืจื›ื‘ืช ืคืจื•ื™ืงื˜ื™ื ืจื‘ื™ื. ืœื›ืœ ืกื•ื›ืŸ ื™ืฉ 3-4 ืขื•ื‘ื“ื™ื ืœื”ืงื‘ื™ืœ ืžืฉื™ืžื•ืช ื•ืœื™ื™ืขืœ ืืช ื”ืชื”ืœื™ืš. ืœืื—ืจ ืžื›ืŸ, ืขืœ ืคื™ ืชื•ื›ื ื™ื•ืช ื”ืฉื—ืจื•ืจ, TFS ืกื™ืคืงื” ืืช ื”-Build ื”ื˜ืจื™ ืฉื ืืคื” ืœืฉืจืช ื”ื™ื™ืฉื•ืžื™ื ืฉืœ Windows.

ืžื” ืจืฆื™ื ื• ืœื”ืฉื™ื’?

ืื ื• ืžืฉืชืžืฉื™ื ื‘-TFS ืœืฆื•ืจืš ืืกืคืงื” โ€‹โ€‹ื•ืคื™ืชื•ื—, ื•ืžืคืขื™ืœื™ื ืืช ื”ืืคืœื™ืงืฆื™ื” ืขืœ ืฉืจืช Linux Application, ื•ื™ืฉ ื‘ื™ื ื™ื”ื ืกื•ื’ ืฉืœ ืงืกื. ื–ึถื” ืงื•ืคืกืช ืงืกื ื•ื™ืฉ ืžืœื— ื”ืขื‘ื•ื“ื” ืฉืœืคื ื™ื•. ืœืคื ื™ ืฉืืคืจืง ืื•ืชื•, ืืงื— ืฆืขื“ ื”ืฆื™ื“ื” ื•ืื•ืžืจ ื›ืžื” ืžื™ืœื™ื ืขืœ ื”ืืคืœื™ืงืฆื™ื”.

ืคืจื•ื™ืงื˜

ื”ืืคืœื™ืงืฆื™ื” ืžืกืคืงืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืœื˜ื™ืคื•ืœ ื‘ื›ืจื˜ื™ืกื™ื ืžืฉื•ืœืžื™ื ืžืจืืฉ.

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

ืœืงื•ื—

ื”ื™ื• ืฉื ื™ ืกื•ื’ื™ ืžืฉืชืžืฉื™ื. ืจืืฉื•ืŸ ื”ืฉื™ื’ ื’ื™ืฉื” ืขืœ ื™ื“ื™ ื›ื ื™ืกื” ื‘ืืžืฆืขื•ืช ืื™ืฉื•ืจ SSL SHA-2. U ื”ืฉื ื™ ื”ื™ื™ืชื” ื’ื™ืฉื” ื‘ืืžืฆืขื•ืช ื›ื ื™ืกื” ื•ืกื™ืกืžื”.

HAProxy

ืœืื—ืจ ืžื›ืŸ ื‘ืงืฉืช ื”ืœืงื•ื— ื”ื•ืขื‘ืจื” ืืœ HAProxy, ืืฉืจ ืคืชืจื” ืืช ื”ื‘ืขื™ื•ืช ื”ื‘ืื•ืช:

  • ื”ืจืฉืื” ืจืืฉื™ืช;
  • ืกื™ื•ื SSL;
  • ื›ื•ื•ื ื•ืŸ ื‘ืงืฉื•ืช HTTP;
  • ื‘ืงืฉื•ืช ืฉื™ื“ื•ืจ.

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

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

ืงืฆื” ืื—ื•ืจื™

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

ื—ื™ืกื›ื•ืŸ ืขื HAProxy

ื‘ื ื•ืกืฃ ืœืฉื ื™ ื”ื”ืงืฉืจื™ื ืฉื›ืœ ืœืงื•ื— ื ื™ื•ื•ื˜, ื”ื™ื” ื’ื ื”ืงืฉืจ ื–ื”ื•ืชื™. IdentityServer4 ืจืง ืžืืคืฉืจ ืœืš ืœื”ื™ื›ื ืก, ื–ื”ื• ืื ืœื•ื’ื™ ื—ื™ื ืžื™ ื•ื—ื–ืง ืขื‘ื•ืจ ADFS - Active Directory ืฉื™ืจื•ืชื™ ื”ืคื“ืจืฆื™ื”.

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

ืฉืœื‘ ืฉื ื™ โ€“ ื”ื‘ืงืฉื” ื”ืชืงื‘ืœื” ืœื“ืฃ ื”ื”ืจืฉืื•ืช ื‘-IdentityServer, ื”ื™ื›ืŸ ื”ืœืงื•ื— ื ืจืฉื, ื•ื”ืืกื™ืžื•ืŸ ื”ืžื™ื•ื—ืœ ื”ื–ื” ื”ื•ืคื™ืข ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ IdentityServer.

ืฆืขื“ ืฉืœื™ืฉื™ - ื”ืœืงื•ื— ื”ื•ืคื ื” ื‘ื—ื–ืจื” ืœื”ืงืฉืจ ืฉืžืžื ื• ื–ื” ื”ื’ื™ืข.

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

ืœ-IdentityServer4 ื™ืฉ ืชื›ื•ื ื”: ื”ื•ื ืžื—ื–ื™ืจ ืืช ื”ืชื’ื•ื‘ื” ืœื‘ืงืฉืช ื”ื”ื—ื–ืจื” ื‘ืืžืฆืขื•ืช HTTP. ืœื ืžืฉื ื” ื›ืžื” ื ืื‘ืงื ื• ื‘ื”ืงืžืช ื”ืฉืจืช, ืœื ืžืฉื ื” ื›ืžื” ื”ืืจื ื• ืืช ืขืฆืžื ื• ืขื ื”ืชื™ืขื•ื“, ื‘ื›ืœ ืคืขื ืงื™ื‘ืœื ื• ื‘ืงืฉื” ืจืืฉื•ื ื™ืช ืฉืœ ืœืงื•ื— ืขื ื›ืชื•ื‘ืช URL ืฉื”ื’ื™ืขื” ื“ืจืš HTTPS, ื•-IdentityServer ื”ื—ื–ื™ืจ ืืช ืื•ืชื• ื”ืงืฉืจ, ืื‘ืœ ืขื HTTP. ื”ื™ื™ื ื• ื‘ื”ืœื! ื•ื”ืขื‘ืจื ื• ืืช ื›ืœ ื–ื” ื“ืจืš ื”ืงืฉืจ ื”ื–ื”ื•ืช ืœ-HAProxy, ื•ื‘ื›ื•ืชืจื•ืช ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœืฉื ื•ืช ืืช ืคืจื•ื˜ื•ืงื•ืœ ื”-HTTP ืœ-HTTPS.

ืžื” ื”ืฉื™ืคื•ืจ ื•ืื™ืคื” ื—ืกื›ืช?

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

ืื™ืš ื–ื” ืืžื•ืจ ืœืขื‘ื•ื“

ืื–, ื›ืžื• ืฉื”ื‘ื˜ื—ืชื™ - Magic Box. ืื ื—ื ื• ื›ื‘ืจ ืžื‘ื™ื ื™ื ืฉืžื•ื‘ื˜ื— ืœื ื• ืœื”ืชืงื“ื ืœื›ื™ื•ื•ืŸ ืœื™ื ื•ืงืก. ื‘ื•ืื• ื ื ืกื— ืžืฉื™ืžื•ืช ืกืคืฆื™ืคื™ื•ืช ืฉื“ืจืฉื• ืคืชืจื•ื ื•ืช.

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

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

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

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

ื”ื’ื“ืจืช TFS ื”ืกืชื›ื ื‘ื”ืงืžืช Pipeline. ื‘ืขื‘ืจ, ืืกืคื ื• ืืช ื›ืœ ืคืจื•ื™ืงื˜ื™ Windows ืขืœ ืกื•ื›ื ื™ Windows, ืืš ื›ืขืช ืžื•ืคื™ืข ืกื•ื›ืŸ ืœื™ื ื•ืงืก - ืกื•ื›ืŸ Build, ืฉืฆืจื™ืš ืœื›ืœื•ืœ ืื•ืชื• ื‘ืงื‘ื•ืฆืช ื”-build, ืœื”ืขืฉื™ืจ ื‘ื›ืžื” ื—ืคืฆื™ื, ื•ืœื•ืžืจ ืื™ื–ื” ืกื•ื’ ืฉืœ ืคืจื•ื™ืงื˜ื™ื ื™ื™ื‘ื ื” ืขืœ ืกื•ื›ืŸ Build ื–ื” , ื•ืื™ื›ืฉื”ื• ืœืฉื ื•ืช ืืช ื”-Pipeline.

IdentityServer. ADFS ื”ื™ื ืœื ื”ื“ืจืš ืฉืœื ื•, ืื ื—ื ื• ื”ื•ืœื›ื™ื ืขืœ ืงื•ื“ ืคืชื•ื—.

ื‘ื•ืื• ื ืขื‘ื•ืจ ืขืœ ื”ืžืจื›ื™ื‘ื™ื.

ืงื•ืคืกืช ืงืกื

ืžื•ืจื›ื‘ ืžืืจื‘ืขื” ื—ืœืงื™ื.

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

ืกื•ื›ืŸ Linux Build. ืœื™ื ื•ืงืก, ื›ื™ ืื ื—ื ื• ื‘ื•ื ื™ื ืœื–ื” - ื–ื” ื”ื’ื™ื•ื ื™. ื—ืœืง ื–ื” ื ืขืฉื” ื‘ืฉืœื•ืฉื” ืฉืœื‘ื™ื.

  • ื”ื’ื“ืจ ืขื•ื‘ื“ื™ื ื•ืœื ืœื‘ื“, ืฉื›ืŸ ื”ื™ื™ืชื” ืฆืคื•ื™ื” ืขื‘ื•ื“ื” ืžื‘ื•ื–ืจืช ืขืœ ื”ืคืจื•ื™ืงื˜.
  • ื”ืชืงืŸ ืืช .NET Core 1.x. ืœืžื” 1.x ื›ืืฉืจ 2.0 ื›ื‘ืจ ื–ืžื™ืŸ ื‘ืžืื’ืจ ื”ืกื˜ื ื“ืจื˜ื™? ื›ื™ ื›ืฉื”ืชื—ืœื ื• ื‘ืคื™ืชื•ื—, ื”ื’ืจืกื” ื”ื™ืฆื™ื‘ื” ื”ื™ื™ืชื” 1.09, ื•ื”ื•ื—ืœื˜ ืœืขืฉื•ืช ืืช ื”ืคืจื•ื™ืงื˜ ืขืœ ื‘ืกื™ืกื”.
  • Git 2.x.

ืžืื’ืจ RPM. ื—ื‘ื™ืœื•ืช RPM ืฆืจื™ื›ื•ืช ืœื”ื™ื•ืช ืžืื•ื—ืกื ื•ืช ืื™ืคืฉื”ื•. ื”ื”ื ื—ื” ื”ื™ื™ืชื” ืฉื ืฉืชืžืฉ ื‘ืื•ืชื• ืžืื’ืจ RPM ืืจื’ื•ื ื™ ืฉื–ืžื™ืŸ ืœื›ืœ ื”ืžืืจื—ื™ื ืฉืœ ืœื™ื ื•ืงืก. ื–ื” ืžื” ืฉื”ื ืขืฉื•. ืฉืจืช ื”ืžืื’ืจ ืžื•ื’ื“ืจ ื•ื•ืง ืจืฉืช ืฉื”ื•ืจื™ื“ ืืช ื—ื‘ื™ืœืช ื”-RPM ื”ื ื“ืจืฉืช ืžื”ืžื™ืงื•ื ืฉืฆื•ื™ืŸ. ื’ืจืกืช ื”ื—ื‘ื™ืœื” ื“ื•ื•ื—ื” ืœ-webhook ืขืœ ื™ื“ื™ ืกื•ื›ืŸ ื”-Build.

GitLab. ืชืฉื•ืžืช ื”ืœื‘! GitLab ื›ืืŸ ืžืฉืžืฉ ืœื ืืช ื”ืžืคืชื—ื™ื, ืืœื ืืช ืžื—ืœืงืช ื”ืชืคืขื•ืœ ื›ื“ื™ ืœืฉืœื•ื˜ ืขืœ ื’ืจืกืื•ืช ืืคืœื™ืงืฆื™ื•ืช, ื’ืจืกืื•ืช ื—ื‘ื™ืœื”, ืœื ื˜ืจ ืืช ื”ืžืฆื‘ ืฉืœ ื›ืœ ืžื›ื•ื ื•ืช ืœื™ื ื•ืงืก, ื•ื”ื™ื ืžืื—ืกื ืช ืืช ื”ืžืชื›ื•ืŸ - ื›ืœ ื”ืžื ื™ืคืกื˜ื™ื ืฉืœ Puppet.

ื‘ึผื•ึผื‘ึผึธื” - ืคื•ืชืจ ืืช ื›ืœ ื”ื‘ืขื™ื•ืช ื”ืฉื ื•ื™ื•ืช ื‘ืžื—ืœื•ืงืช ื•ืžืกืคืง ื‘ื“ื™ื•ืง ืืช ื”ืชืฆื•ืจื” ืฉืื ื—ื ื• ืจื•ืฆื™ื ืž-Gitlab.

ืื ื—ื ื• ืžืชื—ื™ืœื™ื ืœืฆืœื•ืœ. ื›ื™ืฆื“ ืคื•ืขืœืช ืžืฉืœื•ื— DLL ืœ-RPM?

ืžืฉืœื•ื— DDL ืœ-RPM

ื ื ื™ื— ืฉื™ืฉ ืœื ื• ื›ื•ื›ื‘ ืจื•ืง ืœืคื™ืชื•ื— NET. ื”ื•ื ืžืฉืชืžืฉ ื‘-Visual Studio ื•ื™ื•ืฆืจ ืขื ืฃ ืฉื—ืจื•ืจ. ืœืื—ืจ ืžื›ืŸ, ื”ื•ื ืžืขืœื” ืื•ืชื• ืœ-Git, ื•-Git ื›ืืŸ ื”ื•ื ื™ืฉื•ืช TFS, ื›ืœื•ืžืจ, ื–ื” ืžืื’ืจ ื”ืืคืœื™ืงืฆื™ื•ืช ืฉืื™ืชื• ืขื•ื‘ื“ ื”ืžืคืชื—.

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

ืœืื—ืจ ืžื›ืŸ TFS ืจื•ืื” ืฉื”ื’ื™ืข commit ื—ื“ืฉ. ืื™ื–ื• ืืคืœื™ืงืฆื™ื”? ื‘ื”ื’ื“ืจื•ืช TFS ื™ืฉ ืชื•ื•ื™ืช ื”ืžืฆื™ื™ื ืช ืื™ืœื• ืžืฉืื‘ื™ื ื™ืฉ ืœืกื•ื›ืŸ Build ืžืกื•ื™ื. ื‘ืžืงืจื” ื–ื”, ื”ื•ื ืจื•ืื” ืฉืื ื—ื ื• ื‘ื•ื ื™ื ืคืจื•ื™ืงื˜ .NET Core ื•ื‘ื•ื—ืจ ืกื•ื›ืŸ Linux Build ืžื”ืžืื’ืจ.

ืกื•ื›ืŸ ื”-Build ืžืงื‘ืœ ืืช ื”ืžืงื•ืจื•ืช ื•ืžื•ืจื™ื“ ืืช ื”ื“ืจื•ืฉ ืชืœื•ืช ืžืžืื’ืจ NET, npm ื•ื›ื•'. ื•ืœืื—ืจ ื‘ื ื™ื™ืช ื”ืืคืœื™ืงืฆื™ื” ืขืฆืžื” ื•ื”ืืจื™ื–ื” ืฉืœืื—ืจ ืžื›ืŸ, ืฉื•ืœื— ืืช ื—ื‘ื™ืœืช ื”-RPM ืœืžืื’ืจ RPM.

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

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

ื”ื›ืœ ืคืฉื•ื˜ ื‘ืžื™ืœื™ื, ืื‘ืœ ืžื” ืงื•ืจื” ื‘ืชื•ืš ืกื•ื›ืŸ ื”-Build ืขืฆืžื•?

ืืจื™ื–ื” DLL RPM

ืงื™ื‘ืœ ืžืงื•ืจื•ืช ืคืจื•ื™ืงื˜ ื•ื‘ื ื™ื™ืช ืžืฉื™ืžื•ืช ืž-TFS. ื‘ื ื” ืกื•ื›ืŸ ืžืชื—ื™ืœ ืœื‘ื ื•ืช ืืช ื”ืคืจื•ื™ืงื˜ ื‘ืขืฆืžื• ืžืžืงื•ืจื•ืช. ื”ืคืจื•ื™ืงื˜ ื”ืžื•ืจื›ื‘ ื–ืžื™ืŸ ื›ืกื˜ ืงื‘ืฆื™ DLL, ืืฉืจ ืืจื•ื–ื™ื ื‘ืืจื›ื™ื•ืŸ zip ื›ื“ื™ ืœื”ืคื—ื™ืช ืืช ื”ืขื•ืžืก ืขืœ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื.

ืืจื›ื™ื•ืŸ ื”-ZIP ื ื–ืจืง ืœืคื— ืœืกืคืจื™ื™ืช ื‘ื ื™ื™ืช ื—ื‘ื™ืœืช RPM. ืœืื—ืจ ืžื›ืŸ, ื”ืกืงืจื™ืคื˜ ืฉืœ Bash ืžืืชื—ืœ ืืช ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื”, ืžื•ืฆื ืืช ื’ืจืกืช ื”-Build, ืืช ื’ืจืกืช ื”ืคืจื•ื™ืงื˜, ืืช ื”ื ืชื™ื‘ ืœืกืคืจื™ื™ืช ื”-build, ื•ืžืจื™ืฅ RPM-build. ืœืื—ืจ ื”ืฉืœืžืช ื”ื‘ื ื™ื™ื”, ื”ื—ื‘ื™ืœื” ืžืชืคืจืกืžืช ื‘- ืžืื’ืจ ืžืงื•ืžื™, ืฉื ืžืฆื ื‘ืกื•ื›ืŸ Build.

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

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

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

ื ื™ื”ื•ืœ ื’ืจืกืื•ืช ืฉืœ ืžืกื“ ื ืชื•ื ื™ื

ื‘ื”ืชื™ื™ืขืฆื•ืช ืขื ืฆื•ื•ืช ื”ืคื™ืชื•ื— ื”ืชื‘ืจืจ ืฉื”ื—ื‘ืจ'ื” ื”ื™ื• ื™ื•ืชืจ ืงืจื•ื‘ื™ื ืœ-MS SQL, ืื‘ืœ ื‘ืจื•ื‘ ื”ืคืจื•ื™ืงื˜ื™ื ืฉืื™ื ื Windows ื›ื‘ืจ ื”ืฉืชืžืฉื ื• ื‘ื›ืœ ื”ื›ื•ื— ื‘-PostgreSQL. ืžื›ื™ื•ื•ืŸ ืฉื›ื‘ืจ ื”ื—ืœื˜ื ื• ืœื ื˜ื•ืฉ ืืช ื›ืœ ืžื” ืฉืฉื•ืœื, ื”ืชื—ืœื ื• ืœื”ืฉืชืžืฉ ื‘-PostgreSQL ื’ื ื›ืืŸ.

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

ื‘ื—ืœืง ื”ื–ื” ืื ื™ ืจื•ืฆื” ืœืกืคืจ ืœื›ื ืื™ืš ื’ืจืกื ื• ืืช ืžืกื“ ื”ื ืชื•ื ื™ื ื•ืื™ืš ื‘ื—ืจื ื• ื‘ื™ืŸ Flyway ืœ-Entity Framework Core. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ื™ืชืจื•ื ื•ืช ื•ื”ื—ืกืจื•ื ื•ืช ืฉืœื”ื.

ื—ืกืจื•ื ื•ืช

ืžืกืœื•ืœ ื”ื˜ื™ืกื” ื”ื•ืœืš ืจืง ื‘ื›ื™ื•ื•ืŸ ืื—ื“, ืื ื—ื ื• ืื ื—ื ื• ืœื ื™ื›ื•ืœื™ื ืœื—ื–ื•ืจ ืื—ื•ืจื” - ื–ื” ื—ื™ืกืจื•ืŸ ืžืฉืžืขื•ืชื™. ืืชื” ื™ื›ื•ืœ ืœื”ืฉื•ื•ืช ืื•ืชื• ืขื Entity Framework Core ื‘ื“ืจื›ื™ื ืื—ืจื•ืช - ืžื‘ื—ื™ื ืช ื ื•ื—ื•ืช ื”ืžืคืชื—ื™ื. ืืชื” ื–ื•ื›ืจ ืฉืฉืžื ื• ืืช ื–ื” ื‘ื—ื–ื™ืช, ื•ื”ืงืจื™ื˜ืจื™ื•ืŸ ื”ืขื™ืงืจื™ ื”ื™ื” ืœื ืœืฉื ื•ืช ืฉื•ื ื“ื‘ืจ ืœืคื™ืชื•ื— Windows.

ืขื‘ื•ืจ Flyway us ื”ื™ื” ืฆื•ืจืš ื‘ืกื•ื’ ืฉืœ ืขื˜ื™ืคื”ื›ื“ื™ ืฉื”ื—ื‘ืจ'ื” ืœื ื™ื›ืชื‘ื• ืฉืื™ืœืชื•ืช SQL. ื”ื ื”ืจื‘ื” ื™ื•ืชืจ ืงืจื•ื‘ื™ื ืœืคืขื•ืœื” ื‘ืžื•ื ื—ื™ OOP. ื›ืชื‘ื ื• ื”ื•ืจืื•ืช ืœืขื‘ื•ื“ื” ืขื ืื•ื‘ื™ื™ืงื˜ื™ ืžืกื“ ื ืชื•ื ื™ื, ื”ืคืงื ื• ืฉืื™ืœืชืช SQL ื•ื”ื•ืฆืื ื• ืื•ืชื” ืœืคื•ืขืœ. ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ืžื•ื›ื ื”, ื‘ื“ื•ืงื” - ื”ื›ืœ ื‘ืกื“ืจ, ื”ื›ืœ ืขื•ื‘ื“.

ืœ-Entity Framework Core ื™ืฉ ืžื™ื ื•ืก - ื‘ืขื•ืžืกื™ื ื›ื‘ื“ื™ื ื‘ื•ื ื” ืฉืื™ืœืชื•ืช SQL ืœื ืื•ืคื˜ื™ืžืœื™ื•ืช, ื•ื”ื™ืจื™ื“ื” ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืžืฉืžืขื•ืชื™ืช. ืื‘ืœ ืžื›ื™ื•ื•ืŸ ืฉืื™ืŸ ืœื ื• ืฉื™ืจื•ืช ืขื•ืžืก ื’ื‘ื•ื”, ืื ื—ื ื• ืœื ืžื—ืฉื‘ื™ื ืืช ื”ืขื•ืžืก ื‘ืžืื•ืช RPS, ืงื™ื‘ืœื ื• ืืช ื”ืกื™ื›ื•ื ื™ื ื”ืœืœื• ื•ื”ืืฆืœื ื• ืืช ื”ื‘ืขื™ื” ืœื ื• ื‘ืขืชื™ื“.

Pros

ืœื™ื‘ืช ืžืกื’ืจืช ื”ื™ืฉื•ืช ืขื•ื‘ื“ ืžื—ื•ืฅ ืœืงื•ืคืกื” ื•ืงืœ ืœืคืชื—, ื•-Flyway ืžืฉืชืœื‘ ื‘ืงืœื•ืช ื‘-CI ืงื™ื™ื. ืื‘ืœ ืื ื—ื ื• ืขื•ืฉื™ื ืืช ื–ื” ื ื•ื— ืœืžืคืชื—ื™ื :)

ื”ืœื™ืš ืจื•ืœ-ืืค

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

ื™ื™ืฉื•ืžื™ื ืžืฉืชืžืฉื™ื ื‘ื ืชื•ื ื™ื ืจื’ื™ืฉื™ื, ื›ื’ื•ืŸ ืืกื™ืžื•ื ื™ื, ืกื™ืกืžืื•ืช ืฉืœ ืžืกื“ ื ืชื•ื ื™ื, ื›ืœ ื–ื” ื ืžืฉืš ืœืชื•ืš ื”ืชืฆื•ืจื” ืž-Puppet master, ืฉื ื”ื ืžืื•ื—ืกื ื™ื ื‘ืฆื•ืจื” ืžื•ืฆืคื ืช.

ื‘ืขื™ื•ืช TFS

ืื—ืจื™ ืฉื”ื—ืœื˜ื ื• ื•ื”ื‘ื ื• ืฉื”ื›ืœ ื‘ืืžืช ืขื•ื‘ื“ ื‘ืฉื‘ื™ืœื ื•, ื”ื—ืœื˜ืชื™ ืœื‘ื“ื•ืง ืžื” ืงื•ืจื” ืขื ื”ืžื›ืœื•ืœื™ื ื‘-TFS ื‘ื›ืœืœื•ืช ืœืžื—ืœืงืช ื”ืคื™ืชื•ื— ืฉืœ Win ื‘ืคืจื•ื™ืงื˜ื™ื ืื—ืจื™ื - ื”ืื ืื ื—ื ื• ื‘ื•ื ื™ื/ืžืฉื—ืจืจื™ื ืžื”ืจ ืื• ืœื, ื•ื’ื ื’ื™ืœื” ื‘ืขื™ื•ืช ืžืฉืžืขื•ืชื™ื•ืช ื‘ืžื”ื™ืจื•ืช.

ืื—ื“ ื”ืคืจื•ื™ืงื˜ื™ื ื”ืขื™ืงืจื™ื™ื ืœื•ืงื— 12-15 ื“ืงื•ืช ืœื”ืจื›ื™ื‘ - ื–ื” ื”ืจื‘ื” ื–ืžืŸ, ืืชื” ืœื ื™ื›ื•ืœ ืœื—ื™ื•ืช ื›ื›ื”. ื ื™ืชื•ื— ืžื”ื™ืจ ื”ืจืื” ื™ืจื™ื“ื” ืื™ื•ืžื” ื‘-I/O, ื•ื–ื” ื”ื™ื” ืขืœ ืžืขืจื›ื™ื.

ืœืื—ืจ ืฉื ื™ืชื— ืื•ืชื• ืžืจื›ื™ื‘ ืื—ืจ ืจื›ื™ื‘, ื–ื™ื”ื™ืชื™ ืฉืœื•ืฉื” ืžื•ืงื“ื™ื. ืจืืฉื•ืŸ - "ืื ื˜ื™ ื•ื™ืจื•ืก ืงืกืคืจืกืงื™", ืืฉืจ ืกื•ืจืง ืžืงื•ืจื•ืช ื‘ื›ืœ ืกื•ื›ื ื™ Windows Build. ืฉื ื™ืช - Windows ืžึทืคืชึฐื—ึธืŸ. ื–ื” ืœื ื”ื•ืฉื‘ืช, ื•ื”ื›ืœ ื”ื•ืกืฃ ื‘ื–ืžืŸ ืืžืช ืขืœ ืกื•ื›ื ื™ ื”-Build ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ืคืจื™ืกื”.

ืฉืœื™ืฉื™ืช - ื”ืชืงื ื” Npm. ื”ืชื‘ืจืจ ืฉื‘ืจื•ื‘ ื”-Pipelines ื”ืฉืชืžืฉื ื• ื‘ืชืจื—ื™ืฉ ื”ืžื“ื•ื™ืง ื”ื–ื”. ืœืžื” ื”ื•ื ืจืข? ื”ืœื™ืš ื”ื”ืชืงื ื” ืฉืœ Npm ืžื•ืคืขืœ ื›ืืฉืจ ืขืฅ ื”ืชืœื•ืช ื ื•ืฆืจ ื‘ package-lock.json, ืฉื‘ื• ื ืจืฉืžื•ืช ื’ืจืกืื•ืช ื”ื—ื‘ื™ืœื•ืช ืฉื™ืฉืžืฉื• ืœื‘ื ื™ื™ืช ื”ืคืจื•ื™ืงื˜. ื”ื—ื™ืกืจื•ืŸ ื”ื•ื ืฉื”ื”ืชืงื ื” ืฉืœ Npm ืžืขืœื” ืืช ื”ื’ืจืกืื•ืช ื”ืขื“ื›ื ื™ื•ืช ื‘ื™ื•ืชืจ ืฉืœ ื—ื‘ื™ืœื•ืช ืžื”ืื™ื ื˜ืจื ื˜ ื‘ื›ืœ ืคืขื, ื•ื–ื” ืœื•ืงื— ื”ืจื‘ื” ื–ืžืŸ ื‘ืžืงืจื” ืฉืœ ืคืจื•ื™ืงื˜ ื’ื“ื•ืœ.

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

ื”ื—ืœื˜ื”

  • ืžืงื•ืจื•ืช ื‘ื—ืจื™ื’ื™ื AV.
  • ื”ืฉื‘ืช ืื™ื ื“ืงืก.
  • ืžืขื‘ืจ ืœ npm ci.

ื”ื™ืชืจื•ื ื•ืช ืฉืœ npm ci ื”ื ืฉืื ื—ื ื• ืื ื—ื ื• ืื•ืกืคื™ื ืืช ืขืฅ ื”ืชืœื•ืช ืคืขื ืื—ืช, ื•ืื ื• ืžืงื‘ืœื™ื ืืช ื”ื”ื–ื“ืžื ื•ืช ืœืกืคืง ืœืžืคืชื— ืจืฉื™ืžืช ื”ื—ื‘ื™ืœื•ืช ื”ื ื•ื›ื—ื™ืช, ืฉืื™ืชื• ื”ื•ื ื™ื›ื•ืœ ืœื”ืชื ืกื•ืช ืžืงื•ืžื™ืช ื›ื›ืœ ื”ืขื•ืœื” ืขืœ ืจื•ื—ื•. ื–ึถื” ื—ื•ืกืš ื–ืžืŸ ืžืคืชื—ื™ื ืฉื›ื•ืชื‘ื™ื ืงื•ื“.

ืชึฐืฆื•ึผืจึธื”

ืขื›ืฉื™ื• ืงืฆืช ืขืœ ืชืฆื•ืจืช ื”ืžืื’ืจ. ื”ื™ืกื˜ื•ืจื™ืช ืื ื—ื ื• ืžืฉืชืžืฉื™ื ืงึถืฉึถืืจ ืœื ื™ื”ื•ืœ ืžืื’ืจื™ื, ื›ื•ืœืœ REPO ืคื ื™ืžื™. ืžืื’ืจ ืคื ื™ืžื™ ื–ื” ืžื›ื™ืœ ืืช ื›ืœ ื”ืจื›ื™ื‘ื™ื ืฉื‘ื”ื ืื ื• ืžืฉืชืžืฉื™ื ืœืžื˜ืจื•ืช ืคื ื™ืžื™ื•ืช, ืœืžืฉืœ, ื ื™ื˜ื•ืจ ื‘ื›ืชื‘ ืขืฆืžื™.

NET Core ื‘-Linux, DevOps ืขืœ ืกื•ืก

ืื ื—ื ื• ื’ื ืžืฉืชืžืฉื™ื ื ื•ื’ื˜, ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ ืœื• ืžื˜ืžื•ืŸ ื˜ื•ื‘ ื™ื•ืชืจ ื‘ื”ืฉื•ื•ืื” ืœืžื ื”ืœื™ ื—ื‘ื™ืœื•ืช ืื—ืจื™ื.

ืชื•ืฆืื”

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

ืื ื ืกืคื•ืจ ืืช ื›ืœ ื”ืžื›ื•ื ื•ืช ืฉื™ื›ื•ืœื ื• ืœื”ืฉืชืžืฉ ื‘ื”ืŸ ืขื‘ื•ืจ Windows, ืื‘ืœ ืขื‘ืจื ื• ืœืœื™ื ื•ืงืก ื‘ืคืจื•ื™ืงื˜ ื”ื–ื”, ื—ืกื›ื ื• ื›-10$ ื•ื–ื” ืจืง ื‘ืจื™ืฉื™ื•ื ื•ืช, ื•ืขื•ื“ ืื ื ื™ืงื— ื‘ื—ืฉื‘ื•ืŸ ืืช ื”ืชื•ื›ืŸ.

ืชื•ื›ื ื™ื•ืช

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

ืžืขื‘ืจ ืœืชืžื•ื ื” ืžืจืืฉ ืฉืœ Docker. TFS ื”ื•ื ื“ื‘ืจ ืžื’ื ื™ื‘ ืขื ืชื•ืกืคื™ื ืจื‘ื™ื ื”ืžืืคืฉืจื™ื ืœืš ืœื”ืฉืชืœื‘ ื‘-Pipeline, ื›ื•ืœืœ ื”ืจื›ื‘ื” ืžื‘ื•ืกืกืช ื˜ืจื™ื’ืจ ืฉืœ, ืœืžืฉืœ, ืชืžื•ื ืช Docker. ืื ื—ื ื• ืจื•ืฆื™ื ืœื”ืคืขื™ืœ ืืช ื”ื˜ืจื™ื’ืจ ื”ื–ื” ืœืื•ืชื• ืื—ื“ package-lock.json. ืื ื”ืจื›ื‘ ื”ืจื›ื™ื‘ื™ื ืฉืฉื™ืžืฉื• ืœื‘ื ื™ื™ืช ื”ืคืจื•ื™ืงื˜ ืžืฉืชื ื” ืื™ื›ืฉื”ื•, ืื ื• ื‘ื•ื ื™ื ืชืžื•ื ืช Docker ื—ื“ืฉื”. ืžืื•ื—ืจ ื™ื•ืชืจ ื”ื•ื ืžืฉืžืฉ ืœืคืจื™ืกืช ื”ืžื™ื›ืœ ืขื ื”ื™ื™ืฉื•ื ื”ืžื•ืจื›ื‘. ื–ื” ืœื ื”ืžืงืจื” ื›ืขืช, ืื‘ืœ ืื ื—ื ื• ืžืชื›ื ื ื™ื ืœืขื‘ื•ืจ ืœืืจื›ื™ื˜ืงื˜ื•ืจืช ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ื‘-Kubernetes, ืฉืžืชืคืชื—ืช ื‘ืื•ืคืŸ ืคืขื™ืœ ื‘ื—ื‘ืจื” ืฉืœื ื• ื•ืžืฉืจืชืช ืคืชืจื•ื ื•ืช ื™ื™ืฆื•ืจ ืžื–ื” ื–ืžืŸ ืจื‘.

ืชืงืฆื™ืจ

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

ืคืจื•ืคื™ืœ ื”ื“ื•ื‘ืจ ืฉืœ ืืœื›ืกื ื“ืจ ืกื™ื ืฆ'ื™ื ื•ื‘ ื‘-GitHub.

DevOps Conf ื”ื™ื ื• ื›ื ืก ืœืฉื™ืœื•ื‘ ืชื”ืœื™ื›ื™ ืคื™ืชื•ื—, ื‘ื“ื™ืงื” ื•ืชืคืขื•ืœ ืœืื ืฉื™ ืžืงืฆื•ืข ืขืœ ื™ื“ื™ ืื ืฉื™ ืžืงืฆื•ืข. ื‘ื’ืœืœ ื–ื” ื”ืคืจื•ื™ืงื˜ ืฉืืœื›ืกื ื“ืจ ื“ื™ื‘ืจ ืขืœื™ื•? ืžื™ื•ืฉื ื•ืขื•ื‘ื“, ื•ื‘ื™ื•ื ื”ื”ื•ืคืขื” ื”ื™ื• ืฉื ื™ ืžื”ื“ื•ืจื•ืช ืžื•ืฆืœื—ื•ืช. ืขึทืœ DevOps Conf ื‘- RIT++ ื‘-27 ื•ื‘-28 ื‘ืžืื™ ื™ื”ื™ื• ืขื•ื“ ื™ื•ืชืจ ืžืงืจื™ื ื“ื•ืžื™ื ืฉืœ ืžืชืจื’ืœื™ื. ืืชื” ืขื“ื™ื™ืŸ ื™ื›ื•ืœ ืœืงืคื•ืฅ ืœื›ืจื›ืจื” ื”ืื—ืจื•ื ื” ื• ื”ื’ืฉ ื“ื•"ื— ืื• ืœืงื—ืช ืืช ื”ื–ืžืŸ ืœื”ื–ืžื™ืŸ ื›ึผึทืจึฐื˜ึดื™ืก. ืคื’ื•ืฉ ืื•ืชื ื• ื‘ืกืงื•ืœืงื•ื‘ื•!

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

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