Sealos: Entre nuvem pública e nuvem privada, escolho o terceiro caminho

【Criador diz】 Criado em nome de FOSS.

Há algum tempo, a controvérsia entre migração para nuvem e migração para nuvem estava em pleno andamento.O preço, a segurança e a transparência das nuvens públicas foram questionados, e os custos de serviço e manutenção das nuvens privadas também foram questionados. Justamente quando os dois lados estavam em desacordo, um novo projeto chamou nossa atenção - Sealos, um sistema operacional em nuvem. Entre a nuvem pública e a nuvem privada, ele escolheu o terceiro caminho - tornar a nuvem pública Nuvens privadas abstraídas juntas.

Fang Haitao, autor de Sealos, já atuou como chefe da plataforma de contêineres da iFlytek e mais tarde foi responsável pela plataforma de integração nativa da nuvem no Alibaba Cloud. Ele liderou o projeto do selador e doou-o à comunidade CNCF. Ele se sente “um empreendedor de coração” e iniciou seu primeiro negócio já em 2016, mas infelizmente fracassou. A taxa de desenvolvimento de Sealos duplica todos os anos, o que lhe dá uma nova esperança. Depois de receber o investimento de Qiji Chuangtan, ele rapidamente atraiu seus velhos amigos e colegas para fundar a Huanjie Cloud Computing Company. Desde o lançamento do produto Sealos, em junho de 2023, o número de usuários cadastrados ultrapassou 80 mil em apenas meio ano e a renda mensal ultrapassou 300 mil.

Fang Haitao acredita que, embora a atual nuvem pública e a nuvem privada estejam brigando ferozmente, na verdade, cada uma tem seus próprios problemas e cenários aplicáveis. Não faz sentido falar de vantagens sem cenários. Ele acredita que não há diferença essencial entre nuvem pública e nuvem privada. Ambas conectam recursos de computação. Elas podem tornar um sistema operacional em nuvem tão fácil de usar quanto o Android . Qualquer pessoa que queira usar a nuvem pode simplesmente instalar uma . E agora, essa ideia se tornou realidade.

 

01 As engrenagens do empreendedorismo voltam a girar

Após seu primeiro fracasso empresarial, Fang Haitao voltou ao papel de simples programador. Uma noite, para resolver os problemas de instalação e alta disponibilidade da versão inicial do K8s, Fang Haitao colocou um script de instalação que escreveu no mercado Alibaba Cloud e chamou-o de "kubeinit" por 15 yuans por cópia. Inesperadamente, alguém realmente comprou. Olhando para a receita, Fang Haitao ficou muito animado, como se tivesse visto o futuro império empresarial. Porém, esta primeira versão apresentava muitos problemas e o programa era muito complicado, Fang Haitao teve que passar um dia inteiro prestando serviço pós-venda a este cliente, e o cinema ainda ajudava os usuários a resolver problemas.

No entanto, este bom começo permitiu a Fang Haitao recuperar alguma confiança para iniciar um negócio. Com o aumento das vendas, Fang Haitao também aproveitou para comprar um novo celular, o iPhone 8. Mas, infelizmente, havia cada vez mais problemas e Fang Haitao não conseguia perder tempo com a manutenção pós-venda. Então, ele reescreveu uma versão v2 baseada no Ansible, mas o Ansible era muito mais conveniente de usar e não resolveu o problema fundamental de complexidade da instalação. Muitos usuários falharam na instalação, especialmente em ambientes off-line, que são mais propensos a erros. Necessidades do Ansible para ser colocado no Docker.

Para resolver este problema, Fang Haitao pensou muito e finalmente encontrou inspiração no código-fonte do kube-proxy. Tomando emprestado o método de implementação do balanceador de carga, removendo componentes pesados ​​​​e simplificando todo o script, a terceira versão do Golang resolveu os problemas anteriores e tornou a instalação extremamente simples. Um comando resolve tudo - foi o que aconteceu depois Sealos.

Provavelmente todo mundo está lutando há muito tempo com a instalação do K8. Depois que Sealos ganhou boca a boca, ele dominou a lista de tendências do Github por uma semana, o que mostra a forte demanda. Esse excelente desempenho também atraiu a atenção da equipe de Lu Qi. Em março de 2022, Sealos recebeu um investimento anjo de 2 milhões da equipe de Lu Qi. A jornada empreendedora de Fang Haitao também foi reaberta.

 

