Andrew Popp, Senior DevOps Engineer, Ogilvy USA Digital Technologies Group
Over the past five years cloud platforms such as AWS have facilitated the process of putting technology to work, empowering technology teams to deliver client needs in ways that they never have before. AWS and its various service offerings have enabled technology professionals to spend less time planning and more time experimenting and implementing new tools. Creating automated, idempotent and robust modern applications and tools backed by declarative states in code has allowed for this efficiency. AWS has been the cloud partner that has empowered our group to move ahead at lightning speed. Templating, automation, and service utilization are core components that have facilitated our business transformation within the cloud.
AWS is built to help businesses be nimble. There are moments, however, when the initial interactions can be daunting: the ecosystem is large, the service offerings diverse, and the pricing and limits at times ambiguous. AWS is built on a foundation of exploration and its goal is to empower tenants to find better and easier ways to work. This requires a constant reconsideration of your teams’ current approach to technology, and at times that may require a departure from standardized approaches. As technology professionals, we have been able to do this by embracing serverless technologies. Serverless computing is based on a “cloud computing execution model in which cloud provider acts as the server, dynamically managing the allocation of machine resources” abstracting us further away from the idea of the deployment and management of compute resources(EC2), and more towards delivering our client needs expediently.
The first stop for many with AWS is EC2 (Elastic Compute Cloud), which allows one to provision instances for various workloads by defining compute resources, and network configurations. With EC2 you have your standard resource provisioning concerns, the biggest two being: timing and cost. It takes time to spin up, configure, and deploy dependencies to this instance to support your workload. Clients often ask us for static websites and landing pages, which consist largely of client-side browser based content. Traditionally we have deployed EC2 instances to host this content, with some type of web server technology (nginx/apache) serving this content. We would likely provision a load balancer, and create a highly available approach by adding a second or maybe third node. Additionally, we might want auto-scaling, so we can dynamically respond to site load. Finally, we may be required to provide a globalized solution, with geo located points of presence. At a baseline a 2 webserver (t1.micro) implementation, with load balancer, and low web traffic, has a monthly cost of approximately thirty dollars. We have also created a significant time investment for the engineer involved in deployment, which has its own associated costs. The spirit of exploration tells us there has to be another way, one with reduced cost, and engineering overhead.
The first stop for many with AWS is EC2 (Elastic Compute Cloud), which allows one to provision instances for various workloads by defining compute resources, and network configurations
Agility is important for technology teams, and it is extremely important for technology teams in advertising. At the end of the work pipeline and part of the delivery team, we are often approached with large projects, unclear goals, and short deadlines. We do not have time to deploy a farm of webservers, and we more than likely do not have the budget. Advertising campaigns vary in duration, and usually the digital or web based aspect of the campaign plays a small part, with a short shelf life. Agile development methodologies and project planning are all for naught if you do not have the right tool set; previously gained efficiencies will be lost. AWS offers the ideal toolset, via services like Lambda (Faas Functions-as-a-Service), RDS (Relational DB Service), S3, and CloudFront CDN all of which follow the serverless model, and have become part of our standard technology approach.
Returning to the static site example we can see the opportunity for improvement, and a deeper exploration of AWS services provides us with a much more intelligent solution. At its highest level one might see S3 as strictly a dumping ground for files, and its sole purpose being web based object storage. A deeper look shows us its serverless web hosting capabilities, and already we are at an advantage over our previous approach. That same lightweight static site hosted in s3 with normal traffic might cost you approximately fourteen cents a month, with a fraction of the time and effort. S3’s tight integration with CloudFront CDN allows us to use S3 as an origin, and create a secure and highly available deployment for our site, with global reach. CloudFront essentially provides you with a webserver in over 134 Points of Presence (123 Edge Locations and 11 Regional Edge Caches) in 61 cities across 28 countries. Imagine doing that on your own! A continued exploration might uncover S3’s notification abilities and its seamless Lambda integration, allowing one to automate CDN cache invalidations during deployments. Furthermore, a templating language like CloudFormation or Terraform allows us to maintain our baseline configuration, and iterate with high velocity. This is just one of many examples of how an AWS oriented approach to technology based business deliverables has allowed us to be more agile, and better serve our clients.
With AWS we have been able to create a standardized highly reliable and cost effective approach to a re-occurring client need that prior to our transformation took much more time, was much more complex, and cost much more money. We have additionally been able to take those lessons and apply them to other projects. The AWS service offerings provide us with the best balance of operational excellence, security, reliability, performance efficiency, and cost effectiveness. We have just started scratching the surface on how AWS can continue to improve our business, but clearly see that our best path forward requires a deep understanding, collaboration, and finally, exploration into how AWS can enable us to put the cloud to work.