Como implementar um site de pre-produção em Sitecore? Eis algumas dicas de como fazer isso

Um requisito muito comum para quem trabalha com Sitecore é a necessidade dos autores de conteúdo de enviar URLs para outras pessoas, normalmente pessoas que não tem acesso ao Sitecore. Se essas pessoas normalmente não tem acesso, como elas podem revisar o conteúdo antes de ser publicado?

Conforme descrito aqui. na versão 7.2 foi adicionada a possibilidade de implementar a publicação para ambientes de pré-produção. No link mencionado tem algumas dicas interessantes de como setar um ambiente assim. Eis aqui outras que podem ser úteis para quem quiser configurar um ambiente desse.

1- Você precisa configurar um site definition. Para fazer isso voce pode usar o arquivo SiteDefinitions.config, localizado na pasta App_Config/Include e adicionar a definição conforme o exemplo:

<site name=”preprod” patch:before=”site[@name=’website’]” virtualFolder=”/” physicalFolder=”/” rootPath=”/sitecore/content” content=”preprod” startItem=”/home” database=”preprod” domain=”sitecore” allowDebug=”true” cacheHtml=”false” htmlCacheSize=”0″ registryCacheSize=”0″ viewStateCacheSize=”0″ xslCacheSize=”0″ filteredItemsCacheSize=”0″ enablePreview=”true” enableWebEdit=”true” enableDebugger=”true” disableClientData=”false” hostName=”preview.mywebsite.com”/>

Note a propriedade hostName. Esta é a url que os autores de conteúdo irão prover para os usuários que não tem acesso ao sitecore. Outra coisa importante de notar aqui é o banco “preprod”. Ver item 3.

2- No IIS, adicione o binding preview.mywebsite.com no seu site. Quando o fizer essa URL vai resolver no seu site.

3- Adicone um novo banco de dados master ou crie uma cópia do existente e adicione novamente ao SQL Server. Note abaixo como deve ficar a connection string:

<add name=”preprod” connectionString=”user id=myuser;password=mypassword;Data Source=MyDataSource;Database=sitecore_master_preview” />

4- No Sitecore, crie um novo publication target. Para fazer isso, abra o Editor de Conteúdo e navegue até o caminho e crie um novo item, que no exemplo abaixo eu nomeei Preprod. Depois disso sete o valor para checado no campo  “Preview publishing target”

5-  Atualize o workflow para ter uma ação do tipo __OnSave para publicar para o banco preprod. Isso é importante para garantir que o conteúdo sendo editado esteja disponível para visualização no site de pré-produção:

Note que o parâmetro tem o mesmo nome que o publishing target recém criado.

 

6-  Caso você esteja lidando com um ambiente escalável você precisa configurar alguns itens também. Sugiro que você revise o scaling guide do Sitecore para isso mas os itens a seguir já vão te ajudar nisso.

If you are dealing with an scaled environment you need to make sure that the publishing is properly configured. Please review Sitecore’s scaling guide for more details about this but items 7 and 8 will help you with that.

7- Você precisa limpar a cache do site preprod quando uma publicação ocorrer. Para fazer isso você precisa adicionar uma definição no event publis:end e publish:end:remote conforme abaixo:

 <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
 <sitecore>
       <events>
            <event name="publish:end">
                  <!--<handler type="Sitecore.Modules.RSS.PublishingHandler, Sitecore.Modules.RSS" method="OnPublishEnd"/>-->
                 <handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
                       <sites hint="list">
                           <patch:delete />
                       </sites>
                       <sites hint="list">
                            <site>website</site>
                            <site>preprod</site>
                       </sites>
                </handler>
            </event>
            <event name="publish:end:remote">
                   <handler type="Sitecore.Publishing.HtmlCacheClearer, Sitecore.Kernel" method="ClearCache">
                          <sites hint="list">
                               <patch:delete />
                          </sites>
                          <sites hint="list">
                                <site>website</site>
                                <site>preprod</site>
                          </sites>
                   </handler>
            </event>
        </events>
</sitecore>
</configuration>

8- Agora você precisa configurar o arquivo ScalabilitySettings.config. Por padrão esse arquivo  é desabilitado então você precisa habilitá-lo. Quando o fizer voce precisa configuar as instâncias. Isso é muito importante para habilitar o Sitecore para limpar a cache depois que um conteúdo é publicado de um servidor de content management para um servidor de content delivery.  Supondo que voce tenha um servidor de content management e 2 servidores de content delivery eis como voce pode configurar:

InstanceName = CA

Publishing.PublishingInstance = CA

Nos servidores de content delivery voce precisa garantir que as propriedades Publishing.PublishingInstance tenham o mesmo valor definido no servidor de content management. Neste caso o valor definido foi “CA”. Então para o servidor de delivery 1 ficaria assim:

InstanceName = CD1

Publishing.PublishingInstance = CA

O mesmo ocorre para o servidor de content delivery 2 que nesse caso ficaria assim:

InstanceName = CD2

Publishing.PublishingInstance = CA

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s