02 Design exclusivo

Embora haja um consenso de que “a nuvem é o futuro”, existem diferenças sobre se se trata de uma nuvem pública ou privada. Especialmente após o incidente de falha na nuvem pública deste ano, a voz da nuvem privada também se tornou mais alta. Afinal, a nuvem pública é basicamente um negócio de aluguel. Muitos softwares são de código aberto, mas ainda são vendidos a preços tão altos, o que inevitavelmente deixa os usuários desconfiados de "cortar alho-poró". Quanto à nuvem privada, o custo de construção é muito alto, seja ela adquirida ou autoconstruída, o custo é indispensável: o preço inicial de compra é de dezenas de milhões e o número mínimo de pessoas para a autoconstrução é 30. Esta também é a razão pela qual os usuários atuais estão tendo dificuldades. Alguns comentaristas expressam bem: a nuvem é como uma cidade sitiada: as pessoas de fora querem entrar e as de dentro querem sair.

Porém, diante deste problema A ou B, Sealos escolheu o terceiro caminho: abstrair a nuvem pública e a nuvem privada juntas, integrando a elasticidade e agilidade da nuvem pública com a segurança e controlabilidade da nuvem privada, e ao mesmo tempo O preço será reduzido.

Existe algo tão bom?

Como você fez isso?

Sealos usa Kubernetes como o "kernel da nuvem" e, com base nesse kernel da nuvem, cria uma distribuição de sistema operacional em nuvem que pode ser executada em vários servidores . "Tudo é um aplicativo" no sistema. Eventualmente, todos os servidores de todo o data center podem ser transformados em um “computador lógico”, tornando o uso da nuvem tão fácil quanto usar um PC:

A arquitetura da nuvem também mudou da arquitetura tradicional de três camadas de IaaS , PaaS e SaaS para uma nova arquitetura com Kubernetes como núcleo da nuvem:

Em última análise, a relação entre Sealos e Kubernetes é como a relação entre Red Hat e o kernel Linux. A única diferença de um sistema operacional independente é que o Sealos está instalado em todo o data center, e o que está sendo executado no Sealos não é QQ , WeChat, etc. Aplicativos independentes, mas vários aplicativos distribuídos que os desenvolvedores precisam usar. Com o Sealos, todo o data center deixa de ser um servidor isolado e passa a ser um todo, tornando-se um computador super lógico. Usar a nuvem neste momento é tão simples quanto usar um servidor.

Qualquer que seja a empresa que precise usar a nuvem, basta instalar um sistema operacional em nuvem e pronto.

Na opinião de Fang Haitao, a essência da computação em nuvem é fornecer recursos de computação (incluindo hardware, software e redes, etc.) aos usuários através da Internet e de outros métodos.Os recursos de computação conectados a um único data center são apenas para uso próprio. , que é uma nuvem privada. Através da rede pública É uma nuvem pública que todos podem usar. Quanto às funções, em teoria, as nuvens privadas podem fazer tudo o que as nuvens públicas podem fazer, e não há diferença essencial. No futuro, a nuvem pública e a nuvem privada poderão se unir e se tornar a mesma coisa.

Este conceito também é respeitado no design do Sealos. Nuvem pública e nuvem privada são o mesmo conjunto de códigos e a mesma abstração, mas a configuração e os aplicativos instalados são diferentes: rodar na própria sala de informática da empresa é uma nuvem privada e fornecer serviços à rede pública é uma nuvem pública.

Usuários de ambos os lados agarraram-no com uma mão.

Esse design também torna Sealos conciso e simples, evitando a experiência de “montanha de merda” do uso tradicional da nuvem.

Sob uma arquitetura altamente abstrata, todas as capacidades específicas são expandidas através de aplicações. Os usuários podem instalar o que precisarem e desinstalá-lo se não precisarem. É gratuito e flexível, e o sistema operacional em nuvem não aumentará em complexidade à medida que as funções do software aumentarem. Dessa forma, não importa se você entende Kubernetes ou não, você pode usar o Sealos com alegria.Os especialistas nativos da nuvem podem abrir o terminal e digitar vários comandos nativos, e os DBAs também podem usar aplicativos de banco de dados diretamente, o que é extremamente flexível.

