
æ°ãããããžã§ã¯ãã®åæãèè ã®èšäºã«è¿œå ããããã°ã§å ¬éãããŠããã©ã€ãããã¯/è峿·±ãçºèŠã«é¢ããè³æã翻蚳ããããšã«ããŸããã Waypointã¯ããããããã©ãããã©ãŒã ã§ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãå±éããªãªãŒã¹ããããã®äžè²«ããã¯ãŒã¯ãããŒãéçºè ã«æäŸãããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã§ãã Waypointã䜿çšãããšãéçºè ã¯éçºç°å¢ããå®çšŒåç°å¢ãŸã§ã®ã¢ããªã±ãŒã·ã§ã³ã1ã€ã®ãã¡ã€ã«ã§ãã¹ãããæ¬¡ã®1ã€ã®ã³ãã³ãã§ã¢ããªã±ãŒã·ã§ã³ãå±éã§ããŸã
waypoint upã Waypointã¯ãKubernetesãHashiCorp NomadãAmazon ECSãGoogle Cloud RunãAzure Container InstancesãDockerãBuildpacksãªã©ãããã«ãµããŒãããŸããå°ããªäŸãèŠãŠãWaypointã®æ©èœãšãããŒã«ã解決ããåé¡ã«ã€ããŠè©³ããç¥ãããã«èªãã§ãã ããã
Waypointã¯å®å šã«æ¡åŒµå¯èœã§ãããä»»æã®ããŒã«ãŸãã¯ãã©ãããã©ãŒã ã§åäœãããã©ã°ã€ã³ã·ã¹ãã ã«åºã¥ããŠããŸãããããã€ããããšãWaypointã¯ããããã€ã¡ã³ãããã¹ãããã³ãããã°ããããã®ãã®ã³ã°ãªã©ãæäŸããŸããããã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ãŸãã¯ãã©ãããã©ãŒã ã§å®è¡ãããã¢ããªã±ãŒã·ã§ã³ã®å±éã管çããããã«ããŠã³ããŒãããŠãã¹ããããœãããŠã§ã¢ã§ããããã«ãHashiCorpã®åµèšè èªèº«ãWaypointã«ã€ããŠè©³ãã説æããŸãã
å±éãç°¡çŽ åãã
Waypointã¯ã1ã€ã®åçŽãªçç±ã§ç§ãã¡ã«ãã£ãŠäœæãããŸãããéçºè ã¯ãã¢ããªã±ãŒã·ã§ã³ããããã€ãããã ãã§ãã HashiCorpã«ã¯ãã³ãã¥ããã£å ã®ããããçš®é¡ã®çµç¹ãå人ãšé£æºããæ©èœããããŸããããã«ãããéçºè ãã¢ããªã±ãŒã·ã§ã³ãå±éãããšãã«çŽé¢ãã課é¡ãããŠãŒã¶ãŒã®ã¢ã¯ã»ã¹å¯èœæ§ã®èгç¹ããåé¡ãçºçããŸããç§ãã¡ã¯ãGitHubã®åé¡ããã£ã¹ã«ãã·ã§ã³ãã©ãŒã©ã ãé»åã¡ãŒã«ãªã©ãä»ããŠãæ¯æ¥æ°å人ã®åã ã®ãŠãŒã¶ãŒãšéä¿¡ããŠããŸããæ¯é±500瀟ãè¶ ããäŒæ¥ãšäŒããçŸåšã®ååãšéçšäžã®åé¡ã«ã€ããŠè©±ãåã£ãŠããŸãã
çžäºäœçšãéããŠãç¹ã«äžèŠæš¡ããã³å€§èŠæš¡ã®çµç¹ã®éçºè ã¯ãã³ã³ãããã¹ã±ãžã¥ãŒã©ãYAMLãã¡ã€ã«ããµãŒããŒã¬ã¹ãªã©ã®è€éãã«å§åãããŠããããšãããããŸãããè€éãã¯å€ãã®ç¹ã§ã¢ããªã±ãŒã·ã§ã³ãæ¹åããŸããããæåã®ã¢ããªã±ãŒã·ã§ã³ãåçŽã«å±éããã«ã¯ãåŠç¿æ²ç·ã«èŠãããã³ã¹ããå¿ èŠã§ãã
ããŒã«ã¯éåžžã«ç°ãªãããšãå€ããããç§ãã¡ãèŠããã1ã€ã®åé¡ã¯ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠç°ãªããŸããKubernetesã®Dockerãškubectlãä»®æ³ãã·ã³ã®HashiCorp PackerãšTerraformããµãŒããŒã¬ã¹ãã©ãããã©ãŒã ããšã«ç°ãªãããŒã«ãªã©ããããŸãããã®æçåã¯ãåã³å人ã®åŠç¿åé¡ãåŒãèµ·ãããŸããããŒã ã«ãšã£ãŠããããã¯äžè²«æ§ãšè€éãã®åé¡ã§ãã
Waypointã䜿çšããŠãããã2ã€ã®åé¡ã«å¯ŸåŠããããšãç®æããŠããŸããWaypointã¯ãä»»æã®ã¢ããªã±ãŒã·ã§ã³ããããã€ããããã®1ã€ã®ç°¡åãªã³ãã³ããwaypointupããæäŸããŸããã¯ãŒã¯ãããŒã¯ã©ã®ãã©ãããã©ãŒã ã§ãåãã§ããKubernetesãNomadãEC2ãGoogle Cloud Runããã®ä»12以äžããªãªãŒã¹ã«ãã£ãŠãµããŒããããŸããWaypointã¯ããã«ãããããã€ã¡ã³ããããã³ãªãªãŒã¹ããžãã¯çšã®ãã©ã°ã€ã³ã§æ¡åŒµå¯èœã§ããéçºè ã¯ãã¢ããªã±ãŒã·ã§ã³ããããã€ãããã ãã§ããWaypointã¯ãããå®è¡ããŸãã
æ©èœæ§
Waypointã¯ãã¢ããªã±ãŒã·ã§ã³ããããã€ãããããã€ã¡ã³ããæ€èšŒããã³ãããã°ããããã®ã¯ãŒã¯ãããŒãæäŸããå€ãã®æ©èœãæäŸããŸãããããã®æ©èœã«ãããWaypointã¯ããããããã©ãããã©ãŒã ã«ããããã¢ããªã±ãŒã·ã§ã³ãå±éããããã®åŒ·åãªããŒã«ã«ãªããŸãã
- waypoint up: , . Waypoint , , , . Waypoint Waypoint.
- URL- : Waypoint URL waypoint.run TLS, Let's Encrypt. , .
- : waypoint exec. exec , , . waypoint exec.
- : Waypoint . , . , Datadog Splunk. CLI -. .
- -: CLI, Waypoint -, , . - . . , ,
- : , . Waypoint , Waypoint, .
Waypointã®ããŸããŸãªæ©èœãäŸã§ç€ºããŸããããäžéšã®ã»ããã¢ããæé ã¯ã¹ãããããããããå®å šãªäŸãèªåã§è©ŠããŠã¿ããå Žåã¯ãã¹ã¿ãŒãã¬ã€ãã確èªããŠãã ããããã®äŸã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãKubernetesã«ãããã€ããŸããã¢ããªã±ãŒã·ã§ã³ã®æšªã«ããHclãã¡ã€ã«ããã®ãã¡ã€ã«ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã©ã€ããµã€ã¯ã«ã®ãã¹ãŠã®æ®µéãèšè¿°ãããŠããŸãã
project = "HashiCorp Waypoint"
app "waypoint-up" {
build {
use "docker" {}
registry {
use "docker" {
image = "hashicorp/wpmini"
tag = gitrefpretty()
}
}
}
deploy {
use "kubernetes" {
probe_path="/"
service_port=80
}
}
release {
use "kubernetes" {
load_balancer=true
port=80
}
}
}
ãã«ãããããã€ããªãªãŒã¹
Waypointæ§æãã¡ã€ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã©ã€ããµã€ã¯ã«ã®3ã€ã®äž»èŠãªãã§ãŒãºã§ãããã«ãããããã€ã¡ã³ããããã³ãªãªãŒã¹ã«ã€ããŠèª¬æããŠããŸãã
- ã¢ã»ã³ããªã¯ã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒããåãåãããããã¢ãŒãã£ãã¡ã¯ãã«å€æããŸãããã«ãããã»ã¹ã«ã¯ããªãã·ã§ã³ã®ã¬ãžã¹ããªæ§æãå«ããŠããã«ããããã¢ãŒãã£ãã¡ã¯ããã¬ãžã¹ããªã«ããã·ã¥ãããããã€ã¡ã³ããã©ãããã©ãŒã ã§äœ¿çšã§ããããã«ããããšãã§ããŸããããšãã°ããã®ã¹ãããã§ã¯ããœãŒã¹ã³ãŒããDockerã€ã¡ãŒãžãEC2AMIãªã©ã«å€æããŸãã
- ãããã€ã¡ã³ãã¯ãåã®ã¹ãããã§åéãããã¢ãŒãã£ãã¡ã¯ããååŸããŠã¿ãŒã²ãããããã€ã¡ã³ããã©ãããã©ãŒã ã«é
眮ããURLãŸãã¯ãã®ä»ã®å
éšã¡ãœãããä»ããŠãããã€ã¡ã³ããå©çšã§ããããã«ããŸãã
ãã®ãªãªãŒã¹ã«ããããããã€ã¡ã³ããã¢ã¯ãã£ãåãããã¡ã€ã³ã¹ããªãŒã ãã©ãã£ãã¯ã«éãããŸããå°æ¥çã«ã¯ãWaypointã«ãµããŒãã远å ããŠãç°å¢éã§ã¢ããªã±ãŒã·ã§ã³ãç§»åããå±éãšãªãªãŒã¹ãããŒã«ããã¯ãããªãªãŒã¹åŸã«ãµãŒããŒéã§ãã©ãã£ãã¯ãåŸã ã«ç§»åããäºå®ã§ãã
ãŠã§ã€ãã€ã³ããäžãã
ãŠã§ã€ãã€ã³ãã¢ããããŒã ã¯ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãå±éãããã³ãªãªãŒã¹ããŸããæåŸã«ãã¢ããªã±ãŒã·ã§ã³ãå©çšå¯èœãª1ã€ä»¥äžã®ã¢ãã¬ã¹ã衚瀺ãããŸãããããã©ã®ã¢ããªã±ãŒã·ã§ã³ã§ãããã©ã®ãã©ãããã©ãŒã ã§ãããã¯é¢ä¿ãããŸããããã€ã§ãã¿ãŒããã«ã«ãŠã§ã€ãã€ã³ããå ¥åããŠå±éã§ããŸãã
ã©ã€ããµã€ã¯ã«ã¹ããŒãžã¯åå¥ã«å®è¡ã§ããŸããããã¯ãGithubActionsãCricleCIãJenkinsãªã©ã®CI / CDããŒã«ãæäœãããšãã«åœ¹ç«ã¡ãŸããWaypointã䜿çšããã¢ããªã±ãŒã·ã§ã³ã¯ãŒã¯ãããŒã®èªååã«ã€ããŠè©³ããã¯ããã¡ããã芧ãã ããã
ã¢ããªã±ãŒã·ã§ã³ãšãããã€ã¡ã³ãã®ã¢ãã¬ã¹
ãŠã§ã€ãã€ã³ãã«ãããã€ãããã¢ããªã±ãŒã·ã§ã³ã¯èªåçã«ã«ãã£ãŠçæãããæå¹ãªTLSèšŒææžã䜿çšããŠwaypoint.runã®ãããªå ¬å ±ã®URLãååŸããŠã¿ãŸãããæå·åããã®ã¢ãã¬ã¹ã䜿çšããŠããããã€ãããã¢ããªããã°ãã衚瀺ããã³å ±æããŸãããã®URLã¯ãHashiCorpã®ç¡æã®å ¬éãµãŒãã¹ãéããŠæäŸãããŸãããã®æ©èœã¯ãªãã·ã§ã³ã§ãããç¡å¹ã«ããããšãã§ããŸããäžèšã®äŸã§ã¯ãURLæè¿-pleasant-duck--v1.waypoint.runã§ãããã®URLã¯æ©èœããªããªã£ãããšã«æ³šæããŠãã ãããã¢ããªã±ãŒã·ã§ã³ã¯ããã®ããã°æçš¿ã«å¯ŸããŠã®ã¿å®è¡ãããŸãããæè¿-pleasant-duck--vN.waypoint.runã®ãããªãªã³ã¯ã§ãå±éã®ç¹å®ã®ããŒãžã§ã³ã確èªã§ããŸããããã§ãNã¯ãããã€ã¡ã³ãã®ããŒãžã§ã³çªå·ã§ãããã®æ©èœã¯ããã¬ãªãªãŒã¹ããŒãžã§ã³ã®ã¢ããªãããŒã ãšå ±æããå Žåã«éåžžã«äŸ¿å©ã§ãã
ãŠã§ã€ãã€ã³ããã®ã³ã°
Waypointã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ãã°ã®ãªã¢ã«ã¿ã€ã ã¹ãããã·ã§ããã«ã¢ã¯ã»ã¹ã§ããŸãããããã®ãã°ã¯ãéçºäžã®ã¢ããªã±ãŒã·ã§ã³ã®åäœããããã°ããå¿ èŠãããå Žåã«åœ¹ç«ã¡ãŸãããã ããè€éãªãã®ã³ã°ãœãªã¥ãŒã·ã§ã³ã«åã£ãŠä»£ãããã®ã§ã¯ãããŸããããã°ã¯éçŽãããã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ãšWebã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠè¡šç€ºã§ããŸãããã®ãã®ã³ã°æ©èœã¯ããã©ãããã©ãŒã ã«é¢ä¿ãªãæ©èœããŸããKubernetesãEC2ãGoogle Cloud RunããŸãã¯å¥ã®ãã©ãããã©ãŒã ã䜿çšããŠãããã©ããã«é¢ä¿ãªãããã°ãäžè²«ããŠè¡šç€ºã§ããŸãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠãããŸããŸãªãã©ãããã©ãŒã ã«ãããã€ãããè€æ°ã®ã¢ããªã±ãŒã·ã§ã³ã®ãã°ã衚瀺ã§ããŸãã
Waypoint exec
waypoint execã³ãã³ãã䜿çšããŠããããã€ãããã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããã¹ãã§ã³ãã³ããå®è¡ã§ããŸãããã®æ©èœã䜿çšãããšãã·ã§ã«ãéããããã¹ã¯ãªãããå®è¡ãããããããã€ã¡ã³ãã§ããããããšãäœã§ãå®è¡ã§ããŸãããã®ã³ã°ãšåæ§ã«ãwaypointexecã¯Waypointã§ãµããŒããããŠãããã¹ãŠã®ãã©ãããã©ãŒã ã§æ©èœããŸãã
ãã®ä»ã®å¯èœæ§
ãã®ãªã¹ãã¯ãWaypointã®ããã€ãã®æ©èœã®æŠèŠã§ããWaypointã¯ãç°å¢å€æ°ãä»ããŠã¢ããªã±ãŒã·ã§ã³æ§æã管çããããã«äœ¿çšã§ããCIãŸãã¯Githubãšçµ±åãããŸããã¯ãŒã¯ã¹ããŒã¹ã¯ãåå¥ã®ãã©ã³ãçšã«åå¥ã®ç°å¢ãäœæããããã«äœ¿çšãããŸãããŸãã¯ããã©ã°ã€ã³ãäœæããããšãã§ããŸãããããã ãã§ã¯ãããŸãããWaypointã¯æ°ãããããžã§ã¯ãã®ãã©ã³ãã§ããä»åŸæ°ãæéãæ°ããæ©èœã远å ãç¶ããããšã楜ãã¿ã«ããŠããŸãã
ãŠã§ã€ãã€ã³ããšæ¢åã®ã¢ããªã±ãŒã·ã§ã³
ãã§ã«ã¢ããªã±ãŒã·ã§ã³ãšå±éã¯ãŒã¯ãããŒãããå Žåã¯ã䜿çšã§ãããã©ããçåã«æããããããŸããâŠãéçºããŒã ãWaypointã®ã¯ãŒã¯ãããŒãæåããããã«åæ§ç¯ããã³åæ§ç¯ããããšã¯æåŸ ããŠããŸããããã ããã¯ãŒã¯ãããŒããã§ã«æ§æãããŠããã¢ããªã±ãŒã·ã§ã³ã«Waypointãé©åãããããã«ãdockerpullãã©ã°ã€ã³ãšããŒã«ã«å®è¡æ©èœããããŸããããã«ãWaypointãä»ã®CIïŒCircleCIãŸãã¯JenkinsïŒã«çµ±åããæ¹æ³ã説æããããã¥ã¡ã³ãããããŸãã..ããã®æ©èœã䜿çšãããšãWaypointã€ã³ã¿ãŒãã§ã€ã¹ã§ã®å±éå±¥æŽã®è¡šç€ºãexecã³ãã³ãã®å®è¡ããã®ã³ã°ãã¢ããªã±ãŒã·ã§ã³æ§æãªã©ãè¡ãããšãã§ããŸããå°ãã®åªåã§ããã管çãããããã©ã°ã€ã³ã«ã¢ããã°ã¬ãŒããããã©ãããæ€èšããªãããWaypointã®ã¡ãªããã享åã§ããŸããå€ãã®ã¢ããªã±ãŒã·ã§ã³ãããå Žåããã®ã¢ãããŒãã«ãããã¯ãŒã¯ãããŒãçµã¿åãããŠæ¯èŒããããšãã§ããŸãã
ãã©ã°ã€ã³ã«ãã£ãŠå®å šã«æ¡åŒµå¯èœ
ã©ã€ããµã€ã¯ã«ããžãã¯ã¯å®å šã«æ¡åŒµå¯èœã§ããWaypointã¯ãTerraformãšåããã©ã°ã€ã³ã·ã¹ãã ã§å®è¡ãããŸããWaypointã®ãã©ã°ã€ã³ã®äœæã¯ãTerraformã®å Žåãšåããããç°¡åã§ãïŒåçŽã§ã¯ãªãã«ããŠãïŒãWaypointã«ã¯ãæåãã12ãè¶ ãããã©ã°ã€ã³ãæ§ç¯ãããŠããŸãããªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã®å©ããåããŠããã®æ°ãåçã«å¢å ããããšãé¡ã£ãŠããŸããTerraformã«ã¯ãçºå£²æã«çŽ6ã€ã®ãããã€ããŒããããŸãããçŸåšãTerraformã«ã¯300ã®ãããã€ããŒããããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ã®å±éã§ãå¯èœã§ãããšèããŠããŸãããã©ã°ã€ã³ã®äœæã«èå³ãããå Žåã¯ããã©ã°ã€ã³äœæè åãã®ã¬ã€ããèªã¿ãGithubã«çµã¿èŸŒãŸããŠããWaypoint0.1ãã©ã°ã€ã³ã®ãœãŒã¹ã³ãŒããåç §ããŠãã ããã
ãããžã§ã¯ããªã³ã¯
- Waypoint, , , NodeJS, Python, Ruby, Java , .
- . Waypoint , HashiCorp. , .
- . Waypoint. Waypoint, GitHub Waypoint HashiCorp.
- . Waypoint, , , URL- Waypoint, Twitter #WaypointUp HashiCorp. , , URL Waypoint. .
ç¹ã«Habrovitesã«ã€ããŠã¯ãããã¢ãŒã·ã§ã³ã³ãŒãHABRãäœæããŸãããããã«ããããããŒã«ç€ºãããŠããå²åŒã«ããã«10ïŒ ã®å²åŒãé©çšãããŸãã

- ããŒã¿ãµã€ãšã³ã¹ã®å°éå®¶ããŒãããæãã
- ããŒã¿ãµã€ãšã³ã¹ã®ãªã³ã©ã€ã³ããŒããã£ã³ã
- ããŒã¿ã¢ããªã¹ãã®è·æ¥ããŒããããã¬ãŒãã³ã°ãã
- ããŒã¿åæãªã³ã©ã€ã³ããŒããã£ã³ã
- Python forWebéçºã³ãŒã¹
ãã®ä»ã®ã³ãŒã¹