There are two main types of scaling: vertical scaling involves upgrading hardware on a single server, while horizontal scaling involves adding more servers. Before scaling, strategies like caching and optimizing queries can improve performance. When scaling databases, options include sharding data across multiple servers and using master-slave replication. Server scaling with microservices breaks applications into independent, communicating components. General tips for scaling include monitoring resources, auto-scaling with metrics, and killing instances to reduce costs when possible.