생산 중의 불로장생약을 관찰하다

Fly networking을 사용하면 프로덕션에서 VPN을 사용하고 Observer를 직접 실행할 수 있습니다.Deploy your Elixir application and try it out!
Elixir, Erlang, 그리고 광속에'Observer'라는 기능이 있다.불로장생의 약에 익숙하지 않은 사람에게 그것을 보여주는 것은 매우 재미있다. 왜냐하면 그것은 너무 멋있기 때문이다.이것은 WxWidgets 그래픽 인터페이스로 실행 중인 Erlang 노드에 실시간으로 연결되어 발생하는 일을 관찰할 수 있습니다.그것은 물건을 수정하는 능력도 한계가 있다. 가장 주의해야 할 것은 실행 중인 프로세스를 중지할 수 있다는 것이다.어떤 것에 문제가 생겼을 때, 혹은 혼돈의 원숭이를 가지고 놀고 싶을 뿐이다. 시스템의 일부분을 죽이고, 그것이 어떻게 회복되는지 보는 것이 도움이 될 것이다.
이 그림은 프로그램의 프로세스 트리를 보여 줍니다.그것을 사용하면 나는 하나의 프로세스를 검사할 수 있고, 심지어는 그것들을 죽일 수도 있다!

Observer를 실행하는 가장 멋진 방법은 로컬 기기에서 UI를 표시할 수 있는 UI를 실행한 다음 생산 서버에 연결하고 멀리서 관찰하는 것이다.그래서 그래...생산 중에 문제가 있습니까?무슨 일이 일어났는지 확실하지 않습니까?너는 뚫고 들어가서 뚜껑을 열고, 찌르고, 찌르고, 사방을 훔쳐보고, 무슨 일이 일어났는지 볼 수 있다.
Fly 플랫폼을 사용하면 애플리케이션을 위한 작업을 손쉽게 수행할 수 있습니다!

우리 뭐하지?


날아라.io 네이티브는 Jason Donenfeld의 놀라운 VPN 프로토콜WireGuard을 지원합니다.IPSec VPN을 만들기 위해 몇 시간을 낭비한 적이 있다면, Wire Guard의 간단함에 놀랄 것이다.Fly의 유연성과 성능은 Fly를 네트워크 구조로 사용합니다.MacOS, iOS, Windows, Linux 등 every major platform에서 지원됩니다.이것은 응용 프로그램이 정상적으로 실행된다면, 내가 쓴 시간보다 더 짧은 시간 안에 개발 기기에서 생산 네트워크로의 안전, 개인, 직접 연결을 열 수 있다는 것을 의미한다.멋있죠?
이게 우리가 해야 할 일이야.

서버에 동적으로 연결할 수 있는 안전한 WireGuard 터널을 구축할 것입니다.이 그림에는 두 개의 my_app Elixir 노드가 모여 동적 운행을 한다.
로컬 기기에서, 우리는 원격 Elixir 노드 그룹에 가입하기 위해 IEx 단말기를 열 수 있다.Google 로컬 시스템은 Observer 실행 및 UI 그리기를 지원합니다.우리는 로컬 관찰자와 군집 중의 원격 노드를 사용하여 대화합니다!

그것을 발생시키다