"Os usuários precisam se preocupar com o Kubernetes? Na verdade, não. Só precisamos encontrar uma maneira de entregar os aplicativos que os usuários precisam diretamente aos usuários. Assim como quando você usa o Linux, você raramente se preocupa com o Kernel. O mesmo é verdade para nuvem. Desenvolvimento A capacidade que os usuários precisam usar é o mais importante, e poucas pessoas precisarão se preocupar com esse núcleo no futuro.", disse Fang Haitao.

 

03 Aprenda Linux e torne-se Linux

No processo de crescimento da Sealos, não é difícil descobrir que muitas ideias de produtos aprenderam com o Linux. Durante a entrevista, Fang Haitao também elogiou muito o Linux. Ele acredita que o Linux é simples de usar, estável em operação, requer pouco investimento, alto custo e basicamente não requer desenvolvimento customizado. Os profissionais do Openstack podem não conseguir instalá-lo em três dias e precisam alterar muito código para usá-lo, é muito complicado e não deve ser o representante da nuvem privada. Linux é o modelo com o qual aprender.

"O Linux é o mesmo Linux onde quer que seja usado, e o mesmo deve ser verdade para a nuvem. Caso contrário, se muitas coisas confusas se acumularem e se tornarem uma miscelânea, Sealos se tornará apenas mais uma plataforma PaaS fracassada.", disse Fang Haitao. .

Atualmente, Sealos possui apenas um conjunto de código- fonte aberto , que é o mesmo em todas as versões, e não há ramificações . E é bem recebido por muitos desenvolvedores porque é tão barato, fácil de usar e padronizado quanto o Linux.

"Na verdade, todas as nuvens são praticamente iguais. Os problemas que Sealos pode resolver podem basicamente ser resolvidos por outras nuvens. Mas Sealos é tão popular agora por causa de sua facilidade de uso." Fang Haitao introduziu: "A mesma coisa, se em Sealos, o cluster K8s já existe e você só precisa clicar no botão CBT para iniciá-lo, mas se você construí-lo com base em máquinas virtuais, pode ser necessário construir um banco de dados back-end, construir balanceamento de carga, realizar backup e recuperação , etc. Só então poderemos juntar tudo. Essa é a diferença de custo.”

Em termos de operação e manutenção, Sealos também é muito estável. "Em nossa filosofia, não deveria existir a função de operação e manutenção. Todo o sistema é auto-operado e mantido, assim como um sistema operacional de PC com poucos problemas durante a execução."

Além disso, o tamanho mínimo do Sealos é de apenas 300 M. Após a instalação do Sealos, as empresas podem ter sua própria nuvem em diversos ambientes.

"Além disso, Sealos tem um mercado de aplicativos padronizado. O que muitas pessoas precisam é, na verdade, de aplicativos de camada superior. Podemos empacotar esses aplicativos e fornecê-los diretamente a eles. Alguns fornecedores de nuvem também podem ter mercados semelhantes, mas esses mercados carecem de padrões. , é muito problemático colaborar entre produtores e consumidores de software. Usamos o pensamento do sistema operacional em nuvem. Ao fazer isso, seguiremos os padrões de fato do ecossistema nativo da nuvem para conectar produtores e consumidores de software. , colaborar entre si para alcançar um ciclo virtuoso.”

Essa abordagem da nuvem baseada no pensamento do sistema operacional acabará por mudar as relações de produção, permitindo que o ecossistema da nuvem seja como o ecossistema Android. Não é mais um fornecedor único que fornece aplicativos em nuvem, mas uma relação de colaboração em malha muitos-para-muitos.

 

04 Projeto incrível: código aberto e negócios não estão separados

A partir de agora, Sealos tem mais de 12.000 estrelas no Github. A boa base de massa também abriu um caminho de comercialização tranquilo para Sealos.

Ao contrário de outros projetos de código aberto, Sealos não segue o caminho de “código aberto primeiro, cobra depois”, mas cobra taxas desde o seu nascimento. No início, os pacotes de instalação eram vendidos. O código era de código aberto, mas o pacote de instalação era cobrado. Se o usuário construísse o pacote de instalação com base no código-fonte, isso poderia levar uma semana. No entanto, ele pode ser baixado imediatamente para 50-168 yuans, por isso vendeu muito, com mais de 1,5 milhão de unidades instaladas.

