eZ CMS is based on the Symfony2 framework and follows its organization of the app. Like in Symfony, where "everything is a bundle", your eZ application is going to be a collection of bundles.
What is a bundle?
A bundle in Symfony (and eZ) is a separate part of your application that implements a feature. You can create bundles yourself or make use of available open-source bundles. You can also reuse the bundles you create in other projects or share them with the community.
Many eZ CMS functionalities are provided through separate bundles included in the installation. See Bundles reference for a reference of the included bundles.
How to use bundles?
By default, a clean eZ Platform installation contains an AppBundle where you can place your code.
To learn more about organizing your eZ project, see Structuring an eZ project.
How to create bundles?
You can generate a new bundle using a generate:bundle
command. See Symfony documentation on generating bundles.