\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta,
calc,
positioning
}
\begin{document}
\begin{tikzpicture}[
node distance=2mm and 3mm,
box/.style args = {#1/#2}{%
minimum width=#1, minimum height=6mm, align=center,
fill=#2,
font=\bfseries, text=white,
draw, inner sep=2mm, outer sep=0mm}
]
% left containers (in vertical midddle of image)
\node (nLa) [box=20mm/red] {container};
\node (nLb) [box=20mm/red,right=of nLa] {container};
\node (nLc) [box=20mm/red,right=of nLb] {container};
% right containers (in vertical midddle of image)
\node (nRa) [box=20mm/red,right=of nLc] {container};
\node (nRb) [box=20mm/red,right=of nRa] {container};
\node (nRc) [box=20mm/red,right=of nRb] {container};
% nodes below (left and right column)
\path let \p1 = ($(nLa.west) - (nLc.east)$),
\n1 = {veclen(\y1,\x1)} in
node (nL2) [box=\n1/purple, below=of nLb] {container Runtime}
node (nL3) [box=\n1/cyan, below=of nL2] {Container OS}
node (nL4) [box=\n1/cyan, below=of nL3] {Physical Host (or VM)}
%
node (nR2) [box=\n1/purple, below=of nRb] {container Runtime}
node (nR3) [box=\n1/cyan, below=of nR2] {Container OS}
node (nR4) [box=\n1/cyan, below=of nR3] {Physical Host (or VM)};
% nodes on bottom and top
\path let \p1 = ($(nLa.west) - (nRc.east)$),
\n1 = {veclen(\y1,\x1)} in
node (nB) [box=\n1/purple,
below=of $(nL4.south)!0.5!(nR4.south)$] {DevOps Tools}
%
node (nT1) [box=\n1/black,
above=8mm of $(nLc.north)!0.5!(nRa.north)$] {Container Network}
node (nT2) [box=\n1/blue!40!black,above=of nT1] {Container \dots}
node (nT3) [box=\n1/blue!80!black,above=of nT2] {Container \dots}
node (nT4) [box=\n1/blue!2050,above=of nT3] {Container \dots};
% nodes on left andrightand right
\path let \p1 = ($(nT4.north west) - (nBnL4.south west)$),
\n1 = {veclen(\y1,\x1)} in
node (L1) [box=\n1/purple!80!black,
left=of $(nT4.north west)!0.5!(nBnL4.south west)$,
anchor=south, rotate=90] {Configureation \dots}
node (L2) [box=\n1/olive,
left=of L1.north,
anchor=south, rotate=90] {Marketplace/Image Management}
node (L2) [box=\n1/gray,
right=of $(nT4.north east)!0.5!(nBnR4.south east)$,
anchor=north, rotate=90] {Security}
;
\end{tikzpicture}
\end{document}
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta,
calc,
positioning
}
\begin{document}
\begin{tikzpicture}[
node distance=2mm and 3mm,
box/.style args = {#1/#2}{%
minimum width=#1, minimum height=6mm, align=center,
fill=#2,
font=\bfseries, text=white,
draw, inner sep=2mm, outer sep=0mm}
]
% left containers (in vertical midddle of image)
\node (nLa) [box=20mm/red] {container};
\node (nLb) [box=20mm/red,right=of nLa] {container};
\node (nLc) [box=20mm/red,right=of nLb] {container};
% right containers (in vertical midddle of image)
\node (nRa) [box=20mm/red,right=of nLc] {container};
\node (nRb) [box=20mm/red,right=of nRa] {container};
\node (nRc) [box=20mm/red,right=of nRb] {container};
% nodes below (left and right column)
\path let \p1 = ($(nLa.west) - (nLc.east)$),
\n1 = {veclen(\y1,\x1)} in
node (nL2) [box=\n1/purple, below=of nLb] {container Runtime}
node (nL3) [box=\n1/cyan, below=of nL2] {Container OS}
node (nL4) [box=\n1/cyan, below=of nL3] {Physical Host (or VM)}
%
node (nR2) [box=\n1/purple, below=of nRb] {container Runtime}
node (nR3) [box=\n1/cyan, below=of nR2] {Container OS}
node (nR4) [box=\n1/cyan, below=of nR3] {Physical Host (or VM)};
% nodes on bottom and top
\path let \p1 = ($(nLa.west) - (nRc.east)$),
\n1 = {veclen(\y1,\x1)} in
node (nB) [box=\n1/purple,
below=of $(nL4.south)!0.5!(nR4.south)$] {DevOps Tools}
%
node (nT1) [box=\n1/black,
above=8mm of $(nLc.north)!0.5!(nRa.north)$] {Container Network}
node (nT2) [box=\n1/blue!40!black,above=of nT1] {Container \dots}
node (nT3) [box=\n1/blue!80!black,above=of nT2] {Container \dots}
node (nT4) [box=\n1/blue!20,above=of nT3] {Container \dots};
% nodes on left andright
\path let \p1 = ($(nT4.north) - (nB.south)$),
\n1 = {veclen(\y1,\x1)} in
node (L1) [box=\n1/purple!80!black,
left=of $(nT4.north west)!0.5!(nB.south west)$,
anchor=south, rotate=90] {Configureation \dots}
node (L2) [box=\n1/olive,
left=of L1.north,
anchor=south, rotate=90] {Marketplace/Image Management}
node (L2) [box=\n1/gray,
right=of $(nT4.north east)!0.5!(nB.south east)$,
anchor=north, rotate=90] {Security}
;
\end{tikzpicture}
\end{document}
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta,
calc,
positioning
}
\begin{document}
\begin{tikzpicture}[
node distance=2mm and 3mm,
box/.style args = {#1/#2}{%
minimum width=#1, minimum height=6mm, align=center,
fill=#2,
font=\bfseries, text=white,
draw, inner sep=2mm, outer sep=0mm}
]
% left containers (in vertical midddle of image)
\node (nLa) [box=20mm/red] {container};
\node (nLb) [box=20mm/red,right=of nLa] {container};
\node (nLc) [box=20mm/red,right=of nLb] {container};
% right containers (in vertical midddle of image)
\node (nRa) [box=20mm/red,right=of nLc] {container};
\node (nRb) [box=20mm/red,right=of nRa] {container};
\node (nRc) [box=20mm/red,right=of nRb] {container};
% nodes below (left and right column)
\path let \p1 = ($(nLa.west) - (nLc.east)$),
\n1 = {veclen(\y1,\x1)} in
node (nL2) [box=\n1/purple, below=of nLb] {container Runtime}
node (nL3) [box=\n1/cyan, below=of nL2] {Container OS}
node (nL4) [box=\n1/cyan, below=of nL3] {Physical Host (or VM)}
%
node (nR2) [box=\n1/purple, below=of nRb] {container Runtime}
node (nR3) [box=\n1/cyan, below=of nR2] {Container OS}
node (nR4) [box=\n1/cyan, below=of nR3] {Physical Host (or VM)};
% nodes on bottom and top
\path let \p1 = ($(nLa.west) - (nRc.east)$),
\n1 = {veclen(\y1,\x1)} in
node (nB) [box=\n1/purple,
below=of $(nL4.south)!0.5!(nR4.south)$] {DevOps Tools}
%
node (nT1) [box=\n1/black,
above=8mm of $(nLc.north)!0.5!(nRa.north)$] {Container Network}
node (nT2) [box=\n1/blue!40!black,above=of nT1] {Container \dots}
node (nT3) [box=\n1/blue!80!black,above=of nT2] {Container \dots}
node (nT4) [box=\n1/blue!50,above=of nT3] {Container \dots};
% nodes on left and right
\path let \p1 = ($(nT4.north west) - (nL4.south west)$),
\n1 = {veclen(\y1,\x1)} in
node (L1) [box=\n1/purple!80!black,
left=of $(nT4.north west)!0.5!(nL4.south west)$,
anchor=south, rotate=90] {Configureation \dots}
node (L2) [box=\n1/olive,
left=of L1.north,
anchor=south, rotate=90] {Marketplace/Image Management}
node (L2) [box=\n1/gray,
right=of $(nT4.north east)!0.5!(nR4.south east)$,
anchor=north, rotate=90] {Security}
;
\end{tikzpicture}
\end{document}
like this?
correct text and colors i left to you ....
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta,
calc,
positioning
}
\begin{document}
\begin{tikzpicture}[
node distance=2mm and 3mm,
box/.style args = {#1/#2}{%
minimum width=#1, minimum height=6mm, align=center,
fill=#2,
font=\bfseries, text=white,
draw, inner sep=2mm, outer sep=0mm}
]
% left containers (in vertical midddle of image)
\node (nLa) [box=20mm/red] {container};
\node (nLb) [box=20mm/red,right=of nLa] {container};
\node (nLc) [box=20mm/red,right=of nLb] {container};
% right containers (in vertical midddle of image)
\node (nRa) [box=20mm/red,right=of nLc] {container};
\node (nRb) [box=20mm/red,right=of nRa] {container};
\node (nRc) [box=20mm/red,right=of nRb] {container};
% nodes below (left and right column)
\path let \p1 = ($(nLa.west) - (nLc.east)$),
\n1 = {veclen(\y1,\x1)} in
node (nL2) [box=\n1/purple, below=of nLb] {container Runtime}
node (nL3) [box=\n1/cyan, below=of nL2] {Container OS}
node (nL4) [box=\n1/cyan, below=of nL3] {Physical Host (or VM)}
%
node (nR2) [box=\n1/purple, below=of nRb] {container Runtime}
node (nR3) [box=\n1/cyan, below=of nR2] {Container OS}
node (nR4) [box=\n1/cyan, below=of nR3] {Physical Host (or VM)};
% nodes on bottom and top
\path let \p1 = ($(nLa.west) - (nRc.east)$),
\n1 = {veclen(\y1,\x1)} in
node (nB) [box=\n1/purple,
below=of $(nL4.south)!0.5!(nR4.south)$] {DevOps Tools}
%
node (nT1) [box=\n1/black,
above=8mm of $(nLc.north)!0.5!(nRa.north)$] {Container Network}
node (nT2) [box=\n1/blue!40!black,above=of nT1] {Container \dots}
node (nT3) [box=\n1/blue!80!black,above=of nT2] {Container \dots}
node (nT4) [box=\n1/blue!20,above=of nT3] {Container \dots};
% nodes on left andright
\path let \p1 = ($(nT4.north) - (nB.south)$),
\n1 = {veclen(\y1,\x1)} in
node (L1) [box=\n1/purple!80!black,
left=of $(nT4.north west)!0.5!(nB.south west)$,
anchor=south, rotate=90] {Configureation \dots}
node (L2) [box=\n1/olive,
left=of L1.north,
anchor=south, rotate=90] {Marketplace/Image Management}
node (L2) [box=\n1/gray,
right=of $(nT4.north east)!0.5!(nB.south east)$,
anchor=north, rotate=90] {Security}
;
\end{tikzpicture}
\end{document}
lang-tex