Tools to configure a production network #production #tools #deployment


Jacques Sauvé
 

Hello all,
I have been studying, learning, developing POC solutions using Fabric and it has been pretty smooth sailing so far. I have been using several tools, including fabric-samples/test-network, minifabric, IBM extension for VSCode.
Now I need to plan for a production network.
We expect to have to support just a few organizations over the next year but potentially hundreds over time. Many of them will be small and will likely delegate administration (configuration, monitoring of their nodes) to us.

Question: what open-source tools are recommended to configure and administer a Fabric 2.x network? I prefer CLI tools that can automate the processes (add a peer, add a user, join a new org, renew certificates, chaincode lifecycle, etc.), rather than GUI. However, recommendations for both kinds of interfaces (CLI, GUI) would be helpful.
Also preferred are tools that support the new fabric-gateway (Fabric >= 2.4)

Thanks so much for any pointers provided.

Jacques
Smartiks


jkneubuh@...
 

Jacques,

Following on the smooth sailing analogy, for a production network(s) you will have a successful outcome with the combination of Kubernetes and fabric-operator.  

The operator can also be supplemented by the fabric-operations-console for cases where you would prefer to administer the networks with a GUI, or automate deployment with Ansible or REST SDKs.  For the CLI integration, fabric-operator works directly with the raw Kube APIs and fabric CLI binaries, and can be integrated with your CI/CD/automation infrastructure as necessary.  Both the operator and console are designed to support the "remote management" of Fabric networks, in cases where you do not have access to the underlying infrastructure, but can establish network visibility to peers and orderers via gRPCs service URLs.

fabric-operator has been designed for easy integration with the new Gateway Client (> 2.4), Chaincode-as-a-Service (> 2.4.1), and the new fabric-builder-k8s, providing near instantaneous deployments of production images, and interactive step-level debugging in the IDE of your choice.  In addition, operator provides some key certificate enrollment and renewal functions which will set your network off to a healthy start and long-term stability.

We have a sample-network available which will "just work" on a local development environment (KIND, Rancher/k3s, minikube), and extends naturally to kube clusters running in the wild at EKS, IKS, and hybrid cloud environments.  The sample network uses a combination of kubectl / kustomization to apply a network, and some light shell scripting to illustrate the configuration of Fabric services using the native CLI binaries.  In general, we've found the combination of KIND, operator, and Chaincode-as-a-Service to provide a development environment that is superior to the fabric-samples "test-network.sh", providing clear alignment with production operations.

Regarding the network setup, there are good opportunities to align some of the higher-order systems, such as Minifabric, BAF, Cello, K8s operators, and the like, into a community supported "really easy to use" and "really easy to live with" solutions that allow us to just write some chaincode... 

Please feel free to reach out, either on the mailing list or Discord #fabric-kubernetes for additional guidance, feedback, and general banter.

Happy coding.


Nikos Karamolegkos
 

Hello, your presented information are really useful. However, I have some questions.

1) How the aforementioned operator is different from hlf-operator?
2) How I can configure via Ansible (is there any example?) my network structure in order to make the deployment?
3) Once I have deployed my network how can install and update the chaincode? Also, how can I add a new channel and join the existing infrastructure (peer, orderers etc) to this channel? Finally, is there any example applying these with the SDK?


Nikos Karamolegkos
 

Also, why should I use the operator and not this?

Thanks


Matthew White
 

Hello;

 

I can focus on the last two points

 

  • The current Ansible playbooks can be used with the OpenSource Operator, AND the OpenSource Console. Though the playbooks are named ‘IBM Blockchain Platform’ the open source console has the same API.  The hope is that they can also be adjusted to talk direct to the operator; maybe even move to the Hyperledger organization- they are open source already. Feedback from the community here, (and any assistance would be brilliant)  For reference, the PR I’m currently working with his https://github.com/IBM-Blockchain/ansible-collection/pull/608/files

 

  • Ansible let you do exactly that, and I’m writing some notes on doing exactly that at the moment!


I’d defer to Josh to talk more on the first point, but would say we would like to be able as community to come to unify if possible approaches.



From: fabric@... <fabric@...> On Behalf Of Nikos Karamolegkos
Sent: 18 July 2022 09:14
To: fabric@...
Subject: [EXTERNAL] Re: [Hyperledger Fabric] Tools to configure a production network #tools #deployment

 

Hello, your presented information are really useful. However, I have some questions. 1) How the aforementioned operator is different from hlf-operator? 2) How I can configure via Ansible (is there any example?) my network structure in order

ZjQcmQRYFpfptBannerStart

This Message Is From an External Sender

This message came from outside your organization.

ZjQcmQRYFpfptBannerEnd

Hello, your presented information are really useful. However, I have some questions.

1) How the aforementioned operator is different from hlf-operator?
2) How I can configure via Ansible (is there any example?) my network structure in order to make the deployment?
3) Once I have deployed my network how can install and update the chaincode? Also, how can I add a new channel and join the existing infrastructure (peer, orderers etc) to this channel? Finally, is there any example applying these with the SDK?

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: PO Box 41, North Harbour, Portsmouth, Hants. PO6 3AU


Nikos Karamolegkos
 

Any ansible example to deploy a network?


Matthew White
 

Hello;

 

The Ansible Collection at https://ibm-blockchain.github.io/ansible-collection/ will stand up and configure an IBM Blockchain Platform and whatever peers/orderers etc you want.

 

This though needs IBP; however with the FabricOperator/FabricOperationsConsole now being in Hyperledger-labs.  You can/will be able to use the same Ansible approach and playbooks to create network.

 

We’ve branched the repo for the Ansible Collection – and the main branch is now 2.0.0-beta and PR is incoming. When merged this PR will be able to create a OpenSource FabricOperator/FabricOperationsConsole.  Then you would be able to create the resources you need.

Also got an example started at https://github.com/hyperledgendary/full-stack-asset-transfer-guide

Though it really is a work-in-progress – so please be kind 😊

 

Thanks Matthew

 

From: fabric@... <fabric@...> On Behalf Of Nikos Karamolegkos
Sent: 19 July 2022 13:35
To: fabric@...
Subject: [EXTERNAL] Re: [Hyperledger Fabric] Tools to configure a production network #tools #deployment

 

Unless otherwise stated above:

IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: PO Box 41, North Harbour, Portsmouth, Hants. PO6 3AU