Apresentar software como serviço
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Discutir os benefícios de implantar e manter uma única versão do seu produto.
- Explicar como implantar suas atualizações perfeitamente.
A promessa da plataforma
Os clientes da Salesforce sabem que estão bem. Eles não têm que manter servidores e mexer em sistemas operacionais. Eles não têm que saber como projetar, executar ou otimizar um banco de dados relacional. Eles nem têm que fazer backup de seus próprios dados.
Eles recebem três grandes versões de software por ano com novos recursos e melhorias de desempenho. Eles recebem muitas notas de versão e materiais de treinamento (como este módulo do Trailhead fabuloso). Eles recebem o AppExchange, um mercado inteiro de produtos que funcionam perfeitamente com o Salesforce. Tudo o que precisam para conduzir seu negócio está lá disponível para eles.
Grandes expectativas
Viu? Software empresarial não precisa ser difícil. Ele realmente pode "apenas funcionar". Essa é a promessa do Software como serviço (SaaS). Por mais de 20 anos, a Salesforce manteve essa promessa para seus clientes. Mesmo grandes atualizações da Salesforce Platform geralmente acontecem de forma suave e silenciosa.
Seus clientes esperam muito dos produtos que você cria em nossa plataforma. Ei, é assim o sucesso! Então, quando você atualiza sua oferta, como pode oferecê-la aos seus clientes de uma maneira que mantenha a promessa do SaaS?
Escolha sua estratégia de atualização
As atualizações têm várias formas. Os patches são o menor tipo de atualizações; eles corrigem bugs e fazem pequenos ajustes no seu produto. O lançamento de uma nova versão de pacote maior ou menor é visto como atualizações que fazem alterações maiores.
Quando você atualiza seu produto, pode escolher como seus clientes obtêm a nova versão. Há duas maneiras de colocá-la nas mãos dos clientes:
- Instalação manual: seus clientes decidem quando querem a nova versão e a instalam usando uma URL que você fornece.
- Instalação automática: você envia as atualizações por push para seus clientes, para que eles sempre tenham a versão mais recente do produto e todos sempre usem a mesma versão. Chamamos isso de upgrade por push.
Aqui, você pode estar se perguntando por que oferecemos a opção de autoatendimento. Não é assim que a Salesforce faz seus próprios lançamentos e certamente não é a maneira "perfeita". Por que não fazer as coisas do jeito Salesforce e atualizar todos em sintonia?
A realidade é a seguinte: a Salesforce tem um longo histórico de upgrades bem-sucedidos e com pouco drama. Os clientes confiam na Salesforce para fazer versões corretamente e para corrigir rapidamente eventuais problemas que possam ocorrer no processo. Mas alguns desses mesmos clientes precisam de argumentos mais convincentes antes de se sentirem confortáveis com atualizações automáticas dos parceiros da Salesforce.
Vamos falar sobre os benefícios dos upgrades por push, para que você possa falar bem deles.
Upgrades por push simplificam
Recomendamos que, sempre que possível, você use upgrades por push para distribuir novas versões do produto e use atualizações de autoatendimento apenas para clientes que insistirem nisso.
Os upgrades por push mantêm todos os seus clientes na mesma versão do seu aplicativo. Isso é bom para você e para seus clientes. Por quê? Considere a alternativa: dar suporte a várias versões ativas do seu aplicativo. Quando você mantém várias versões, as coisas ficam complicadas:
- Sua equipe de suporte tem que rastrear recursos e correções em cada versão para que possam responder adequadamente aos problemas do cliente.
- Você precisa manter várias versões da documentação e dos materiais de treinamento.
- Quando você corrige um bug, pode ter que fazer backporting para várias versões.
Já quando você usa upgrades por push para manter seus clientes atualizados, evita todo esse trabalho extra.
Não quebre sua promessa
Não era preciso dizer isso, mas vamos dizer assim mesmo: não quebre seu aplicativo ou as organizações de seus clientes. Claro, atualizar o produto sem estragar o dia de um cliente pode ser complicado. A Salesforce oferece algumas ferramentas úteis e alguns limites para manter você no caminho certo.
Automatizar o processo
Às vezes, uma atualização exige que você faça algum trabalho na organização do seu cliente quando a nova versão do produto é instalada. Talvez seja bom validar alguns dados ou fazer alguma limpeza na organização após a instalação.
Você pode incluir um botão no seu aplicativo para fazer o trabalho, mas se o cliente não pressioná-lo, o trabalho não será feito. Em vez de envolver o cliente, sugerimos que você faça o trabalho automaticamente durante a instalação. Quando você desenvolver seu pacote, inclua scripts para fazer exatamente isso. Um script pode atualizar dados e certos metadados.
Por exemplo, digamos que você encontrou um bug em um código do Apex que calcula o valor armazenado em um campo. Como parte da atualização, você pode corrigir o bug e executar um script que também corrige todos os valores incorretos que foram gerados antes da correção.
Um pouco de preparação é um grande impulso
Mencionamos o impressionante histórico de versões e atualizações de pouco drama da Salesforce. Qual é nosso segredo? Testes meticulosos. Não é super empolgante, mas funciona. Mais testes equivalem a menos drama.
Às vezes, os parceiros se concentram tanto nos fabulosos novos recursos que acabam passando batido por alguns detalhes enquanto testam uma atualização. Aqui está um exemplo de um procedimento de teste incompleto: Você instala seu aplicativo atualizado em uma organização de teste vazia recém-criada. Se funcionar lá, está pronto para uso, certo? Se todos os seus clientes começarem com novas organizações, sim.
Mas a maioria dos clientes do mundo real está sempre no meio dos negócios. Eles vão instalar o upgrade em uma organização com um milhão de coisas lá. Então teste seus upgrades em organizações novas, mas também em organizações bagunçadas e em um contexto do mundo real.
Implante suas atualizações de forma contínua e silenciosa
Seus clientes não podem simplesmente “pausar” os negócios enquanto seu software se atualiza. Isso não faz parte da promessa do SaaS. É impossível garantir que nada nunca vai falhar, mas você pode minimizar o caos pensando em como suas atualizações afetam os clientes.
- Considere o impacto de suas atualizações. Você está mudando a forma como seus clientes usam seu produto?
- Teste suas mudanças internamente primeiro. Use uma variedade de organizações de teste preenchidas, não apenas as novas e vazias.
- Considere usar camadas em sua implantação: seus superusuários recebem atualizações primeiro, seguidos por todos os outros. A Salesforce usa esse processo e isso nos ajuda a entender os impactos nos clientes reais.
Agora vamos olhar para as diferentes maneiras que você pode usar para oferecer suas atualizações.
Recursos
- Guia do desenvolvedor de Pacotes gerenciados de segunda geração: Criar e atualizar versões de um Pacote gerenciado de segunda geração
- Guia do desenvolvedor de Pacotes gerenciados de segunda geração: Executar o Apex na Instalação/upgrade do pacote