With the trend of Internet of Everything, the number of end devices (e.g. smartphones, smart glasses) has increased rapidly which makes the data produced by these devices have grown at rates far more than the growth rate of network bandwidth. At the same time, the emergence of novel applications demands lower latency of the network, such as augmented reality and manless driving. Edge computing integrates any computing, storage and network resources at the edge of the network into a unified platform that provides services for users. This new computing model gets around the bottleneck that is caused by network bandwidth and latency, has received widespread attention in both industrial and academic. In this survey, we first introduce the concepts of edge computing and provide the definition of it. To help the readers to better understand the characteristics of edge computing, we compare it with cloud computing. We then analyze the three representative instances of edge computing platform and make a systematic comparison of them. After that, we enumerate some typical applications based on the edge computing to describe the advantages of edge computing in mobile or Internet of Things applications. Finally, the paper lays out several grand challenges of edge computing.