$30 off During Our Annual Pro Sale. View Details »

Things we learned, improved, simplified going to container-based delivery with Connections

LetsConnect
November 01, 2022

Things we learned, improved, simplified going to container-based delivery with Connections

"
In this session we’ll give an overview and demonstration of the new Connections 8.0 delivery model via Harbor repository, OpenSearch and Mongo v5 migration and how we use Ansible scripting to automate the deployment process.
Ansible, Harbor, OpenSearch/Mongo upgrade, continuous delivery and more - filled with demos and deep technical expertise. This session is inspired by our lessons learned from Connections Component Pack, but is also valuable for non-Connections admins."

LetsConnect

November 01, 2022
Tweet

More Decks by LetsConnect

Other Decks in Technology

Transcript

  1. Let‘s Connect 2022 October 26, 2022
    Things we learned, improved,
    simplified going to container-
    based delivery with Connections
    Cameron Bosnic, HCLTech
    @CameronBosnic

    View Slide

  2. Let’s Connect 2022 October 26, 2022
    Agenda
    • Install upgrade types
    • CNX8 and beyond delivery model
    • Harbor
    • Infrastructure upgrades and migrations
    • Ansible deployment scripts
    • Update with cron or Jenkins
    • Upgrade component with ansible

    View Slide

  3. Let’s Connect 2022 October 26, 2022
    Upgrade Types
    • In place
    • Easiest option for smaller environments
    • Run the Installation Manager to upgrade the Connections server. Helm upgrade command
    to install/upgrade the Component Pack.
    • Side by Side
    • Most used technique, used by technical advisors
    • New 'clean' install
    • Stage changes and config and switch over when the configuration and customizations look good
    • Hybrid
    • Hybrid upgrade uses the same process as in-place, a new environment identical to production
    • Can still test customizations as with a side by side upgrade

    View Slide

  4. Let’s Connect 2022 October 26, 2022
    Upgrade Types
    • Component pack delivered as huge zip file
    • Deliveries have been slow (annual)
    • All images and charts require setting up internal registry
    • Each image individually added to registry
    • Not taking advantage of some of the strengths of
    containers

    View Slide

  5. Let’s Connect 2022 October 26, 2022
    CNX 8 + Delivery Model
    • Continuous quarterly releases
    • Regular feature releases, bug fixes, and security updates
    • Enabled by Harbor
    • Automatable with Ansible
    • Quarterly release cadence on both WebSphere and
    Kubernetes side
    • K8s kept up to date (most recent 3 releases)

    View Slide

  6. Let’s Connect 2022 October 26, 2022
    CNX 8 + Delivery Model

    View Slide

  7. Let’s Connect 2022 October 26, 2022
    Harbor
    • Harbor is a repository for our Component Pack build
    containing:
    • Charts
    • Helm 3
    • Images
    • Docker images
    • for components

    View Slide

  8. Let’s Connect 2022 October 26, 2022
    Harbor
    • Access:
    Register for Harbor and get
    username/token at hclr.io
    Entitlement and access to repo
    added by Harbor team
    • Deploy:
    Change Helm repo with helm repo add (Demo)
    Helm upgrade … (Demo)

    View Slide

  9. Let’s Connect 2022 October 26, 2022
    CNX Infrastructure Upgrades and Migrations
    Recreate Ingress (for upgrade to cnx8 once only)
    • Ingresses have been moved to their respective component Helm charts and need to
    be recreated
    kubectl delete ingress -n connections $(kubectl get ingress -n connections | awk
    '{print $1}' | grep -vE "NAME")
    helm upgrade cnx-ingress -i ingress-nginx/ingress-nginx --namespace connections -
    f cnx-ingress-values.yml --wait

    View Slide

  10. Let’s Connect 2022 October 26, 2022
    CNX Infrastructure Upgrades and Migrations
    Mongo3 -> Mongo5
    • Pull Mongo Dockerfile from github, build image
    • Import to containerd in worker nodes, update Helm chart to pull the
    image
    • Export from Mongo3
    • Import to Mongo5

    View Slide

  11. Let’s Connect 2022 October 26, 2022
    CNX Infrastructure Upgrades and Migrations
    Elasticsearch -> OpenSearch
    • Export from ElasticSearch7
    • Import to OpenSearch

    View Slide

  12. Let’s Connect 2022 October 26, 2022
    Ansible Deployment Scripts
    Public Git repo: https://github.com/HCL-TECH-SOFTWARE/connections-
    automation
    Used daily to install / upgrade our internal deployments.
    Available as a public Git repo as a proof of concept for our customers to get an
    idea how to automate the process and with the possibility to extend upon it.
    Install configurations are driven by a set of inventory files tailored to the system
    being deployed.
    Install actions are driven by a set of playbooks to deploy different parts of the
    products.

    View Slide

  13. Let’s Connect 2022 October 26, 2022
    Ansible Deployment Scripts
    Connections Server playbook - setup-connections-complete.yml

    View Slide

  14. Let’s Connect 2022 October 26, 2022
    Ansible Deployment Scripts
    Component Pack Infrastructure playbook - setup-component-pack-infra-only.yml

    View Slide

  15. Let’s Connect 2022 October 26, 2022
    Ansible Deployment Scripts
    Configuring options in inventory to install/upgrade component

    View Slide

  16. Let’s Connect 2022 October 26, 2022
    Update via Jenkins or cron Job
    These playbooks can be executed as a Jenkins job or a shell script

    View Slide

  17. Let’s Connect 2022 October 26, 2022
    Upgrade component with ansible
    • Configure inventory to enable target components
    • Run ansible script

    View Slide

  18. Let’s Connect 2022 October 26, 2022
    Let‘s Connect 2022 October 26, 2022
    Questions?

    View Slide

  19. Let’s Connect 2022 October 26, 2022
    Actions
    Check it out:
    • https://hclcr.io/harbor/projects
    • https://github.com/HCL-TECH-SOFTWARE/connections-automation
    • https://preview.hclconnections.net

    View Slide