이 점을 테스트하기 위해서, 나는 this guide를 따르고 변경 사항을 다구역 Tic-Tac-Toe game created here에 적용했다.github 환매 협의project is here.
다음은 우리가 해야 할 일이다.
  • Elixir 버전을 구성하여 저희가 제공한 쿠키 값을 사용합니다.
  • Fly용 WireGuard를 설정합니다.이 기술은 프로덕션 전용 네트워크에 직접 연결할 수 있는 VPN 기술입니다.
  • Observer를 시작하기 위한 간단한 스크립트를 만듭니다.
  • 관찰자를 발사하고 탐색하라!
  • 마찬가지로 guide here에 따라 당신의 프로젝트를 어떻게 이 정도까지 할 수 있는지 한 걸음 한 걸음 상세하게 설명합니다.

    여러 지역에서 지원됩니까?


    Elixir 노드가 함께 모여 다른 영역에서 실행될 때 관찰자는 클러스터의 모든 노드에 연결할 수 있습니다.
    TicTac 프로젝트를 변경하여 여러 지역에 배포한 후에 TicTac 프로젝트가 어떻게 작동하는지 살펴보겠습니다.
    fly status
    
    ...
    
    Instances
    ID       VERSION REGION DESIRED STATUS  HEALTH CHECKS      RESTARTS CREATED
    79510f86 17      fra    run     running 1 total, 1 passing 0        23m39s ago
    df93ea35 17      lax(B) run     running 1 total, 1 passing 0        24m3s ago
    
    나는 게임을 two regions까지 확장했다.하나는 진입fra(독일 프랑크푸르트), 다른 하나는 진입lax(미국 캘리포니아주 로스앤젤레스)이다.
    내가 로컬에서 Observer를 열었을 때, 나는 tictactoe의 두 개의 원격 실례를 보았다.

    내 어플리케이션 탐색


    나는 인터넷에서 게임을 하기 시작했고, Observer로 게임을 훑어보고 찾았다.파란색으로 강조 표시되며 에서 연결됩니다GameRegistry.

    Observer를 사용하면 선택한 게임 프로세스를 두 번 눌러서 GenServer의 상태를 볼 수 있습니다.이것은 내가 그것을 두 번 눌렀을 때의 상태 스냅샷을 보여 준다.나는 노란색으로 게임 상태의 일부 재미있는 부분을 돋보이게 했다.

    만약 상태 데이터가 왜 이상하게 보이는지 알고 싶다면 (적어도 Elixir와 다르다), 이것은 데이터 형식의 Erlang 표시이기 때문이다.

    혼돈원숭이를 가지고 놀다


    Observer로 프로세스를 식별하고 검사하며 죽일 수도 있는 재미있는 일을 할 수 있다.어떤 일들이 잘 표현되지 않고, 당신이 더 많은 상황을 알고 싶을 때, 이것은 도움이 될 것이다.이것은 또한 시스템이 의외의 고장에서 어떻게 회복되는지 테스트하는 데 도움을 줄 수 있다.
    나는 이미 게임을 실행하는 과정을 확정했다.오른쪽 단추를 누르면 죽이기를 선택할 수 있습니다.게임 서버가 죽었을 때 무슨 일이 일어날까요?

    게임 프로세스를 끝낸 후, 나는 새로운 프로세스가 즉시 시작되는 것을 보았다.내가 어떻게 알아?PID(프로세스 ID) 값이 다릅니다.

    그래서 내 시스템이 손상을 격리한 것처럼 보인다. 왜냐하면 한 게임이 붕괴될 때 다른 실행 중인 게임은 영향을 받지 않기 때문이다.예!내 시스템이 계속 실행 중이야!
    사용자가 게임을 하는 측면에서 볼 때, 그것은 그렇게 우아하지 않다.유저는 회복할 수 있지만 페이지를 다시 불러오거나 게임 가입 처리를 다시 시작해야 합니다.나는 사용자에게 붕괴 복구를 더 잘 제공할 수 있도록 사용자 체험이 개선될 수 있다고 생각한다.
    이것은 효과가 풍부한 실험이다!

    지금 해봐.


    Phoenix 응용 프로그램 비행을 배치하고WireGuard VPN을 설정하며 생산 과정에서 응용 프로그램을 관찰하기 시작합니다!
    불로장생의 약이 있으면, 너는 탄성 시스템을 세울 수 있다!파리는 그것들을 관찰하는 것을 쉽게 한다.주정부 청사에서 발굴하면 당신은 무엇을 발견할 수 있습니까?
    Deploy your Elixir App!

    좋은 웹페이지 즐겨찾기