CI/CD in Sitefinity: View from the Cloud

CI/CD in Sitefinity: View from the Cloud

December 10, 2019 0 Comments
View from the Cloud
Silver linings are for the faint-hearted. If you’re getting your hands dirty, you want to squeeze every bit of performance out of your CMS. Today’s weather update: cloudy with a chance of DevOps. 

As a cloud-native CMS, Sitefinity Cloud has all the infrastructure and tooling required for developing modern and future-proof digital assets. An all-round platform-as-a-service that goes beyond web content management to uncompromisingly deliver the development tools and CI/CD pipelines for productivity with minimal risk, zero downtime, quality and confidence. From smart devs, for smart devs.


UPDATED 21 Feb, 2020 There’s no reason why content editors should feel left behind though. Sitefinity Cloud has a shiny new Content Pipeline for promoting content in a safe, consistent and error-free process. We’ve added a chapter to this blog for a closer look at it.


In the Driver's Seat

So, cloud or bust? No, that’s not the question. Far from it. Let’s take it one step at a time and focus on the job we do—which is to say, let’s focus on the journey instead. We all know development can be a bumpy, uphill ride sometimes. Plan. Code. Build. Test. Deploy. Release. Maintain and monitor. Repeat.

Software development is a cycle and you don’t want it to feel like you're going in circles. You want everything running like clockwork.    

In this blog, we’re taking a closer look at Sitefinity Cloud and its underlying architecture, as well as the components responsible for the speed, security and availability that can make or break modern web experiences. Fully catered in terms of infrastructure and DevOps, a cloud-native CMS like Sitefinity empowers developers by automating the build and deployment process. All that, in an elastic scaling environment with enterprise-grade security.

Not only can Sitefinity tap into the robust Azure infrastructure with ease but those powerful innards are finely configured to ensure the superior performance and availability of your websites and applications. Through intelligent use of multiple tools and services such as load balancing, autoscaling and geo-replication, Sitefinity Cloud adeptly manages traffic highs and lows to bump resources up or down depending on the workload.

Moreover, a deployment failover mechanism and blob storage do well to provide comfortable rollback options in case of corrupt data, bad code or any other unforeseen event. Failed deployments to the production environment are automatically reverted to the last known stable state with zero downtime for the live website or application.

Cloud DevOps: Textbook CI/CD

Regardless of the setup—on-premises or in the cloud—you want to get the maximum in terms of security, performance and scalability. Note that getting the intricate configurations right in terms of load balancing, content delivery, backup, recovery and application security may not always be feasible in an on-prem environment.

For each Sitefinity Cloud instance, they have been set up by the very teams that develop the product. What this means is that you can be certain your CMS was deployed in the cloud with the best performance settings and the most efficient management of available resources.     

A top-grade commercial cloud has the infrastructure and components to deliver both client and server-side performance. Sitefinity takes full advantage of CDN (not limited to Azure), a high-performance (Redis) cache, a Web Application Firewall and Azure AD for securely managing user roles and permissions.



Sitefinity Cloud CI/CD


Not least, Azure DevOps provides premium tools for automating many tasks related to the development, upgrade, integration and customization of web assets. Sitefinity Cloud is fully in tune with modern DevOps practices, with built-in CI/CD capabilities letting dev teams code, test and deploy new functionalities with the click of a button.

Whenever you need to push an update—be it an extra template, custom widget, a whole new feature or, cloud forbid, a bug fix—your process for collaboration, development and deployment needs to click at every stage. You need a seamlessly integrated code repo, sanitized DB backups, staging and production environments, gated pipelines and a meticulous approval routine that rules out uncontrolled promotion to production. And, because you’ve seen it all, you need failsafe and rollback options.     

Git, Pipelines, Deployment

Guess what? Our very own Engineering and DevOps teams have seen it all too. That’s why Sitefinity Cloud comes with a CI/CD setup in line with the best Sitefinity web development practices and fully utilizing the potential of the underlying Azure services.  

CI/CD in the cloud packs Git for source control and versioning, prebuilt but configurable build and release pipelines, staging and production environments, a deployment dashboard and comprehensive logs for troubleshooting and detailed analysis.

