Main Page: Difference between revisions

From Essential
Jump to navigation Jump to search
No edit summary
 
(229 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[File:Ynotopec elementary particles motion interaction science 4f947bd8-3a57-49f5-a5b5-df3128737f22.png|thumb|right]]
[[File:Infocepo-picture.png|thumb|right|Discover cloud computing on infocepo.com]]
Welcome to my experimental WIKI.


The website covers cloud computing topics like migration, infrastructure, and high availability. It discusses tools like Kubernetes, OpenStack, and AWS, the importance of open-source software, and factors to consider when implementing a cloud infrastructure.
= Discover Cloud Computing on infocepo.com =


<br>
Welcome! This portal is designed for IT professionals, engineers, students, and enthusiasts who want to master cloud infrastructure, explore AI tools, and accelerate their IT skills through hands-on labs and open-source solutions.
==[https://openai.com/ AI tools]==
* [https://github.com/Significant-Gravitas/Auto-GPT Coding]
* [https://chrome.google.com/webstore/detail/webchatgpt-chatgpt-with-i/lpfemeioodjbpieminkklglpmhlngfcn Science research]
* [https://www.midjourney.com Design]
* [https://openai.com AI tools]
* [https://lmsys.org/blog/2023-05-03-arena Benchmark]


* Next steps :
__TOC__
#LANGCHAIN : semantic tool
#VICUNA (LLAMA) : OPENSOURCE chat
#AUDIO : realtime translate


==CLOUD LAB==
== Quick Start ==
I want to share my [[LAB project]].<br>
* '''Master cloud infrastructure:''' Practical guides and labs
<br>
* '''Explore artificial intelligence:''' Trends and hands-on tools
[[file:Infocepo.drawio.png]]
* '''Compare cloud providers:''' Kubernetes, AWS, OpenStack, and more
==INFRA audit==
* '''Develop expertise:''' Training, open-source, and real-world projects
I made [[ServerDiff.sh]] script to audit servers.
You can track configuration drift.
You can check if your environments are the same.


==CLOUD migration example==
----
*1.5 days: infra audit (82 clustered services) ([https://infocepo.com/wiki/index.php/ServerDiff.sh audit own tool])


*1.5 days: physical and virtual target CLOUD architecture diagram
= AI & Cloud Tools =


*1.5 days: physical compliance of 2 CLOUD (6 hypervisors, 6TB memory)
; '''AI Assistants'''
* [https://chat.openai.com ChatGPT4] – Public conversational AI with strong learning capabilities
* [https://github.com/open-webui/open-webui Open WebUI] + [https://www.scaleway.com/en/h100-pcie-try-it-now/ GPU H100] + [https://ollama.com Ollama] – Private assistants and self-hosted LLM APIs
* [https://github.com/ynotopec/summarize Private summary] – Fast, offline summarizer for your data


*1 days: installation of the 2 CLOUD
; '''Development & Model Tracking'''
* [https://ollama.com/library LLM Trending] – Latest open-source LLMs
* [https://github.com/search?q=stars%3A%3E15000+forks%3A%3E1500+created%3A%3E2022-06-01&type=repositories&s=updated&o=desc Project Trending] – Top trending codebases since 2022
* [https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard LLM Leaderboard] – Community benchmarks
* [https://chat.lmsys.org ChatBot Evaluation] – Compare chatbot performance
* [https://www.perplexity.ai Perplexity AI] – Cutting-edge research and question answering
* [https://huggingface.co/models Models Trending] – Model marketplace
* [https://github.com/hiyouga/LLaMA-Factory LLM Fine Tuning] – Advanced training framework
* [https://huggingface.co/spaces/mteb/leaderboard Embedding Leaderboard] – Ranking for vector search models
* [https://ann-benchmarks.com Vectors DB Ranking] – Database speed and feature comparison
* [https://www.nvidia.com/en-us/data-center/h100/ NVIDIA H100] – HPC/AI GPUs for Kubernetes clusters
* [https://www.nvidia.com/fr-fr/geforce/graphics-cards/40-series/rtx-4080-family NVIDIA 4080] – Prosumer GPU for private deployments
* [https://huggingface.co/models?pipeline_tag=image-text-to-text&sort=trending Img2txt Trending] – Vision-language models
* [https://huggingface.co/spaces/TIGER-Lab/GenAI-Arena Txt2img Evaluation] – Compare generative image models
* [https://github.com/chatchat-space/Langchain-Chatchat Chatchat] – Private RAG assistant (multi-lingual)
* [https://top500.org/lists/green500/ HPC Efficiency] – Top green supercomputers


*.5 day: stability check
----
{| style="border-spacing:0;width:18.12cm;"
 
|- style="background-color:#ffc000;border:0.05pt solid #000000;padding:0.049cm;"
== Notable Open LLMs ==
| align=center style="color:#000000;" | '''ACTION'''
''(Last updated: 25/04/2025)''
| align=center style="color:#000000;" | '''RESULT'''
 
| align=center style="color:#000000;" | '''OK/KO'''
{| class="wikitable"
! Model !! Description / Notable Features
|-
| '''ai-chat''' || gemma3-12b, cost efficient
|-
| '''ai-chat-hq''' || gemma3-27b, higher quality
|-
| '''ai-translate''' || gemma2, temperature=0 (deterministic translation)
|-
| '''ai-summary''' || qwen2.5, optimized for summarization
|-
|-
| style="border:0.05pt solid #000000;padding:0.049cm;color:#000000;" | Activate maintenance for n/2-1 nodes or 1 node if 2 nodes.
| '''ai-code''' || gemma3-27b, advanced code reasoning
| style="border:0.05pt solid #000000;padding:0.049cm;color:#000000;" | All resources are started.
| style="background-color:#d8e4bc;border:0.05pt solid #000000;padding:0.049cm;color:#000000;" |
|-
|-
| style="border:0.05pt solid #000000;padding:0.049cm;color:#000000;" | Un-maintenance all nodes. Power off n/2-1 nodes or 1 node if 2 nodes, different from the previous test.
| '''ai-code-completion''' || gemma3-1b, fast code suggestions
| style="border:0.05pt solid #000000;padding:0.049cm;color:#000000;" | All resources are started.
| style="background-color:#d8e4bc;border:0.05pt solid #000000;padding:0.049cm;color:#000000;" |
|-
|-
| style="border:0.05pt solid #000000;padding:0.049cm;color:#000000;" | Power off simultaneous all nodes. Power on simultaneous all nodes.
| '''ai-parse''' || gemma2-simpo, parsing & extraction
| style="border:0.05pt solid #000000;padding:0.049cm;color:#000000;" | All resources are started.
| style="background-color:#d8e4bc;border:0.05pt solid #000000;padding:0.049cm;color:#000000;" |
|-
|-
| '''ai-RAG-FR''' || qwen2.5, French RAG applications
|-
| '''mannix/gemma2-9b-simpo''' || OllamaFunctions integration
|}
|}
*1.5 days: CLOUD automation study


*1.5 days: 6 templates (2 CLOUD, 2 OS, 8 environments, 2 versions)
----
 
= Industry News & Trends =
 
* [https://www.youtube.com/@lev-selector/videos Top AI News] – Video digest
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper] – Speaker tracking
* [https://github.com/openai-translator/openai-translator OpenAI Translator] – Modern open-source translation
* [https://www.mouser.fr/ProductDetail/BittWare/RS-GQ-GC1-0109?qs=ST9lo4GX8V2eGrFMeVQmFw%3D%3D GROQ LLM accelerator] – Fast, low-cost inference hardware
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM] – Enhanced search experiences


*1 day: migration diagram
----
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png]]


*1.5 days: 138 lines of industrialization code for migration ([https://infocepo.com/wiki/index.php/MigrationApp.sh migration own code])
= Training & Learning =


*1.5 days: process stabilization
* [https://www.youtube.com/watch?v=4Bdc55j80l8 Transformers Explained] – Intro to Transformers algorithm
* Hands-on labs and scripts in the [[LAB project|CLOUD LAB]] below


*1.5 days: CLOUD benchmark vs old INFRA
----


*.5 days: calibration of unavailability time per unit migration
= Cloud Lab & Audit Projects =


*5 minutes (effective load): 82 VM (env, os, application_code, 2 IP)
[[File:Infocepo.drawio.png|400px|Cloud Lab Reference Diagram]]


  Total = 15 man-days
; '''Lab Project'''  
Experiment with high-availability, cloud migration, and audit automation.
 
=== Cloud Audit ===
* '''[[ServerDiff.sh]]''' – Bash script for auditing servers, tracking config drift, and checking environment consistency
 
=== Cloud Migration Example ===
[[File:Diagram-migration-ORACLE-KVM-v2.drawio.png|400px|Cloud Migration Diagram]]


==CLOUD improvement==
[[File:WebModelDiagram.drawio.png]]
*Formalize your infrastructure as much as possible for more flexibility, low complexity and less technology lock-in.
*Use a name server able to handle the position of your customers like GDNS.
*Use a minimal instance and use a network load balancer like LVS. Monitor the global load of your instances and add/delete dynamically as needed.
*Or, many providers have dynamic computing services. Compare the prices. But take care about the technology lock-in.
*Use a very efficient TLS decoder for the frontend like the HAPROXY decoder.
*Use very fast http cache like VARNISH.
*Use a big cache for big files like Apache Traffic Server.
*...
*Use a REVERSE PROXY with TLS decoder like ENVOY for more services compatibility.
*Use serverless service for standard runtimes like Java, Python and PHP. But beware of certain incompatibilities and a lack of consistency over time.
*...
*Each time you need dynamic computing power think about load balancing or native service from the providers (caution about providers services!)
*...
*Try to use open source STACKs as much as possible.
*...
*Use cache for your databases like MEMCACHED
*...
*For more informations go to [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure CLOUD WIKIPEDIA]
==[https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure CLOUD WIKIPEDIA]==
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure CLOUD WIKIPEDIA]
==CLOUD vs HW==
{| class="wikitable"
{| class="wikitable"
|'''Function'''
! Task !! Description !! Duration (days)
|'''KUBERNETES'''
|'''OPENSTACK'''
|'''AWS'''
|'''Bare-metal'''
|'''HPC'''
|'''CRM'''
|'''OVIRT'''
|-
|-
|DEPLOY
| Audit infrastructure || 82 services, automated via ServerDiff.sh || 1.5
|HELM/ANSIBLE/SH
|TERRAFORM/ANSIBLE/SH/JUJU
|TERRAFORM/CLOUDFOUNDATION/ANSIBLE/JUJU
|ANSIBLE/SH
|XCAT/CLUSH
|ANSIBLE/SH
|ANSIBLE/PYTHON/SH
|-
|-
|BOOTSTRAP
| Diagram cloud architecture || Visual design || 1.5
|API/CLI
|PXE/API/CLI
|API/CLI
|PXE/IPMI
|PXE/IPMI
|PXE/IPMI
|PXE/API
|-
|-
|
| Compliance check || 2 clouds, 6 hypervisors, 6TB RAM || 1.5
|
|
|
|
|
|
|
|-
|-
|Router
| Install cloud platforms || Deploy core cloud environments || 1.0
|API/CLI (kube-router)
|API/CLI (router/subnet)
|API/CLI (Route table/subnet)
|LINUX/OVS/external
|XCAT/external
|LINUX/external
|API
|-
|-
|Firewall
| Stability check || Early operations || 0.5
|INGRESS/EGRESS/ISTIO
|API/CLI (Security groups)
|API/CLI (Security group)
|LINUX (NFT)
|LINUX (NFT)
|LINUX (NFT)
|API
|-
|-
|Vlan/Vxlan
| Automation study || Automate deployment/tasks || 1.5
|many
|API/CLI (VPC)
|API/CLI (VPC)
|OVS/LINUX/external
|XCAT/external
|LINUX/external
|API
|-
|-
|
| Develop templates || 6 templates, 8 envs, 2 clouds/OS || 1.5
|
|
|
|
|
|
|
|-
|-
|Name server
| Migration diagram || Process illustration || 1.0
|coredns
|dns-nameserver
|Amazon Route 53
|GDNS
|XCAT
|LINUX/external
|API/external
|-
|-
|Load balancer
| Write migration code || 138 lines (see MigrationApp.sh) || 1.5
|kube-proxy/LVS(IPVS)
|LVS
|Network Load Balancer
|LVS
|SLURM
|Ldirectord
|
|-
|-
|Storage
| Process stabilization || Ensure repeatable migration || 1.5
|many
|-
|SWIFT/CINDER/NOVA
| Cloud benchmarking || Performance test vs legacy || 1.5
|S3/EFS/FSX/EBS
|-
|OPENSTACK SWIFT/XFS/EXT4/RAID10
| Downtime calibration || Per-migration time calculation || 0.5
|GPFS
|-
|SAN
| VM loading || 82 VMs: OS, code, 2 IPs each || 0.1
|NFS/SAN
|-
! colspan=2 align="right"| '''Total''' !! 15 man-days
|}
|}
==[https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison CLOUD providers]==
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison CLOUD providers]
==[https://global-internet-map-2021.telegeography.com/ CLOUD INTERNET NETWORK]==
* [https://global-internet-map-2021.telegeography.com/ CLOUD INTERNET NETWORK]
==[https://landscape.cncf.io/?fullscreen=yes CLOUD NATIVE]==
* [https://landscape.cncf.io/?fullscreen=yes CLOUD NATIVE]
==HA COROSYNC+PACEMAKER==
[[File:HA-REF.drawio.png]]
===Typical architecture===


*2 rooms
==== Stability check ====
*2 power supply
 
*2FC / server (active/active) (SAN)
{| class="wikitable"
*2*10Gbit/s ethernet / server (active/passive, possible active/active if PXE on native VLAN 0)
! Action !! Expected Result
*IPMI VLAN (for the fence)
|-
*VLAN ADMIN which must be the native VLAN if BOOTSTRAP by PXE (admin, provisioning, heartbeat)
| Power off one node || All resources started
*USER VLAN (application services)
|-
*NTP
| Power off/on all nodes simultaneously || All resources started
*DNS+DHCP+PXE+TFTP+HTTP for auto-provisioning
|}
*PROXY (for update or otherwise internal REPOSITORY)
 
----
 
= Web Infrastructure & Best Practices =
 
[[File:WebModelDiagram.drawio.png|400px|Web Architecture Reference]]
 
* Favor minimal, flexible infrastructure
* Track customer location via GDNS or similar
* Use network load balancers (LVS, IPVS) for scaling
* Compare prices and beware of vendor lock-in
* For TLS: use HAProxy for fast frontend, Envoy for compatibility
* Caching: Varnish, Apache Traffic Server for large content
* Prefer open-source stacks and database caches (e.g. Memcached)
* Use message queues and buffers for workload smoothing
* For more examples: [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Architecture], [https://github.com/systemdesign42/system-design System Design GitHub]
 
----
 
= Major Cloud Platforms: Feature Comparison =
 
{| class="wikitable"
! Function !! Kubernetes !! OpenStack !! AWS !! Bare-metal !! HPC !! CRM !! oVirt
|-
| '''Deployment Tools''' || Helm, YAML, ArgoCD, Juju || Ansible, Terraform, Juju || CloudFormation, Terraform, Juju || Ansible, Shell || xCAT, Clush || Ansible, Shell || Ansible, Python
|-
| '''Bootstrap Method''' || API || API, PXE || API || PXE, IPMI || PXE, IPMI || PXE, IPMI || PXE, API
|-
| '''Router Control''' || Kube-router || Router/Subnet API || Route Table/Subnet API || Linux, OVS || xCAT || Linux || API
|-
| '''Firewall Control''' || Istio, NetworkPolicy || Security Groups API || Security Group API || Linux Firewall || Linux Firewall || Linux Firewall || API
|-
| '''Network Virtualization''' || VLAN, VxLAN, others || VPC || VPC || OVS, Linux || xCAT || Linux || API
|-
| '''DNS''' || CoreDNS || DNS-Nameserver || Route 53 || GDNS || xCAT || Linux || API
|-
| '''Load Balancer''' || Kube-proxy, LVS || LVS || Network Load Balancer || LVS || SLURM || Ldirectord || N/A
|-
| '''Storage Options''' || Local, Cloud, PVC || Swift, Cinder, Nova || S3, EFS, EBS, FSx || Swift, XFS, EXT4, RAID10 || GPFS || SAN || NFS, SAN
|}
 
----
 
= Useful Cloud & IT Links =
 
* [https://cloud.google.com/free/docs/aws-azure-gcp-service-comparison Cloud Providers Compared]
* [https://global-internet-map-2021.telegeography.com/ Global Internet Topology Map]
* [https://landscape.cncf.io/?fullscreen=yes CNCF Official Landscape]
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia Cloud Wiki]
* [https://openapm.io OpenAPM – SRE Tools]
* [https://access.redhat.com/downloads/content/package-browser RedHat Package Browser]
* [https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital Freelance IT Rates]
* [https://www.glassdoor.fr/salaire/Hays-Salaires-E10166.htm IT Salaries (Glassdoor)]
 
----
 
= Advanced: High-Availability, HPC & DevSecOps =
 
== High Availability with Corosync & Pacemaker ==
[[File:HA-REF.drawio.png|400px|HA Cluster Architecture]]
 
* Multi-node or dual-room clusters for redundancy
* Use IPMI for fencing, provision via PXE/NTP/DNS/TFTP
* For 2-node clusters: stagger fencing for stability; 3+ nodes recommended


*Choose between 2 or more node clusters.
=== Common Resources Pattern ===
* Multipath storage, LUN, LVM, NFS
* User and process resources
* IP, DNS, Listener management


*For a 2-node architecture, you need a 2-node configuration on COROSYNC and make sure to configure a 10-second staggered closing for one of the nodes (otherwise, an unstable cluster results).
== HPC ==
[[File:HPC.drawio.png|400px|HPC Cluster Overview]]


*Resources are stateless.
== DevSecOps ==
[[File:DSO-POC-V3.drawio.png|400px|DevSecOps Reference Design]]


For DB resources it is necessary to provide 4GB per base in general.
----
For CPU resources, as a rule there are no big requirements. Tip, for time-critical compressions, use PZSTD.


===Typical service pattern===
'''For more examples, guides, and scripts, visit [https://infocepo.com infocepo.com]. Contributions and suggestions welcome!'''
*MULTIPATH
*LUN
*LVM (LVM resource)
*FS (FS resource)
*NFS (FS resource)
*USER
*IP (IP resource)
*DNS name
*PROCESS (PROCESS resource)
*LISTENER (LISTENER resource)
==IT salaries==
*[http://jobsearchtech.about.com/od/educationfortechcareers/tp/HighestCerts.htm Best IT certifications]
*[https://www.silkhom.com/barometre-2021-des-tjm-dans-informatique-digital/ FREELANCE]
*[http://www.journaldunet.com/solutions/emploi-rh/salaire-dans-l-informatique-hays/ IT]
==[https://openapm.io SRE]==
* [https://openapm.io SRE]
==[https://access.redhat.com/downloads/content/package-browser REDHAT package browser]==
* [https://access.redhat.com/downloads/content/package-browser REDHAT package browser]

Latest revision as of 10:06, 17 July 2025

Discover cloud computing on infocepo.com

Discover Cloud Computing on infocepo.com

Welcome! This portal is designed for IT professionals, engineers, students, and enthusiasts who want to master cloud infrastructure, explore AI tools, and accelerate their IT skills through hands-on labs and open-source solutions.

Quick Start

  • Master cloud infrastructure: Practical guides and labs
  • Explore artificial intelligence: Trends and hands-on tools
  • Compare cloud providers: Kubernetes, AWS, OpenStack, and more
  • Develop expertise: Training, open-source, and real-world projects

AI & Cloud Tools

AI Assistants
Development & Model Tracking

Notable Open LLMs

(Last updated: 25/04/2025)

Model Description / Notable Features
ai-chat gemma3-12b, cost efficient
ai-chat-hq gemma3-27b, higher quality
ai-translate gemma2, temperature=0 (deterministic translation)
ai-summary qwen2.5, optimized for summarization
ai-code gemma3-27b, advanced code reasoning
ai-code-completion gemma3-1b, fast code suggestions
ai-parse gemma2-simpo, parsing & extraction
ai-RAG-FR qwen2.5, French RAG applications
mannix/gemma2-9b-simpo OllamaFunctions integration

Industry News & Trends


Training & Learning


Cloud Lab & Audit Projects

Cloud Lab Reference Diagram

Lab Project

Experiment with high-availability, cloud migration, and audit automation.

Cloud Audit

  • ServerDiff.sh – Bash script for auditing servers, tracking config drift, and checking environment consistency

Cloud Migration Example

Cloud Migration Diagram

Task Description Duration (days)
Audit infrastructure 82 services, automated via ServerDiff.sh 1.5
Diagram cloud architecture Visual design 1.5
Compliance check 2 clouds, 6 hypervisors, 6TB RAM 1.5
Install cloud platforms Deploy core cloud environments 1.0
Stability check Early operations 0.5
Automation study Automate deployment/tasks 1.5
Develop templates 6 templates, 8 envs, 2 clouds/OS 1.5
Migration diagram Process illustration 1.0
Write migration code 138 lines (see MigrationApp.sh) 1.5
Process stabilization Ensure repeatable migration 1.5
Cloud benchmarking Performance test vs legacy 1.5
Downtime calibration Per-migration time calculation 0.5
VM loading 82 VMs: OS, code, 2 IPs each 0.1
Total 15 man-days

Stability check

Action Expected Result
Power off one node All resources started
Power off/on all nodes simultaneously All resources started

Web Infrastructure & Best Practices

Web Architecture Reference

  • Favor minimal, flexible infrastructure
  • Track customer location via GDNS or similar
  • Use network load balancers (LVS, IPVS) for scaling
  • Compare prices and beware of vendor lock-in
  • For TLS: use HAProxy for fast frontend, Envoy for compatibility
  • Caching: Varnish, Apache Traffic Server for large content
  • Prefer open-source stacks and database caches (e.g. Memcached)
  • Use message queues and buffers for workload smoothing
  • For more examples: Wikimedia Cloud Architecture, System Design GitHub

Major Cloud Platforms: Feature Comparison

Function Kubernetes OpenStack AWS Bare-metal HPC CRM oVirt
Deployment Tools Helm, YAML, ArgoCD, Juju Ansible, Terraform, Juju CloudFormation, Terraform, Juju Ansible, Shell xCAT, Clush Ansible, Shell Ansible, Python
Bootstrap Method API API, PXE API PXE, IPMI PXE, IPMI PXE, IPMI PXE, API
Router Control Kube-router Router/Subnet API Route Table/Subnet API Linux, OVS xCAT Linux API
Firewall Control Istio, NetworkPolicy Security Groups API Security Group API Linux Firewall Linux Firewall Linux Firewall API
Network Virtualization VLAN, VxLAN, others VPC VPC OVS, Linux xCAT Linux API
DNS CoreDNS DNS-Nameserver Route 53 GDNS xCAT Linux API
Load Balancer Kube-proxy, LVS LVS Network Load Balancer LVS SLURM Ldirectord N/A
Storage Options Local, Cloud, PVC Swift, Cinder, Nova S3, EFS, EBS, FSx Swift, XFS, EXT4, RAID10 GPFS SAN NFS, SAN

Useful Cloud & IT Links


Advanced: High-Availability, HPC & DevSecOps

High Availability with Corosync & Pacemaker

HA Cluster Architecture

  • Multi-node or dual-room clusters for redundancy
  • Use IPMI for fencing, provision via PXE/NTP/DNS/TFTP
  • For 2-node clusters: stagger fencing for stability; 3+ nodes recommended

Common Resources Pattern

  • Multipath storage, LUN, LVM, NFS
  • User and process resources
  • IP, DNS, Listener management

HPC

HPC Cluster Overview

DevSecOps

DevSecOps Reference Design


For more examples, guides, and scripts, visit infocepo.com. Contributions and suggestions welcome!