Ir para conteúdo
  • Cadastre-se

Colocando um servidor l2jserver online em 10 minutos - Uma abordagem de 2020.


Grundor

Posts recomendados

  • L2JBr ADM

Fala papangus!

Faz tempo que eu não deixou aqui uma contribuições de tutorial, hoje eu vou ensinar a forma mais fácil e sem complicações de rodar um servidor l2jserver H5 em menos de 10 minutos.

Sem instalações complicadas, você precisará de 2 coisas:

  • GIT - você baixará o código fonte através do git, então é importante que ele esteja instalado em seu computador , não vou repetir o processo de instalação, ele já está documentado nesse tutorial aqui:
  • DOCKER: 

docker_facebook_share.png

 

De forma resumida, o Docker é uma plataforma de código aberto, desenvolvido na linguagem Go e criada pelo próprio Docker.Inc. Por ser de alto desempenho, o software garante maior facilidade na criação e administração de ambientes isolados, garantindo a rápida disponibilização de programas para o usuário final.

O Docker tem como objetivo criar, testar e implementar aplicações em um ambiente separado da máquina original, chamado de container. Dessa forma, o desenvolvedor consegue empacotar o software de maneira padronizada. Isso ocorre porque a plataforma disponibiliza funções básicas para sua execução, como: código, bibliotecas, runtime e ferramentas do sistema.

A grande vantagem no uso da plataforma é a rapidez em que o software pode ser disponibilizado — em uma frequência até 7 vezes mais rápida do que a virtualização convencional.

Outro benefício oferecido pela plataforma é a possibilidade de configurar diferentes ambientes de forma rápida, além de diminuir o número de incompatibilidades entre os sistemas disponíveis.

Um arquivo Docker pode ser formado por diversas camadas diferentes, onde se dividem em dois grupos:

  • Imagens: elas são formadas por diferentes camadas. Com a sua utilização, o usuário pode facilmente compartilhar um aplicativo ou um conjunto de serviços em diversos ambientes. Quando há alguma alteração na imagem, ou uso de um comando como executar ou copiar, é criada uma camada.
  • Containers: são formadas na reutilização das camadas. Um container é o local onde estão as modificações da aplicação que está em execução. É por meio dele que o usuário pode modificar uma imagem.

 

Como instalar o docker?

 

Você pode instalar o docker em praticamente todos os sistemas operacionais através dos instaladores ou gerenciador de pacotes, o docker é um serviço e um uma aplicação de linha de comando, siga as instruções abaixo para instalar o docker no seu sistema operacional:

  • O conteúdo está oculto, favor efetuar login ou se cadastrar!
     (Opite pela opção Stable)
  • O conteúdo está oculto, favor efetuar login ou se cadastrar!
    (Pode ser que essa opção não funcione corretamente)
  • O conteúdo está oculto, favor efetuar login ou se cadastrar!
  • O conteúdo está oculto, favor efetuar login ou se cadastrar!
  • O conteúdo está oculto, favor efetuar login ou se cadastrar!
  • O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Vou seguir a instalação pelo windows 10, mas o procedimento é o mesmo no linux e outro sistema operacional.

No windows você sabe que o docker está rodando e instalado clicando na bandeja de icones do windows, ao lado do relógio, haverá um ícone de uma baleia carregando containers dê 2 clicks sobre o icone:

image.png

Irá abrir o painel de controle do docker indicando que o serviço do docker está rodando:

 

image.png

 você pode fechá-lo agora, se quiser explore um pouco as opções e aprenda mais sobre o docker.

Agora será necessário que você abra o Windows Power Shell, para fazer isso  é só abrir o painel de controle e pesquisar por power shell.

Verifique se os clientes docker e docker composer estão funcionando corretamente digitando os seguintes comandos:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

O conteúdo está oculto, favor efetuar login ou se cadastrar!

A saída deve ser algo assim:

image.png

 

Como instalar a imagem docker do L2jServer?