The development process follows a standard Git workflow with contributors coding locally in feature branches, which are then approved and merged via pull requests and deployed by automated CI/CD pipelines each time approval is requested and granted at the designated gates. It’s an elaborate but sufficiently automated and, ultimately, a highly reliable code deployment routine.

Better yet, the downtime when deploying to production is reduced to practically zero. A Sitefinity Cloud instance is always preconfigured with a production slot, deployment slot and a failover slot. While the production slot is serving content to the end users, the deployment slot is ready to receive deployment packages, promoted from the Staging environment via the CD pipeline. Both the production and deployment slots are connected to a primary database.

As a failsafe in case of a deployment gone bad, a failover slot is designated to each instance and connected to a secondary database—essentially, a clone of the primary DB. The two databases are kept in sync via geo-replication.

As the newly promoted package is making the rounds, the slots swap identities and the relevant database versions follow suit in what’s essentially a classic blue-green approach. The original, pre-update deployment becomes production, and what used to be production becomes the new deployment slot, which now keeps the previous, pre-update version of the code. In the meantime, the geo-replication between the primary and secondary DBs is turned off and back on, as they too swap states.


CI/CD diagram

The whole procedure ensures you always have a rollback ready to trigger if anything goes wrong and can push—or revert, if need be—your updates with practically no client-side downtime. This clever setup takes advantage of performance optimizations built into the Sitefinity platform as well, as the Warmup service kicks in to request and store priority pages in the output cache for a near-instant response after deployment.

To sum it all up, this is our take on a comfortable and secure environment that enables developers to deliver updates faster and safer. It is part of a consistent effort to provide the best tools for the job, so you can focus on exactly that—your job.

Content Pipeline

So, think CI/CD but for content, not code. It’s a finely configured additional environment for staging and publishing content. In line with the best content governance practices, the Content Pipeline lets authors and editors create and promote meaningful, engaging communication in a consistent, safe and error-free workflow.

Sitefinity Cloud gives you a fully configured additional environment for staging content and an automated pipeline for getting new content published. The Content Pipeline leaves the insecure and unreliable alternative of editing content on your production environment firmly in the past. The best things about it, developers don’t need to get involved in pushing bits and pieces of updated content and the pipeline itself is ready to use right out of the box.

Sitefinity-Cloud-Content-Pipeline-Diagram

The Content Pipeline takes full advantage of the Sitefinity SiteSync capability and comes fully preconfigured for a perfectly reliable and error-free performance in even the most complex multi-instance projects.

The Content Pipeline gives marketers the same level of productivity and independence that developers get from code pipelines for continuous integration and continuous delivery. Bottom line, everyone has the right tools to do what they do best and an environment that favors collaboration free of dependencies and bottlenecks.

I mean, what makes great websites and apps tick? Users are likely to engage with better looking and responsive websites, right? Call it eye-candy, call it UX—frontend development, web design and usability will always be paramount. Of course, speed, security and availability go without saying but that’s where the cloud has you covered.     

A cloud-hosted platform has the architecture and components responsible for speed, security and reliability, all available and configured for best results. That means an in-house team doesn’t need to worry about these concerns and can just focus on the look, feel and features instead. Sitefinity Cloud gives you all that in a package that may just be greater than the sum of its parts. 

Learn More about Sitefinity Cloud

Talk to a Sitefinity expert today about how to get the most out of your CMS. Sitefinity Cloud automatically scales to accommodate all sorts of workloads, while its PaaS architecture supports complex, large-scale development projects.

AntonTenev

Anton Tenev

A new addition to the Sitefinity Product Marketing team, Anton has a mixed background of software and writing for the web. He has spent the last 7 years in software development, on the project management and product ownership side, all the while writing about technology, gadgets and their use and usability. Always trying to get to the bottom of it without missing the bigger picture.

Comments
Comments are disabled in preview mode.
Topics
Latest Stories
in Your Inbox

Subscribe to get all the news, info and tutorials you need to build better business apps and sites

More From Progress
Tourist-Barry_pic_650x800px
Tourism Barrie Increases Engagement, Boosting Visitors and Ad Revenue with Sitefinity
Read Success Story
 
dev_thumb370x200
Five Reasons Why Developers Love Sitefinity Marketplace
Read More
 
232x131_resourceimage2
How Flywheel Uses Sitefinity Insight to Drive Tangible Results
Read More