It’s no secret that LeaseWeb heavily relies on automation to manage the large network of services that we offer. Over the last five years, we have been investing a lot in our internal systems and our strategy has been to have them communicate via APIs (specifically web services).
Actually, we now have some systems that are API-only. They only provide some limited functionality that can be utilized from other systems, for example, rebooting a bare-metal server, or managing switch ports. This gives us the following benefits:
- Scalability: We can scale our data center services horizontally as we spread our infrastructure over the world.
- Abstraction: Most of the services abstract some physical device or product. Over the years we have implemented multiple types/brands of devices, so it’s good to only have one point in the architecture where we need to add support for them, the rest is abstracted towards other internal systems.
- Separation of concern: Each service only deals with a limited set of functionality, so it’s really clear who’s responsible for what. This is a good thing since we currently have seven development teams and they all work on a specific part of the overall architecture.
To encourage this service-based thinking, we have been doing a lot of API-first development lately (also see this blog post).
Besides our internal APIs, we also have some customer APIs, which can be enabled in our Customer Portal. Currently we are aware that it does not unleash the full potential of the LeaseWeb infrastructure and we have a dedicated team working on this. They are making sure our customers can tap in directly to our core services to deploy and manage their infrastructure. Our aim over the rest of 2014 is to expose as many internal web services to our customers as possible.