In this post, Stan Chan, Head of Core Infrastructure at Symphony Commerce talks to us about how they’re using SignalFx to create the operational metric system for the whole organization.
About Symphony Commerce
Symphony Commerce delivers enterprise-level commerce as a service to today’s fastest growing brands. Symphony’s handles critical wholesale and retail business workflows from commerce applications to fulfillment. This allows brands to focus on core functions like building products and nurturing customer relationships. Symphony’s commerce services come together seamlessly to deliver intelligent and personalized experiences across the customer lifecycle, so brands can deliver a unified, branded commerce experience. With pay-per-use model, Symphony’s success is tied to its brands success; there are no setup costs or hidden fees.
Tell us about Symphony and your team.
Stan: Symphony basically brings established, enterprise-level commerce capabilities to small and medium-sized businesses (SMBs). Our vision is to democratize commerce by delivering commerce infrastructure previously available to only large companies to any brand in the world. We have about 70 employees – majority of us are engineers, product managers or designers. There are six people in core infrastructure team. My team is focused on the platforms used by everyone else, including all infrastructure configuration, deployment, monitoring, and operations. We work together with other engineering teams to optimize platforms for them and help them deploy and manage their own services.
Tell us a little bit about the nuts and bolts of your application
Stan: We use mostly Java and Scala for the back end, AngularJS for the front. Symphony runs 100% on AWS, scaling anywhere from 50 to many 100s of VMs depending on load and how customers are using the system. We run EC2, S3, ELB, ELC, RDS, CloudFront, CloudFormation, and have just started using the new EC2 Container Service for our Docker deployment. Some of the other technologies we use include: Elasticsearch, Cassandra, Zookeeper, and Kafka.
What kind of challenges do you face with monitoring?
Stan: We had some gaps with our previous monitoring setup, a mixture of check based and other commercial metrics tools. First, we couldn’t get access to all the metrics we desired because of restrictions on the types or numbers of metrics that those tools could handle. For the metrics we did have, we could not get aggregations like percentiles. Finally, we couldn’t get metrics at a fine enough resolution to actually make timely decisions and catch problems before they had too much of an impact on customers.
What does your monitoring stack look like now?
Stan: We use CollectD to gather infrastructure metrics and SignalFx’s Java client library to instrument metrics directly into Symphony code. Everything gets sent into SignalFx for production monitoring of systems and services. For code level stack traces and performance monitoring we use AppDynamics.