Blog

Introducing the Akamai Docker Development Environment

May 26, 2020 · by Javier Garza, Lukasz Czerpak, and Anthony Hogg ·

Akamai offers solutions for web, API, media, security, IoT, enterprise applications, infrastructure solutions, and DNS. Managing all those services was traditionally done using the Akamai Control Center, but it can be time consuming when you have a large number of properties and services with frequent updates.

Akamai at a glance

This is where APIs come into place. Akamai offers a rich library of more than 100 APIs that can help you manage your properties and services. 

Akamai also offers API authentication plugins for the most popular programming languages, and also a command line interface tool (CLI) with over 20 different packages that you can use to manage your Akamai solutions as code. Whether you’re updating your Akamai delivery configuration, protecting your media assets, or updating your web firewall, doing it via APIs is easier than you might think.

The Akamai Development Environment bundles the tools you need together to help you get started faster. It also comes in the form of a larger golden Docker image of approximately 1GB that has the tools you need to use Akamai-as-code and some smaller modular images of 8 to 60MB that you can pick and choose for automating specific tasks on production environments. 

Pre-requisites

In order to use the Akamai Development Environment, you’ll need two things:

  1. To have Docker installed 

  2. Valid API credentials to authenticate to any of the Akamai APIs

Why Docker?

Docker containers encapsulate everything an application needs to run (and only those things), and they allow applications to be shuffled between environments easily. For example, you can use the same docker command to run the Akamai Developer environment on Windows, MacOS, and Linux. 

Why Docker?

Now, thanks to DockerHub’s integration, installing a container is completely transparent, as everything needed will be pulled automatically the first time you execute the docker run command on a given host. Although as you can see our Docker container has a lot of components, it starts under 2 seconds.

DevOps, Agile and Lean methodologies

DevOps, which combines software development and information-technology operations shortens the development life cycle, fosters better collaboration, and provides continuous delivery with high software quality. 

At Akamai, we use DevOps best practices to collaborate with other teammates all across the globe. To give you an example of how these practices are leveraged, below is a diagram of our workflow.

DevOps, Agile, and Lean Methodology

Continuous Deployment Workflow

One problem that people face when maintaining Docker containers is that you often have to create new builds whenever one of the components included inside the container updates. In order to optimize that process and reduce the amount effort you need to expend, we implemented a continuous deployment workflow that you can see below: 

Continuous Deployment Workflow

Whenever you commit a change on the GitHub primary branch, TravisCI automatically generates a new build, which is then pushed to Docker Hub. Travis also notifies our team on Slack when a build completes.

If you’d like to learn more about the Akamai Development Environment, check out our blog “Setting Up The Akamai Development Environment Using Docker.”

You can view our related blogs here to learn how to setup the Development environment, and use it to automate Web, Media, Security and DevOps workflows:

Resources

Learn more about docker and setting up a development environment:

About the authors

speaker

 

Javier Garza is a developer advocate at Akamai Technologies where he helps the largest companies on the internet run fast and secure apps by leveraging web performance, security and DevOps best practices. Javier has written many articles on HTTP/2 and web performance, and is the co-author of the O’Reilly Book “Learning HTTP/2.” Javier has spoken at countless developer-related events around the world including well-known conferences like Velocity, AWS Re:Invent, and PerfMatters. His life’s motto is: share what you learn, and learn what you don’t. In his free time he enjoys challenging workouts and volunteering for non-profits that provide educational resources to children.

speaker

 

Lukasz Czerpak is a Senior Enterprise Architect at Akamai based in Krakow, Poland with 10+ years of experience designing, developing and managing software projects, ISP infrastructure, and cloud services. Lukasz works with Akamai customers on some of our most advanced and complex integrations, he also provides consulting and DevOps training, and is a regular speaker at Technology Days.

speaker

 

Before joining Akamai in 2016, Anthony spent 10 years building, delivering and maintaining applications for web agencies and SaaS vendors as a full-stack developer. He now puts his deep knowledge of the web platform at the service of Akamai's customers, helping them deliver fast experiences to a global audience, the DevOps way. He is currently focused on automation and bringing Akamai's DevOps renaissance to customers by writing and delivering training content and talks, integrating and building tools, and engaging in technical consulting.