Internet of Things (IoT) is proliferating in our real world, and it is a promising technology that serves a very comfortable service to the users. IoT's underlying technology is to connect to central Cloud Computing (CC), which is a huge data center collecting the generated data by IoT devices, and it is located in different areas on demand. However, cloud computing lacks data transmission because of the infrastructure and limitations of networks which enormously decrease its performance. Therefore, a new paradigm has been founded to act as a middleware between the Cloud and IoT, termed Fog Computing (FC) Technology. Considering Fog as a cloud extension that provides computing service at the edge of the network, Fog Computing placement enables this technology to deal with numerous data locally. In this study, we surveyed Fog computing with in-depth analysis and covered the latest studies to address and overcome the existing challenges in FC. We reviewed fog computing technology conceptually and defined it based on the existing studies in the literature, together with its architecture, applications, advantages, and open issues with optimization methods being performed to obtain the optimal services. INDEX TERMS Fog Computing Applications, Fog Computing Concept, Fog Computing Open Issues, Cloud computing, Internet of Things (IoT).