Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Things we learned, improved, simplified going t...

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
  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
  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
  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
  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)
  6. 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
  7. 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)
  8. 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
  9. 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
  10. Let’s Connect 2022 October 26, 2022 CNX Infrastructure Upgrades and

    Migrations Elasticsearch -> OpenSearch • Export from ElasticSearch7 • Import to OpenSearch
  11. 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.
  12. Let’s Connect 2022 October 26, 2022 Ansible Deployment Scripts Connections

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

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

    options in inventory to install/upgrade component
  15. 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
  16. Let’s Connect 2022 October 26, 2022 Upgrade component with ansible

    • Configure inventory to enable target components • Run ansible script
  17. 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