Vamos agora clonar o repositório que a l2jserver publicou com seu seviço docker usando o comando:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

O resultado deve ser como a imagem abaixo:

image.png

Você verá que alguns arquivos foram baixados:

image.png

Os arquivos que nos interessam aqui são:

  • Dockerfile: É o arquivo de imagem, dentro dele há as instruções de como é feita a instalação da imagem Docker.
  • docker-compose.yml:  É o arquivo configurável,  é nele que vamos fazer as modificações e as configs para que o docker-commposer possa orquestrar a inicialização dos containers.
  • entry-point.sh: É o arquivo que executa quando você inicia um container ou contêiner( em português)

 

Configurando o servidor antes de inicializar

A configuração do servidor é feita através de variáveis de ambiente, e é dentro do arquivo docker-compose.yml que iremos fazer as mudanças:

Abra o arquivo com algum editor de texto que forneça a função "highlight" como o notepad++ , assim ficará mais fácil identificar caso você digite algo errado.

Os arquivos YML utilizam a syntaxe parecida com a linguagem de programação Python, e atráves da identação ( colunas de espaços vazios e tabs) que sabemos como cada bloco do código é configurado.

Eu habilitei os caracteres invisívels clicando no icone image.png para poder visualizar esses espaços corretamente:

 

image.png

Agora a explicação de cada uma das tags acima exibidas:

  • version: indica a versão da sintaxe  do docker-compose que irá rodar (algo parecido como php 5.6, php 7, etc), para mais info acesse 
    O conteúdo está oculto, favor efetuar login ou se cadastrar!
  • services:  É uma lista com os  contêiners que irão rodar, nesse caso haverá 2 containers, o mariadb e o l2jserver, vejam que ambos estão com 2 espaços antes do nome, isso indica que eles estão no mesmo nível de identação.
    • Dentro de cada serviço você encontrará as seguintes tags:
      • container_name: Nome do container.
      • image: nome da imagem do container no docker hub: 
        O conteúdo está oculto, favor efetuar login ou se cadastrar!
         que é uma espécie de repositório de imagens.
      • volumes: Nome do volume é o nome de uma pasta que irá montar no filesystem, sem um volume os arquivos gerados pelo container serão destruídos quando o container estiver parado.
      • restart: Indica o comportamento de restart em caso de falha do container, no caso ficou como always, o que indica que o container ficará reiniciando em caso de falha.
      • environment: são chaves e valores de variáveis de ambiente, é a forma como você envia ao container variáveis de configuração (similar ao que é feito no arquivo .properties e .ini)  vou explicar melhor abaixo.
      • ports:  é o mapeamento de portas do container para o computador, no caso da configuração  "7777:7777" significa que o container irá fazer o foward da porta 7777 (gameserver) para a porta 7777 do seu computador ou servidor, sendo assim você pode publicar seu servidor na internet.

Como configurar variáveis do contêiner

Como vimos ali em cima  a chave environment é responsável por passar configurações ao container.

No container mariadb você irá configurar a chave MYSQL_ROOT_PASSWORD que indica qual é a senha do usuário roto no banco de dados que você irá setar, vamos manter aqui como root. (sim vc vai poder conectar seu navicat no banco de dados usando essa senha do mysql)

No meu caso, eu ainda vou modificar a porta de saída do mysql para 3307, pois eu já tenho um mysql rodando em localhost na minha máquina ficando assim:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Já o contêiner l2jserver que contém o login server e o gameserver existe uma vasta gama de variáveis , por padrão essas são as variáveis definidas:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

Não recomendo removê-las, apenas modificar caso seja necessário.

