ááŒá®ážáá²á·ááá·áºá¡áááºá Linux Foundation ááẠáááºážá Open Source Leadership Summit á¡ááœááºážá
á¡ááá¯áá«á¡ááŒá±áá¶á¡á¯ááºááŒá áºáá»á¬ážááᯠáááááºá¡ááœá²á·á¡á ááºáž Linux Foundation á¡á±á¬ááºááœáẠá¡áááºááŒá±á¬áá·áºáááºáá®ážáá¬ážááŒá±á¬ááºáž ááá¯ááá¯ááááŸááá¬ážáááºááẠááá¯ááá¯áá°áááá»á¬ážáá±á¬ á¥ááᬠ- CNCF (Cloud Native Computing Foundation) ááá¯ááŒáá·áºáá«á á€áááºáá¯á¶ááœá±ááẠ2015 áá¯ááŸá áºááœáẠáá±á«áºáá¬áá²á·ááŒá®áž ááá¯á¡áá»áááºááŸá á cloud IT á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á áá±ááºáá®áá±á¬ ááŸá¯áááºážááᯠá¡ááŸááºááááºáááºááŸááºáá±ážááá·áº Open Source ááá±á¬áá»ááºáá»á¬ážá áœá¬ááᯠáááºáá¶áá²á·áááº- Kubernetesá containerd, Prometheus á áááºááŒáá·áºá
á¡ááœá²á·á¡á
ááºážááá¯ááºááá¯ááºá á€ááá±á¬áá»ááºáá»á¬ážááᯠá
á®áá¶ááá·áºááœá²ááŒá®áž á
á»á±ážááœááºá¡áá®ážáá®ážááœáẠáá«áááºáá°áá»á¬ážá á¡áá»áá¯ážá
á®ážááœá¬ážá¡ááœáẠá
á®áá¶ááá·áºááœá²ááŒááºážááŸáá·áº ááœá¶á·ááŒáá¯ážááá¯ážáááºá
á±ááŒááºážá¡áá±á«áº á¡ááŒá±áá¶á á¡ááŸá®á¡ááá¯áááºážáá±á¬ ááááºáá±á¬ááºážáá
áºáá¯á¡ááŒá
Ạáá¯ááºáá±á¬ááºáááºá á€áááºááœááºáá»ááºá¡ááœáẠCNCF ááœáẠáááºážááá¬ááŸáá·áº á
á»á±ážááœááºááŸá¬ááœá±áá±ážáá±á¬áºááá®áá»á¬ážááᯠáááºáá®ážáá¬ážááŒá®áž á¡áá»áá¯á·áá±á¬ á
á¶ááŸá¯ááºážáá»á¬ážááŸáá·áº á
ááºážáá»ááºážáá»á¬ážááᯠáá»ááŸááºáá¬ážáááºá (á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠá
áááºáááºá
á¬ážáá«áá á¥ááá¬á
áá®á¡á±á¬ááºááŒááºááŸá¯áá±á¬ááºááŸá¬ (á¡á¬ážáá¯á¶ážááŒá®ážáá±á¬ááºá CNCF cloud ááá±á¬áá»ááºáá»á¬ážá áœá¬ááẠDevOps á¡ááºáá»ááºáá®áá¬áá»á¬ážáá±á·á ááºááááá áºá áááºáá áºááá¯ááºážááŒá áºáá¬áááº)á¡áá¯ááºáá®ááá¯ááºáᬠáá±áá¯áá»áá±ááºáá±á á®ážááŒá±á¬ááºážáá»á¬ážááŸáá·áº Open Source ááá¹áá¬ááŸá áááºážááá¯á·áááá¯ááºáá»á¬ážááᯠLinux Foundation á០"ááááºážááá¯ááº" ááẠáá¯á¶ážááŒááºáá²á·ááẠ(ááá¯á·ááá¯áẠ"ááŒáŸáá·áºáááºáááº" áá¯ááá¯áá¬ááœáẠááá¯ááŸááºáááá·áºáááº) áááºáááºá¡áá áº-
âá ááºáááºáááŒáẠááá¯á·áá±á¬ááºááŸá¯áá±á¬ááºáá±ážááŸááºáž (CDF) ááẠááá¯ááºááá¯ááºážáá¯ááºáááºážá ááºáá»á¬ážááᯠá¡ááŸáááºááŒáŸáá·áºáá±ážááá·áº á ááºáááºáááŒáẠáá±ážááá¯á·ááŸá¯ááŸáá·áº áááºááŸááºáá»ááºáá»á¬ážá¡ááœáẠáááºá á°ážáá¬ážáá±á¬ á¡áá±ážááŒá®ážáá±á¬ Open Source ááá±á¬áá»ááºáá»á¬ážá¡ááœáẠáá±á¬ááºážáá»áá°ááŒá¬ážáá±á¡áááºáá áºáᯠááŒá áºáá¬áá«áááºá CDF ááẠáá¯ááºáááºážáááºáááºá០áŠážáá±á¬áẠdeveloper áá»á¬ážá end user áá»á¬ážááŸáá·áº áá±á¬ááºážáá»áá°áá»á¬ážá á¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯ááᯠááœááºáá°áá»á±á¬ááœá±á·á á±áááºááŒá áºááŒá®ážá CI/CD ááŸáá·áº DevOps áááºážá áá áºáá»á¬ážááᯠááŒáŸáá·áºáááºáááºá á¡áá±á¬ááºážáá¯á¶ážá¡áá±á·á¡áá»áá·áºáá»á¬ážááᯠáááºááŸááºááŒá®áž ááŸááºáááºážáááºááŒááºážá CI á¡áá±á¬ááºá¡áááºáá±á¬áºáááºá¡ááœáẠááá¹áá¬áá áºááŸááºážááŸá áááºááá·áºáá±áá¬á០áá±á¬á·ááºáá²ááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážá¡ááœá²á·áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºá á±ááá·áº áááºážááœáŸááºáá»á¬ážááŸáá·áº áá±á·áá»áá·áºáá±ážáá á¹á ááºážáá»á¬ážááᯠáááºáá®ážáá±ážáááºááŒá áºáá«áááºá /CD á¡áá±á¬ááºážáá¯á¶ážá¡áá±á·á¡áá»áá·áºáá»á¬ážá"
á áááºáá°áž
ááá¯á¡áá»áááºááœáẠCDF ááᯠáááºážááœáŸááºáá±á¬ áááºááááºááá¯ážáá»á¬ážááŸáá·áº á¡ááŒá±áá¶áá°áá»á¬áž
- ... á ááºáááºáááŒáẠáá±ážááá¯á·ááŒááºážá á áœááºážá¡á¬ážááᯠáá¯á¶ááŒááºááŒá®áž á¡áááºá¡ááœá±ážááŒáá·áº áá±á¬á·ááºáá²ááºáá»á¬ážááᯠááá¯ááá¯áááŒá¬áá áá¯ááºááœáŸááºááẠáá±á¬á·ááºáá²áá±ážááœá²áá°áá»á¬ážááŸáá·áº á¡ááœá²á·áá»á¬ážá¡á¬áž áááºáá²á·ááá¯á· á áœááºážáá±á¬ááºááá¯ááºáááºááᯠáá¯á¶ááŒááºáááºá
- âŠáá±á¬á·ááºáá²ááºáá±ážááá¯á·ááŒááºážá ááºáááºážáá áºáá¯áá¯á¶ážááœáẠá¡áá°áááœá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº open source ááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠáá¯á¶ááŒááºáááºá
- ... áá°ážáá±á«ááºážáá±á¬ááºááœááºááŒááºážááŸáá·áº á¡ááŒááºá¡ááŸááºáááá¬áááŒá áºááŸá¯ááá¯á·ááŒáá·áº áá±á¬ááºážáá»áá°áá»á¬ážááŸáá·áº áááºážá ááºáá±á¬ Open Source ááá±á¬áá»ááºáá»á¬ážá áá±áá áá áºááᯠááŒá¯á á¯áá»áá¯ážáá±á¬ááºáá±ážááŒá®áž áá¶á·ááá¯ážáá±ážáá«áááºá
- ...á ááºáááºáááŒáẠááá¯á·áá±á¬ááºáá±áž áá±á·áá»áá·áºáá°áá»á¬ážá¡á¬áž áááºážááá¯á·á á¡áá±á·á¡áá»áá·áºáá»á¬áž áá°ážáá±á«ááºážáá±á¬ááºááœááºááŒááºážá áá»áŸáá±áááºááŸáá·áº ááá¯ážáááºá á±ááẠááŒáŸáá·áºáááºá¡á¬ážáá±ážáá«áááºá
áá«áááºáá°áá»á¬ážááŸáá·áº ááá±á¬áá»ááºáá»á¬áž
ááá¯á·áá±á¬áº ááŸááá±á¬á áá¬ážáá¯á¶ážáá»á¬ážááẠáááºááœá±á·ááœááºááŒá áºáá»ááºáá±ááá·áºá¡áá¬áá»á¬ážááŸáá·áº á¡ááŒá²áá á±áááá¯ááºááá¯ááºááá·áº á á»á±ážááœááºááŸá¬ááœá±áá°áá»á¬ážááŒá áºáááºá á€ááá±á¬áá»áá¯ážááŒáá·áº á¡ááœá²á·á¡á ááºážááᯠáááºááá·áºáá¯áá¹ááá®áá»á¬ážá ááœá²á·á ááºážááŒá®áž áááºááá·áºááá±á¬áá»ááºá áááºážá "áá¬ážáŠáž" ááŒá áºáá¬áááºááᯠááááá¯á¶áž ááá±á¬áá¬ážááᯠááŒá¯áá¯ááºááá¯ááºáááºá
CDF á á¡ááá á¡ááœá²á·áááºáá»á¬áž ááŒá
áºááŒáááºá
CDF áá«áááºáá°áá»á¬ážááẠáááºážáááá±á¬áá»ááºáá»á¬ážá áá±á¬ááºáá¯á¶ážá¡áá¯á¶ážááŒá¯áá°áá»á¬ážáááºáž áá«áááºááẠ- CNCF ááœáẠeBayá Pinterestá Twitterá Wikimedia ááŸáá·áº á¡ááŒá¬ážáá»á¬ážá
áœá¬ááᯠáááºááŸá¬ááœá±ááá¯ááºááá·áº á¡áá¬ážáá°á¡áá»áá¯ážá¡á
á¬ážáá
áºáá¯ááŸááááºá áááºáá¯á¶ááœá±á¡áá
áºááœááºá ááá¯á¡áá»áááºá¡áá ááá¯áá²á·ááá¯á·áá«áááºáá° áá
áŠážáá¬ááŸááá±á¬áºáááºáž áááºážááá¯á·ááœáẠá
áááºáááºá
á¬ážá
áá¬áá±á¬ááºážááŒá®áž áá°áááá»á¬ážááá·áºá¡áááºáá»á¬áž áá±á«áºáá¬ááŒá®ážááŒá
áºáááº- Autodeská GitLabá Puppetá Rancherá Red Hatá SAP ááŸáá·áº á
á¬áá¬ážá¡ááá«áááºáááº
ááá¯ááŒá áºáá±á¬ááºážááŒá áºááá¯ááºáááº, á¡áááá¡áá¬á¡ááŒá±á¬ááºáž - CDF ááá¯ááá¯áá áá¯ááºá¡ááºááŸááºážáá¬ážáá²á·á á®áá¶ááááºážáá»á¬ážá¡ááŒá±á¬ááºážá á¡ááœá²á·á¡á ááºáž áááºáá±á¬ááºáá»áááºááœáẠáááºážááá¯á·áá²á០áá±ážáŠážááŸááááºá
Jenkins ááŸáá·áº Jenkins X
ááá±á· Jenkins á áá±á¬ááºááœááºá០á¡ááá á á®ážááœá¬ážáá±ážááá¯ááºáᬠááœá²á·á ááºážáá¯á¶ááᯠááá·áºááœááºážá ááºážá á¬ážááá¯ááºáááºá CloudBeesááá±á¬áá»ááºá áá°áááºážáá±ážáá¬ážáá° (Kohsuke Kawaguchi) á áááºážááá¬áá«ááá¯ááºáá¬ááŒá áºááŒá®áž áá±á¬ááºáá±ážááŸááºážááᯠáááºáá±á¬ááºáá°áá»á¬ážáá²á០áá áºáŠážááŒá áºáá¬áá²á·áááºá
Jenkins X ááẠKubernetes á¡á á¯á¡áá±ážáá»á¬ážá¡ááœááºáž ááŒáá·áºáá»ááºáá¬ážáá±á¬ áá±ááºáá® cloud á¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠCI/CD á á¯á ááºážááŸá¯á¡ááœáẠáá±á¬á·áá»ááºá¡ááŒá±áá áºáᯠáá±ážáá«áááºá áááºážááá¯á¡á±á¬ááºááŒááºááẠJX ááẠááá¯ááºááá¯ááºážá¡ááá¯á¡áá»á±á¬ááºá áá áºá áááºáááºáá¬ážáá±á¬ GitOps á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á á¡ááŒáá¯ááŒáá·áºááŸá¯ááá·áºáááºáááºážáá»ááºááŸáá·áº á¡ááŒá¬ážá¡ááºá¹áá«áááºáá»á¬ážááᯠáá±ážáá±á¬ááºáááºá Jenkins X á áááá¯áá¬áááºáá¬ááᯠá¡á±á¬ááºáá«á¡ááá¯ááºáž áááºááŒáá¬ážáá«áááºá
áá¯ááºáá¯ááºá¡á¯ááºá
ᯠ- Jenkinsá Knative Buildá Prowá Skaffold ááŸáá·áº Helmá ááá±á¬áá»ááºá¡ááŒá±á¬ááºáž áá»áœááºáá±á¬áºááá¯
áá±á¬áºáá»áá¯ážááá¯ááº
áááºáá±á¬ááºááŸá¯áá»á¬ážááá¯áá±á¬áºááŒáááºá¡ááœáẠSpinnaker ááŸá á¡áááááá±á¬ááá¬ážáá»á¬ážááŸá¬ á¡ááá®áá±ážááŸááºážáá»á¬ážá á¡á á¯á¡áá±ážáá»á¬ážááŸáá·áº áá¬áá¬á¡á¯ááºá á¯áá»á¬ážááŒá áºááŒá®áž áááºážááá¯á·ááᯠááŒááºáááá¹áá¬ááá¯á· áááŸáááá¯ááºááŸá¯ááᯠload balancers ááŸáá·áº firewalls áá»á¬ážá ááá¯ááºááœááºáááº-
á¡ááŒá±áᶠSpinnaker á
ááºáá
á¹á
ááºážá¡ááŒá±á¬ááºáž áá±á¬ááºáááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááœááºááœá±á·ááá¯ááºáá«áááºá
ááááºáá±á¬ááºážááẠKubernetesá OpenStack ááŸáá·áº á¡áá»áá¯ážáá»áá¯ážáá±á¬ cloud áááºáá±á¬ááºááŸá¯áá±ážáá°áá»á¬áž (AWS EC2á GCEá GKEá GAEá Azureá Oracle Cloud Infrastructure) á¡áá«á¡ááẠá¡áá»áá¯ážáá»áá¯ážáá±á¬ áá¯ááºáá¯ááºáá»á¬ážááŸáá·áº áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áá±á«ááºážá ááºáá¯ááºáá±á¬ááºááá¯ááºáááº-
- ááá¯ááºááá¯ááºážáá»á¬ážááœáẠCI á áá áºáá»á¬áž (Jenkinsá Travis CI)á
- Datadogá Prometheusá Stackdriver ááŸáá·áº SignalFx ááá¯á·ááŒáá·áº - ááŒá áºáááºáá»á¬ážááᯠá á±á¬áá·áºááŒáá·áºááŒááºážá
- Slacká HipChat ááŸáá·áº Twilio ááŸáá·áºá¡áá° - á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá»á¬ážá¡ááœááº;
- ááááá ááºáá»á¬ážá¡ááœáẠPackerá á á¬ážááá¯ááŸá°ážááŸáá·áº áá¯ááºáá±ážááŸáá·áºá
á¡á²áá«áá¬áá²
âSpinnaker áá¡á±á¬ááºááŒááºááŸá¯ááẠáááºážááá¯á¡áá¯á¶ážááŒá¯áá±á¬ áá¯áá¹ááá®áá»á¬ážááŸáá·áº áááºážáááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡ááœáẠáá¶á·ááá¯ážáá±ážáá±á¬ á¡á¶á·ááœááºá¡ááá¯ááºá¡áááºážáá»á¬ážá¡ááœáẠááŒá®ážáá¬ážáá±á¬á¡á áááºá¡ááá¯ááºážáá áºáá¯ááŒá áºáááºá Spinnaker ááᯠCDF ááá¯á· ááœáŸá²ááŒá±á¬ááºážááŒááºážááẠá€á¡ááá¯ááºážá¡ááá¯ááºážááᯠá¡á¬ážáá±á¬ááºážá á±áááºááŒá áºáááºá á€á¡ááá·áºááẠáá±ážááŸááŒáá·áºááŸá¯áá±ááá·áº á¡ááŒá¬ážáá¯áá¹ááá®áá»á¬ážáá¶á០á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááŸáá·áº áááºážááŸá®ážááŒáŸá¯ááºááŸá¶ááŸá¯áá»á¬ážááᯠá¡á¬ážáá±ážáááºááŒá áºáááºá áá¯áá¹ááá®á¡áá áºááœá±ááᯠáá¶áá«ážááœáá·áºááá¯ááºáá¬áá²á· áá°ááá¯ááºážááᯠá¡áá»áá¯ážááŸáá á±ááá·áº Spinnaker á¡ááœáẠáááºážáá áºáá®ááœááºááŸá¯ááœá± áá°áá±á¬ááºáá¬áá«áááá·áºáááºáâ
ááŸááºá·
the Tekton
á€á¡á
áááºá¡ááá¯ááºážáá»á¬ážááá¯ááºááá¯ááºá "Kubernetes-style" áááºážááŒá
áºáá»á¬áž (K8s ááá¯ááºááá¯áẠCRDs á¡ááŒá
Ạá¡áá±á¬ááºá¡áááºáá±á¬áºáááº) ááẠááá¯ááºááá¯ááºážáá»á¬ážááᯠáááºááŸááºáááºá¡ááœáẠá¡áá±á¬ááºá¡áŠáá¯á¶ážáá»á¬ážá¡ááŒá
Ạáá¯ááºáá±á¬ááºáááºá K8s á¡á
á¯á¡áá±ážááœáẠáááºážááá¯á·áá¡áá¯á¶ážááŒá¯áá¯á¶á¡áá»ááºážááᯠáááºááŒáá¬ážáááºá
Tekton áá¶á·ááá¯ážáá±ážáá¬ážáá±á¬ áá¯ááºáá¯ááºá¡á á¯ááẠJenkinsá Jenkins Xá Skaffold ááŸáá·áº Knative ááá¯á·ááᯠáááºážááŸá®ážááŒá®ážáá¬ážááŒá áºáá¯á¶ááááºá Tekton ááẠ"Open Source á¡ááá¯ááºážá¡ááá¯ááºážááŸáá·áº CI/CD á¡ááœáẠá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááᯠáá±ááºáá®á¡á±á¬ááºáá¯ááºáá±á¬ááºááẠáŠážáá±á¬ááºáá±á¬ááºážáá»áá°áá»á¬ážááŸáá·áº áááºááœá²áá¯ááºáá±á¬ááºáá±áá±á¬ áŠážáá±á¬ááºáá±á¬ááºážáá»áá°áá»á¬ážáááŒá¿áá¬ááᯠááŒá±ááŸááºážáá±ážáááº" áᯠGoogle Cloud á០áá¯á¶ááŒááºáááºá
...
CNCF ááŸáá·áº ááŸáá¯ááºážááŸá¥áºááŒááºážá¡á¬ážááŒáá·áº CDF ááẠáááºáá¯á¶ááœá±ááœáẠááá±á¬áá»ááºá¡áá
áºáá»á¬ážáá«áááºááŒááºážááŸáá·áºáááºáááºá áá¬áááºáá»á¬ážáá«áááºááá·áº áááºážááá¬ááá¯ááºáá¬áá±á¬áºááá® (Technical Oversight Committee, TOC) ááᯠááœá²á·á
ááºážáá²á·áááºá á¡ááŒá¬ážá¡ááœá²á·á¡á
ááºážááŸáá·áºáááºáááºáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠááá¯ááºááá¯ááºááŒááº
ááá¯ážáá¬ážáá»ááºááŒáá·áº á¡áá¯á¶ážáááºááŒáá«á
áá¯á·
âááᯠá¡áá áºááœá²á·á ááºážáá¬ážáá±á¬ Continuous Delivery Foundation áá¯áá¹ááá®áá»á¬ážáá²á០áá áºáá¯á¡áá±ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá¬áž CI/CD ááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážááŒááºážááŒáá·áº á¡ááŒá¬ážáá±á¬ CI/CD ááŒá±ááŸááºážááŸá¯áá»á¬ážá áá¶á·ááá¯ážááŸá¯ááŒáá·áº ááá¹áá¬áá¯á¶ážááá¯ááºáᬠáááºážááá¬ááᯠáááºáá®ážááẠáá»áœááºá¯ááºááá¯á·á áááááááºááᯠáá¶áá°áá«áááºá á€á¡ááœá²á·á¡á ááºážá¡áá áºááẠáá°ážáá±á«ááºážáá¯ááºáá±á¬ááºááŒá®áž ááœáá·áºáááºážáá±á¬áá»ááºážáááºááŸá¯ááŒáá·áº áá±á¬á·ááºáá²ááŒáá·áºáá»áááŸá¯áááºáááºááŸá¯ááᯠá¡ááŸáááºááŒáŸáá·áºáá±ážááá·áº á¡áá¬áááºá ááºáááºáááŒááºáá±ážááá¯á·ááŸá¯á á¶ááŸá¯ááºážáá»á¬ážááᯠáá±á¬ááºážááŸááºáá±ážáááºááŒá áºáááºá Jenkinsá Jenkins Xá Spinnaker ááŸáá·áº á€áá±á¬ááºáá±ážááŸááºážá á¡áá±á¬ááºáá¶á¡á±á¬ááºááœáẠá¡ááŒá¬ážáááºážááá¬áá»á¬ážááᯠááœá±ážá á¬ážááŒááºážááŒáá·áº CI/CD á¡ááœáẠáá±á¬ááºááá±á¬á¡áá¬áááºááᯠáá»áœááºá¯ááºááá¯á· ááŒááºááœá±á·ááááºáâ
PS
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááœááºáááºážáááºáá«
- «
Jenkins X ááᯠKubernetes ááœáẠCI/CD cloud á¡ááºááºáá»á¬ážá¡ááœáẠááááºáááºáá±ážáá²á·áááºá "; - «
CNCF ááẠDevOps/microservices á¡ááœáẠOpen Source ááá±á¬áá»ááºáá»á¬ážá¡ááœáẠá¡ááá²á· cloud áá áºáá¯ááᯠáá±ážáá¬ážáá«áááºá "; - «
Linux áá±á¬ááºáá±ážááŸááºážááẠKubernetes ááœáẠá¡ááá²á·ááááºáááºááá·áº á¡áœááºááá¯ááºážáááºáááºážááᯠáááºáááºáááºá "; - «
á¡á±á¬ááºááŒááºáá±á¬ Open Source ááá±á¬áá»ááºááŒá®ážáá»á¬ážááœáẠáá°áá®áá±á¬á¡áá»ááºááŸá¬ á¡áááºáááºážá "á
source: www.habr.com