Percona XtraDB Cluster, Rolling upgrade, OS patches etc

Can someone clarify whether we can apply rolling patch without causing MySQL database downtime ?
There are couple of

  1. OS security patch ( Take one node down , apply patch etc without causing any downtime for MySQL databases.
  2. MySQL patches e.g. going from 5.6.x to 5.6.y
  3. MySQL DB upgrade from one version to another e.g. 5.5 to 5.6

Can someone give suggestions ?
I want to make 3 Node Cluster or ( 2 Node Cluster + 1 node Arbitrator).
Suppose we have two different applications ( Application A and Application B)

Node 1:

Database A ( Primary) . Want Application A to connect to Database A on Node 1 but in case, if Node 1 is down then connect to Node 2.
Database B ( Failover for Node 2 )

Node 2:

Database B (Primary)
Database A (Failover for Node 1 )

I want to provide HA with one node become unavailable. I am not clear whether I need HA Proxy or VIP for application to automatically failover to other node. Can someone shed light on this ?

Thanks a lot.

We are running 5 servers. 2 Load balancers with nginx and 3 web servers which also serve as xtradb cluster nodes. When we need to update OS packages we just edit nginx config and set that machine as down . After upgrading and restarting machine we put that machine as active again via editing the nginx config on load balancers.
Same approach with minor upgrades to mysql.

We haven’t done any major version upgrade yet so can’t comment.

Hope it helps.

Thanks acerpacer