Após iniciar o negócio, Sealos também iniciou a comercialização formal. Atualmente existem dois modelos de negócios principais: nuvem pública e nuvem privada. Mas o interessante é que Sealos possui apenas um conjunto de código , seja a versão padrão ou a versão comercial , seja uma nuvem pública ou uma nuvem privada. Código aberto e comercialização são inseparáveis. Então, como Sealos ganha dinheiro?

A nuvem pública é muito simples: você pode abrir um navegador, se cadastrar, fazer login e recarregar, e ela é cobrada de acordo com o seu uso. Mas o verdadeiro ponto de lucro é: serviços em nuvem .

"Muitas empresas que trabalham em projetos de código aberto têm esse tipo de confusão: se o código aberto for muito bem feito, os usuários não pagarão? Para resolver esse problema, muitas empresas farão duas versões, uma é a versão de código aberto com menos funções; É uma versão comercial com algumas funções poderosas. Eu realmente não gosto dessa abordagem. Porque manter duas versões é muito cansativo. Cada vez, você precisa considerar quais coisas devem ser mescladas com a versão corporativa e quais coisas não deve ser mesclado. Leva muito tempo. A primeira versão foi diretamente bifurcada e, mais tarde, a versão de código aberto simplesmente não foi investida. Este método era muito estranho e não avançado.

Gosto de tornar todas as coisas boas de código aberto, para que o código aberto e a comercialização possam formar uma sinergia tanto quanto possível. Então, como evitar o problema de “depois que o código aberto é bem feito, os usuários não estão dispostos a pagar”? É simples – serviços em nuvem. “Fang Haitao disse.

Mesmo que o código aberto do Sealos seja perfeito, os usuários ainda precisam pagar pelas máquinas virtuais ao construí-lo. Nesse caso, é melhor recarregar o dinheiro diretamente na Sealos. “Essencialmente, é uma transferência de custos, mas este modelo é bom para as três partes.” Para usuários:

  • É mais simples de usar, você pode abrir o navegador e usá-lo diretamente, eliminando a necessidade de construí-lo você mesmo.

  • A manutenção de equipe dedicada é definitivamente mais profissional do que a automanutenção.

  • Com mais usuários, o custo por usuário cairá e você gastará menos dinheiro.

  • Atualize e atualize continuamente.

Portanto, é muito provável que os usuários da nuvem pública usem serviços em nuvem. Os usuários estão gastando mais no Sealos, mas o custo total dos gastos provavelmente será menor. Sealos também recebeu mais fundos para desenvolver novos recursos e expandir economias de escala.

Outro modelo de negócios é a nuvem privada. Alguns usuários compraram servidores e os colocaram em suas próprias salas de informática. Nessa época, a Sealos deu continuidade ao modelo de negócio original, mas em vez de cobrar a taxa de download do pacote de instalação, implementou um sistema de medição dentro da Sealos, cobrança por volume, e o saldo da conta acabou. Você precisa recarregar.

Este método realiza a unificação completa dos métodos de cobrança em nuvem pública e nuvem privada e, ao mesmo tempo, resolve o problema de cotas internas de pessoal dentro da empresa. Existem preços razoáveis ​​para clientes de diferentes tamanhos, portanto não haverá situação em que os pequenos clientes não possam pagar ou os grandes clientes não se atrevam a utilizá-los.

E se tal cobrança ofenderá os usuários?

“Ainda acho natural agregar valor e cobrar de forma razoável. O princípio é tentar encontrar o ponto que maximize os interesses gerais dos clientes e do projeto . O custo é barato, não podemos avançar rapidamente. Devemos equilibrar os interesses intermediários. Os relacionamentos são uma unidade de contradições. Este modelo de negócios agora permite que o código aberto e a comercialização formem uma sinergia, e podemos investir com confiança e ousadia para fazer um bom negócio. trabalho em código aberto sem se preocupar com o não pagamento dos usuários", disse Fang Haitao.

 

05 Equipe de negócios gosta de modelo de código aberto

Não só o produto de Sealos é interessante, mas também a equipe por trás dele.