Essa aqui é a lista completa  de variáveis com os respectivos valores padrão e para que serve cada uma:

 
  • SERVER_IP : Seu IP público ou privado do servidor (default: "127.0.0.1")
  • JAVA_XMS : Memória inicial alocada pelo Java  (default: "512m")
  • JAVA_XMX : Memória máxima que o Java poderá alocar (default: "2g")
  • RATE_XP : Rates para ganho de  XP (default: "1")
  • RATE_SP : Rates para ganho de  SP (default: "1")
  • ADMIN_RIGHTS : Todo mundo tem permissão de admin, bom para criar o primeiro admin (default: "False")
  • FORCE_GEODATA: Força a utilização do geodata (default: "False")
  • COORD_SYNC: Utiliza o sistema de sincronização de coordenadas (default: "-1")
  • HELLBOUND_ACCESS: Permite entrar em Hellbound sem a a Quest (default: "False")
  • WEIGHT_LIMIT: Multiplica o limite de peso dos personagens (default: "1")
  • TVT_ENABLED: Habilita o evento de Team Vs Team(default: "False")
  • SAVE_GM_SPAWN_ON_CUSTOM: Salva os spawns de npc que o admin realiza (default: "False")
  • CUSTOM_SPAWNLIST_TABLE: Habilita o diretório custom de spawns (default: "False")
  • CUSTOM_NPC_DATA: Habilita dados de NPC Custom (default: "False")
  • CUSTOM_TELEPORT_TABLE:  Habilita a tabela custom de teleports (default: "False")
  • CUSTOM_NPC_BUFFER_TABLES: Habilita NPC Buffer com opção de criação de macros (schema buffer) (default: "False")
  • CUSTOM_SKILLS_LOAD: Habilita custom skills(default: "False")
  • CUSTOM_ITEMS_LOAD: Habilita custom items  (default: "False")
  • CUSTOM_MULTISELL_LOAD: Habilita  multisell data (default: "False")
  • CUSTOM_BUYLIST_LOAD: Habilita  buylist data (default: "False")
  • DATABASE_ADDRESS : IP  ou host name do servidor MariaDB (default: "mariadb")
  • DATABASE_PORT : Número da porta do servidor MariaDB (default: "3306") [no meu caso eu posso manter pois so modifiquei a porta externa de direcionamento [
  • DATABASE_USER : Usuário do banco de dados com privilégios de admin do servidor MariaDB (default: "root")
  • DATABASE_PASS : Database password for user with admin priviledges (default: "root")
  • LAN_ADDRESS : Rede externa que o cliente irá se conectar ao servidor (default: "10.0.0.0")
  • LAN_SUBNET : Subrede externa External network subnet,  usada pelo server para se comunicar com o cliente (default: "10.0.0.0/8")
  • QUEST_MULTIPLIER_XP : Multiplicador de ganho de XP por quest (default: "1")
  • QUEST_MULTIPLIER_SP : Multiplicador de ganho de SP por quest (default: "1")
  • QUEST_MULTIPLIER_REWARD : Multiplicador de ganho de Itens/Premio por quest (default: "1")
  • VITALITY_SYSTEM : Habilita  Vitality system (default: "True")
  • AUTO_LEARN_SKILLS : Aprendizado automático de skills no levelup e login (default: "False")
  • MAX_FREIGHT_SLOTS : Numero máximo de itens que o player pode adicionar ao  Freight (default: "200")
  • DWARF_RECIPE_LIMIT : Limite de recipes aprendidos pelos anões (default: "50")
  • COMM_RECIPE_LIMIT : Limite de recipes Common para todas as classes (default: "50")
  • CRAFTING_SPEED_MULTIPLIER : Delay para processo de craft para o servidor, quanto maior mais tempo demora para que o item seja craftado. (default: "1")
  • FREE_TELEPORTING : Habilita teleport free para todo mundo (default: "False")
  • STARTING_ADENA :  Total de adena que o novo personagem irá ganhar  (default: "0")
  • STARTING_LEVEL : Nível inicial do novo personagem (default: "1")
  • STARTING_SP : Quantidade de SP que o novo personagem irá ganhar (default: "0")
  • ALLOW_MANOR : Habilita  Manor System (default: "True")
  • SERVER_DEBUG: Habilita server debugging, não recomendado em servidores de produção (default: "False")
  • MAX_ONLINE_USERS:  Quantos personagens estão permitidos conectar simultâneamente no servidor  (default: "500")
  • MAX_WAREHOUSE_SLOTS_DWARF: Capacidade da wharehouse dos anões. Esse valor deve ser menor que 30 ou haverá crash no cliente . (default: "120")
  • MAX_WAREHOUSE_SLOTS_NO_DWARF: Capacidade da wharehouse das outras raças. Esse valor deve ser menor que 30 ou haverá crash no cliente (default: "100")
  • MAX_WAREHOUSE_SLOTS_CLAN: Capacidade da wharehouse dos clãs. Esse valor deve ser menor que 30 ou haverá crash no cliente (default: "200")
  • PET_XP_RATE: Multiplicador de XP para levelup dos pets (default: "1")
  • ITEM_SPOIL_MULTIPLIER : Multiplicador da quantidade de itens obtidos através do spoil quando skills como Sweeper(Spoil) for usada (default: "1")
  • ITEM_DROP_MULTIPLIER : Multiplica a quantidade de itens dropados de um MOB quando ele morre. (default: "1")

Iniciando o contêiner

Com todo seu servidor configurado é hora de por ele pra rodar!

Para iniciar os 2 containers você irá digitar o comando dentro da pasta "l2j-server-docker"

O conteúdo está oculto, favor efetuar login ou se cadastrar!

O  atributo -d significa que o serviço irá rodar como um daemon, ou seja irá liberar o console após a execução mas continuará rodando em background.

Nesse momento as imagens e o código fonte serão baixados, você pode só assistir , todo o trabalho sujo está sendo feito pelas imagens docker.

image.png

 

Lembre-se de permitir o acesso do docker à sua interface de rede, caso contrário você terá que fazer a configuração manual do seu firewall

image.png

 

Após a finalização  o status dos nossos 2 containers deve ser "done"

 

image.png

Você pode verificar se os containers estão rodando com o comando

O conteúdo está oculto, favor efetuar login ou se cadastrar!

image.png

Lembra do ícone da baleia no cantinho da barra de ícones, você também vai poder inspecionar seus novos containers por lá:

image.png

 

Com um cliente H5 você já será capaz de logar no seu novo servidor, todo esse processo leva menos de 10 minutos quando o docker já está instalado, e menos de 10 segundos quando você já tem o cache das imagens docker.

Essa imagem Docker do l2jserver utiliza o linux Alpine na versão 3.12.0, é uma versão linux que sua imagem tem apenas 124MB com apenas o essencial, muito otimizada para a execução, o que trará o máximo de performance para seu servidor.

 

Depurando e inspecionando seus containers

Um dos processos mais importantes  da administração de um servidor de lineage 2 é a a depuração e inspeção de logs, com container o processo pode ser um pouco diferente do habitual "tela de console"  ou abrir um arquivo .log.

Você terá que olhar isso através de comandos ou pelo painel do docker que mostrei ali em cima.

Por exemplo, para olhar as últimas 10 linhas e continuar acompanhando o log nós vamos usar o comando docker logs seguido do nome do container o parâmetro --tail 10  e o atributo -f (follow) :

O conteúdo está oculto, favor efetuar login ou se cadastrar!

image.png

Aparentemente tudo okay no nosso servidor 🙂 para sair do modo "follow" do log vc pode utilizar o comando ctrl+c.

A outra opção é direto pela interface do docker:

image.png

Você ainda pode ligar e desligar o servidor com os comandos stop e start do docker-compose

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Lembrando que o comando pelo docker-compose irá parar tanto o l2jserver com o mariadb.

Para parar individualmente o processo mais simples é usando o painel (no windows) image.png

Nessa mesma interface você também terá acesso ao console (linux) do container no botão que fica ao lado do STOP o CLI

image.png

Okay, mas se eu quiser modificar alguma coisa?

Como eu falei,  o docker é um container de execução, o ideal é você já deixar tudo pronto e utilizá-lo apenas para rodar, garantindo à ele o acesso ao melhor do sistema operacional e compatibilidade, permitindo que você rode o serviço dentro de uma plataforma estável livre de bugs sistêmicos.

Todo esse benefício  torna a customização  um paço um pouco mais custoso.

 

Existe 2 abordagens para você customizar os arquivos dentro do servidor:

A primeira abordagem é criando é a sugerida pelos desenvolvedores da l2jserver, que eu particularmente não usaria, mas vou passar aqui pra vocês com algumas modificações, o comando que está no readme.md , vc verá ele copiando a pasta inteira do container, isso irá incluir arquivos do sistema operacional. vou modificar o "./" para "/opt/l2j" que é a pasta onde estão os arquivos do servidor.

Essa abordagem consiste em você parar o container e copiar arquivos para dentro do container através do comando docker cp, que significa copy&paste.

Para isso vamos parar o nosso container do l2jserver

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Vamos copiar os arquivos do servidor para nossa pasta "custom" ,  lembrando que esse processo pode demorar, então você pode modificar os caminhos a serem copiados, inclusive copiando apenas 1 arquivo específico, basta modificar o path para o caminho do arquivo que quer modificar.

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Esse comando irá copiar todos os arquivos dentro do container para sua pasta "custom", então você poderá modificar e então fazer o caminho indicado pelos desenvolvedores.

Haverá dentro da pasta custom, uma pasta server e dentro dela haverá os arquivos para você editar na estrutura já conhecida por muitos aqui:

image.png

Após fazer as edições  copie novamente os arquivos para dentro do container fazendo o caminho inverso:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

depois basta iniciar o servidor novamente:

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Lembrando que se você não quer perder seus arquivos editados não use mais o comando down, e sim o stop à partir de agora, o comando  down irá remover todos os arquivos e fazer novamente o build do servidor.

O conteúdo está oculto, favor efetuar login ou se cadastrar!

A outra abordagem é você modificando o o arquivo Dockerfile mudando os repositório git para repositórios seus, cópias modificadas do l2jserver.

O Arquivo dockerfile é um arquivo bem pequeno com alguns comandos Linux e instruções de configuração do docker, uma delas é o método RUN que contém todo o processo de instalação do ambiente l2j, do build do source code ao start.

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

nas linhas 17,18,19 e 20 você encontrará comandos de git clone, esses comandos são responsáveis por baixar os códigos fonte  que posteriormente serão compilados pelas linhas abaixo.

image.png

Se você alterar os repositórios para o seu "fork" do l2j o sistema deverá funcionar normalmente e vc não precisará aplicar as configurações diretamente no arquivo, fazendo do git sua pasta de edição do servidor:

  •   O repositório 
    O conteúdo está oculto, favor efetuar login ou se cadastrar!
     é responsável pelo l2j cli, ferramento de configuração do l2j.
  •   O repositório 
    O conteúdo está oculto, favor efetuar login ou se cadastrar!
      contém o login server.
  •   O repositório  
    O conteúdo está oculto, favor efetuar login ou se cadastrar!
     contém o gameserver, aqui que vc vai instalar seus mods.
  •   O repositório
    O conteúdo está oculto, favor efetuar login ou se cadastrar!
     contém o datapack , os atributos de multisell, npc, buylist, instâncias e outros estão aqui.

Em muitos casos apenas o repositório "datapack" será modificado, deixe o modo DEV aflorar e comece um repositório git com o nome do seu servidor.

 

Depois que modificar o seu Docker file é só executar o Down e up que o seu servidor já estará sendo executado à partir do seu repositório.

Se você tiver outra abordagem poste ai nos comentários.

 

Na minha opinião, a maior vantagem de ser ter um servidor desses em docker é que você modifica e sobre alterações de forma muito rápido, containers já é o futuro da programação e desenvolvimento e é uma ótima tecnologia para se aprender, profissionais que sabem trabalhar com containers realmente estão à frente dos demais no mercado de trabalho.

    

E é isso papangus, uma forma simples de iniciar o servidor, sem compilações complicadas, sem mexer com códigos longos e complexos, apenas alguns comandos básicos o poderoso Docker.

  • Gostei 9
  • Amei 2
  • Obrigado 2

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

  • Grundor changed the title to Como levantar um servidor l2jserver em 10 minutos - Uma abordagem de 2020.
  • Grundor pinned e featured this Tópico

  • Grundor changed the title to Colocando um servidor l2jserver online em 10 minutos - Uma abordagem de 2020.

Este tutorial tambem serve para l2jserver interlude ?

Ola prazer , estou aqui para formar amizades e aprender tudo sobre lineage 2

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
12 horas atrás, New Games disse:

Este tutorial tambem serve para l2jserver interlude ?

Sim, mas você teria que modificar o arquivo Dockerfile para fazer checkout no branch do interlude:

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

As linhas modificadas foram a do datapack e do gameserver.

 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

 

Edit, talvez tenha que fazer modificações no entry-point devido alguma alteração que não esteja okay.

 

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM

Para quem quiser se aprofundar um pouco mais nessa abordagem, 
 

Repositório com os arquivos docker
 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

 

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

Achei interessante seu tutorial @Grundormas tenho uma pergunta

Os métodos atuais suprem as necessidades de um servidor privado

Por que usaríamos essa metodologia? 

Um mundo de diversão no Lineage 2

https://www.primeworld.com.br

Discord: Em breve

Comunidade brasileira de Lineage. Interlude Remastered / High Five / Essence 

Classes remasterizadas, sistemas únicos, diversão garantida.

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
On 11/21/2020 at 6:55 PM, Lire said:

Achei interessante seu tutorial @Grundormas tenho uma pergunta

Os métodos atuais suprem as necessidades de um servidor privado

Por que usaríamos essa metodologia? 

Imagine que isso aqui é um assunto introdutório, o docker é mais para despertar à curiosidade da comunidade sobre essa tecnologia que já é usada por várias empresas, imagine que pra fazer o deploy de um servidor a única coisa que vc precisa instalar é o docker, e nada mais.

Estamos discutindo num grupo privado do l2jserver (aonde estou de consultor) com a possibilidade de se escalar horizontalmente (significa ter mais serviços/servidores rodando uma aplicação que entregam um  conteúdo elástico, imagine que vc consegue ligar um servidor com muito pouco recurso e ele vai se esticando para caber mais players, assim vc não precisa de um servidor de 16gb de ran com 20 players online.

O docker é a porta de entrada pra isso. 

O docker em sí, no seu pc, é ótimo para o desenvolvimento, vc consegue fazer o deploy muito rápido de novos assembles, em produção, vc tem a estabilidade do serviço, se um container falha vc consegue em menos de 1 segundo fazer com que outro assuma (mais ai é algo mais avançado).




Bom, se tudo der errado vc ganhou expertise em containers que é algo que o mercado de trabalho precisa bastante hahaha.

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites

5 horas atrás, Grundor disse:

 

haha amei a explicação, obrigado :D 

Um mundo de diversão no Lineage 2

https://www.primeworld.com.br

Discord: Em breve

Comunidade brasileira de Lineage. Interlude Remastered / High Five / Essence 

Classes remasterizadas, sistemas únicos, diversão garantida.

Link para o comentário
Compartilhar em outros sites

9 horas atrás, Grundor disse:

Estamos discutindo num grupo privado do l2jserver (aonde estou de consultor) com a possibilidade de se escalar horizontalmente (significa ter mais serviços/servidores rodando uma aplicação que entregam um  conteúdo elástico, imagine que vc consegue ligar um servidor com muito pouco recurso e ele vai se esticando para caber mais players, assim vc não precisa de um servidor de 16gb de ran com 20 players online.
 

Sabe de alguma empresa que trabalhe dessa forma? Sem que tenha que desligar máquina reiniciar aplicações?

Cerca de 90% do cenário hoje em dia faz uso de emulação de uma VM com SO que convenhamos que é literalmente uma merda compartilhar hardware entre os usuários onde nunca é possível equilibrar o uso.

Única que eu sei que você pega uma máquina e consegue escalar os recursos dela conforme você necessita com exceção do Disco se colocar permanente é o Google Cloud, é acessível em termos de $ o custo é cobrado por USO/Hora, Conhece alguma outra?

 

Pessoal que abre servidor Hoje em dia deveria dar uma olhada no Google Cloud é melhor do que esses VPS compartilhado com sabe-se lá quantos user =/

Link para o comentário
Compartilhar em outros sites

queria deixar aqui minha contribuição, talvez nao seja muita coisa. Depois de tanto tempo sugando informações dentro do forum sem deixar nada de significativo. resolvi aprender a programar de verdade. Minha primeira experiencia com algo perto de programação foi com lineage. mas vale salientar que os DEVs de verdade aqui dentro da comunidade ao meu ver, sao os que programam as REVs. Criam conteudo, nao apenas editam.

Eu me deparei com essa tecnologia pela primeira vez usando a HEROKU.COM e posso dizer que foi pra mim revolucionario. Certo que eu nao mexo mais com LINEAGE, hoje sou desenvolvedor de BOTs para discord.

 

o que mais me chamou a atenção é a facilidade de criar, editar versões do seu projeto em produção. trabalhar em equipe tambem é muito bom quando se usa algo assim, pois cada um pode fazer seus testes em clusters isolados. 

 

hoje tenho um projeto escrito em python, atualmente nao programo mais em plataformas como heroku. pois estou usando linux.

mas segue ai o link do projeto

O conteúdo está oculto, favor efetuar login ou se cadastrar!

uma das maiores vantagens da heroku, enquanto la eu trabalhava era usar o papertrail nativamente, alem de usar o mongodb (pela mongoatlas) e ter acesso ao painel de pront (remotamente) do meu celular onde quer que eu estivesse, alais coisa que sinto falta ate hoje, desde que miguei para linux
image.thumb.png.55bb5a07424395376d425b74d72e3492.png
 

fazendo uma menção ao @Bian eu tambem ate hoje nao encontrei uma empresa que fizesse isso, no maximo aquelas em que usam o github para fazer auto deploy, porem mesmo assim reiniciando a aplicação toda vez que o mesmo acontece.

vou ficar de olho nesse post, acredito que irei sugar mais conhecimento daqui do que em toda a minha vida poderia retornar. @Grundor saudades de voce TIO, faz tempo que a gente nao se fala. so queria agradescer por tudo, pelo primeiro empurrão a essa vida de programador. devo muito a essa comunidade e nunca poderei pagar por tal façanha.

Te Ajudei? Curte ai para me ajudar!
Ass.: Daniel Amaral

Denky Project Is Coming Soon, Acessem o Site: Denky Project

Link para o comentário
Compartilhar em outros sites

  • L2JBr ADM
18 hours ago, Bian said:

Sabe de alguma empresa que trabalhe dessa forma? Sem que tenha que desligar máquina reiniciar aplicações?

Poucas empresas trabalham com Docker em produção de forma direta, de certa forma, o Container por sí só já é suficiente  para a aplicação inteira funcionar, vc não precisa lidar com embaraços do sistema operacional. 


Mas em produção geralmente é preferível o Kubernetes que é um sistema que faz toda a orquestração dos containers.

18 hours ago, Bian said:

literalmente uma merda compartilhar hardware entre os usuários onde nunca é possível equilibrar o uso.

Com containers isso não é problema, ele foi desenhado para esse tipo de coisa, porém a aplicação precisa estar adaptada para tirar vantagem dessa arquitetura.

Neo Kobo: Container and Virtual Machine Differences

18 hours ago, Bian said:

Única que eu sei que você pega uma máquina e consegue escalar os recursos dela conforme você necessita com exceção do Disco se colocar permanente é o Google Cloud, é acessível em termos de $ o custo é cobrado por USO/Hora, Conhece alguma outra?

Processador e memória ran aumentando é uma escala vertical, com o docker é ideal é vc lidar com uma escala horizontal, aonde novos containers entram na jogada para suprir uma demanda de operação.

Mas existem alguns clouds no mercado como azure e aws, cada um com vantagens e desvantagens distintas, eu listei aqui algumas hospedagem free para deploy de pequenos containers

On 10/8/2020 at 3:55 PM, Grundor said:

Você pode ainda fazer deploy free de containers em alguns provedores :

  • Heroku: 
    O conteúdo está oculto, favor efetuar login ou se cadastrar!
  • Azure: 
    O conteúdo está oculto, favor efetuar login ou se cadastrar!
  • Docker: 
    O conteúdo está oculto, favor efetuar login ou se cadastrar!
  • Google: 
    O conteúdo está oculto, favor efetuar login ou se cadastrar!
     

entre outros 

O education pack do github: 

O conteúdo está oculto, favor efetuar login ou se cadastrar!
 tem uma lista ainda maior 

Vc ainda pode montar seu próprio com uma plataforma chamada OpenStack, que permite que vc crie seu próprio cloud.

Hj em dia as aplicações não usam muito disco, já que é o ativo mais caro do mercado, mas sim object storages, in-memory, e bancos de dados não relacionais para armazenar seus binários.

 

18 hours ago, Bian said:

Pessoal que abre servidor Hoje em dia deveria dar uma olhada no Google Cloud é melhor do que esses VPS compartilhado com sabe-se lá quantos user =/

Isso é verdade em partes, ele começa a ficar caro quando vc precisa de um suporte um pouco acima do básico, os recurso também vão ficando caro principalmente por serem indexados via dolar.

 

 

 

2 hours ago, Denky said:

queria deixar aqui minha contribuição, talvez nao seja muita coisa. Depois de tanto tempo sugando informações dentro do forum sem deixar nada de significativo. resolvi aprender a programar de verdade. Minha primeira experiencia com algo perto de programação foi com lineage. mas vale salientar que os DEVs de verdade aqui dentro da comunidade ao meu ver, sao os que programam as REVs. Criam conteudo, nao apenas editam.

Eu me deparei com essa tecnologia pela primeira vez usando a HEROKU.COM e posso dizer que foi pra mim revolucionario. Certo que eu nao mexo mais com LINEAGE, hoje sou desenvolvedor de BOTs para discord.

@Denky quanto tempo champs! muito bom vê-lo por aqui.

Muito interessante seu relato, muita gente começou assim, eu também iniciei na programação por diversão, não lineage2 mas foi o lineage2 e a l2jbrasil que maturou minhas habilidades.

 

2 hours ago, Denky said:

hoje tenho um projeto escrito em python, atualmente nao programo mais em plataformas como heroku. pois estou usando linux.

Acho que esse projeto aqui pode ser de seu interesse: 

O conteúdo está oculto, favor efetuar login ou se cadastrar!

Os caras realmente já estão em 2032 hehehehe.

 

 

2 hours ago, Denky said:

vou ficar de olho nesse post, acredito que irei sugar mais conhecimento daqui do que em toda a minha vida poderia retornar. @Grundor saudades de voce TIO, faz tempo que a gente nao se fala. so queria agradescer por tudo, pelo primeiro empurrão a essa vida de programador. devo muito a essa comunidade e nunca poderei pagar por tal façanha.

Aqui vai ser um tópico para centralizar a informação de docker para l2j, certamente vamos ouvir mais sobre isso no futuro.

Que bacana que eu tive alguma influência na suas escolhas e que está contente com isso, obrigado por compartilhar.

 

EJoOSOj.gif

Sua pergunta foi respondida? Certifique-se de marcar a resposta como a solução aceita.
Se existe mais de uma resposta, utilize o "vote up" para destacá-la.
Se você achar uma resposta útil, diga obrigado clicando no botão "Gostei".

Link para o comentário
Compartilhar em outros sites





×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.