Hoje, Huanjie Cloud tem apenas 21 pessoas, 20 das quais escrevem código, incluindo o próprio Fang Haitao. Até as operações têm formação técnica. Exceto por uma divisão de trabalho mais clara nos negócios, em outros momentos, Huanjie Cloud é mais como uma comunidade de código aberto.Todos contribuem com código para este projeto de código aberto, mas os módulos pelos quais são responsáveis ​​são diferentes. Este método de colaboração descentralizado de código aberto funciona perfeitamente até hoje. Um dos motivos importantes é que Huanjie Cloud não depende muito de vendas. A maioria dos clientes chega por iniciativa própria, então toda a equipe pode simplesmente se envolver no trabalho técnico., sem muitas das regras e regulamentos das empresas tradicionais.

Claro, esse tipo de conforto de “ficar em casa enquanto o dinheiro vem do céu” é inseparável do tráfego que o próprio código aberto traz para o projeto. A boa reputação e alta popularidade de Sealos na comunidade tornaram-se o maior ponto de aquisição de clientes da Huanjie Cloud. Os dados atuais mostram que até 90% da receita vem de clientes proativos na comunidade. Por tomarem a iniciativa de buscar soluções, isso também significa que a aceitação de seus produtos e as taxas de fechamento são relativamente altas.

Atualmente, além de Sealos, Huanjie Cloud também criou dois projetos populares de código aberto: Laf e FastGPT. Laf é uma plataforma de computação funcional que permite escrever código diretamente online. Até o momento, possui 6.000 estrelas. FastGPT é uma plataforma de perguntas e respostas de base de conhecimento de IA baseada no modelo grande LLM. Ele combina os dados privados dentro da empresa com o modelo grande para se tornar um sistema inteligente de perguntas e respostas dentro da empresa. Atualmente, tem mais de 8.000 estrelas.

Laf e FastGPT fornecem ao Sealos uma variedade de aplicativos. FastGPT e Laf fornecem um ao outro recursos de codificação automática de IA e recursos de desenvolvimento de plug-ins, enquanto Sealos fornece extensões para Laf para permitir a execução do FastGPT. Os três produtos complementam-se e trabalham em estreita colaboração para formar um ecossistema completo.

Meio ano após o lançamento dos três produtos, Huanjie Cloud Computing acumulou 84.000 usuários registrados, com taxa de pagamento de 10% e taxa de renovação superior a 70%. O que é ainda mais louvável é que Sealos e Laf apoiaram com sucesso uma série de aplicações com milhões de usuários registrados, e seus custos operacionais são apenas 1/20 dos serviços de nuvem tradicionais .

Wang Fugen, autor de Laf, e Yu Jinlong, autor de FastGPT, são parceiros empreendedores de Fang Haitao. Descobrimos que não há diferença na forma como a Huanjie Cloud recruta membros da equipe e colaboradores da comunidade, todos são recrutados da mesma forma que os parceiros.

Um dos principais desenvolvedores e contribuidores de longo prazo do Sealos era originalmente um usuário do Sealos. Naquela época, Fang Haitao realizou uma atividade de "compartilhe e ganhe prêmios" para promover Sealos. Ele ganhou 100 yuans para a comunidade, mas Fang Haitao o recompensou com 1.500 yuans. Ele sentiu que esta comunidade era estranha, então ele ficou. Fang Haitao acredita que se não houver apoio comercial por trás de um projeto de código aberto, ele avançará muito lentamente. Além disso, os contribuidores de código aberto merecem ser recompensados. Portanto, para atrair a comunidade de código aberto, Fang Haitao escreveu especialmente um sistema de incentivos para retribuir aos contribuidores do projeto da comunidade: quando os requisitos forem mesclados, o dinheiro será automaticamente transferido para a conta Alipay do contribuidor. Esta tradição foi preservada até hoje.

"Naquela época, quase todo o dinheiro ganho com o projeto foi devolvido à comunidade. Foi dado aos desenvolvedores ou comprados servidores para proporcionar uma experiência melhor." Fang Haitao disse: "Mas acho que isso é uma coisa muito interessante O modelo cria um ciclo virtuoso para que o projeto siga em frente, o que é realmente muito bom.”

Equipe de computação em nuvem Huanjie

 

06 Pequenos projetos preparam-se para grandes desafios

Atualmente, existem mais de 100.000 usuários da comunidade Sealos, incluindo muitas grandes empresas.

Dois meses após o seu lançamento, o número de utilizadores registados ultrapassou os 10.000 e o serviço na nuvem executa um total de mais de 7.000 aplicações.

Existem muitos tipos de aplicativos, incluindo modelos grandes, jogos, sites oficiais corporativos, sistemas de negócios, etc.

Mas as ambições da Sealos não param por aí: seu objetivo é evoluir para um sistema operacional em nuvem onipresente, proporcionando às pessoas uma experiência de serviço em nuvem tão simples quanto usar um computador pessoal.

Fang Haitao revelou que Sealos terá duas direções evolutivas a seguir:

Uma delas é a estabilidade do produto. Porque a nuvem é inerentemente uma questão de confiança. Se o produto for instável, os usuários definitivamente não o usarão em profundidade e poderão experimentá-lo apenas brevemente ou colocar nele algumas coisas sem importância, como blogs e fóruns. Quando o Sealos foi lançado, ele era usado apenas por desenvolvedores e eles só podiam cobrar dez ou vinte yuans. Mas com o tempo, depois que o mercado reconheceu a estabilidade do Sealos, as empresas passaram a utilizá-lo gradativamente, e o valor da recarga também aumentou. Portanto, a estabilidade do produto é o núcleo.

No entanto, existem, na verdade, certos desafios em construir estabilidade suficientemente bem, especialmente depois de atingir uma determinada escala. "Deixe-me dar um exemplo. Quase todos os gateways nativos da nuvem no mercado não podem atender às nossas necessidades e quase todos foram destruídos por nós. Neste momento, precisamos construir gateways para torná-los mais robustos. Ou escolha Uma comunidade de código aberto upstream e downstream os ajuda a otimizar e melhorar juntos." disse Fang Haitao.

A segunda coisa a fazer é a construção ecológica. "Agora, existem muitos aplicativos que suportam contêineres e Kubernetes. A primeira coisa a fazer é colocá-los em nosso mercado de aplicativos, expandir a largura e a profundidade do aplicativo e, em seguida, fornecer feedback à comunidade sobre a implantação no Sealos. Esse tipo de manutenção acompanhando o downstream Todos acolhem bem a cooperação entre projetos de código aberto. Por um lado, Sealos tem um enorme tráfego de usuários, o que pode desviar o tráfego para este projeto de código aberto. Por outro lado, este projeto de código aberto também pode desviar o tráfego para Sealos, então é completamente mutuamente benéfico. "

Há um longo caminho a percorrer, vamos esperar e ver o que o futuro reserva para este pequeno projeto.


【O Criador diz】

A nova coluna de entrevistas sobre startups de código aberto da OSCHINA [Creator Says].

A comunidade de código aberto precisa de criadores, que podem ser indivíduos ou empresas compostas por indivíduos. Com o desenvolvimento de software de código aberto por mais de 20 anos, os contribuidores de código aberto das empresas tornaram-se a espinha dorsal, e várias empresas foram fundadas em torno do software de código aberto. Esta coluna se concentrará em startups de código aberto e seus fundadores, discutirá o status atual do código aberto, compartilhará histórias de negócios de código aberto e contribuirá para a comunidade de código aberto.

Revisão de edições anteriores:

Um técnico “se extraviou” e criou uma nova espécie de banco de dados vetorial

Uma escola secundária comprou um "dispositivo de catarse interativo inteligente" - que na verdade é um caso para o Nintendo Wii. Linguagem de programação do ano TIOBE 2023: C # Kingsoft WPS travou O experimento Rust do Linux foi bem-sucedido, o Firefox pode aproveitar a oportunidade... 10 previsões sobre código aberto Acompanhamento do incidente de executivas demitindo funcionários: O presidente da empresa chamou os funcionários de "infratores reincidentes" e questionou "currículos acadêmicos falsos". O artefato de código aberto LSPosed anunciou que iria parar de atualizar. O autor disse que sofreu um grande número de ataques maliciosos. 2024 "A Batalha do Ano" no círculo front-end: React não consegue cavar buracos. Você precisa preenchê-lo com documentos? O Linux Kernel 6.7 é lançado oficialmente. A era do "pós-código aberto" chegou: a licença é inválida e não pode atender ao público em geral. Mulheres executivas foram demitidas ilegalmente. Funcionários se manifestaram e foram alvo de oposição ao uso de ferramentas EDA piratas para chips de design.
{{o.nome}}
{{m.nome}}

Acho que você gosta

Origin my.oschina.net/u/6852546/blog/10758980
Recomendado
Clasificación