Level Up with AWS App2Container (A2C): A simplified process for containerizing workloads in a repeatable, reliable way
August 10, 2020 | Best practices
Anthony Hodson Solution Architect
AWS’ services are embracing containers, with the emerging industry standard of Kubernetes featuring heavily in recent years.
Until around 20 years ago, you would run a physical server with an Operating Systems (OS), and your application would run on that. When the server was not well utilised, you were not making the most of your investment. From around 2000, you could have one physical server, running many virtual servers, each of which ran a complete OS, with your applications running on those OS’s; you made better use of the hardware, but there was waste through duplication of the OS and supporting programs on each Virtual Machine.
With containers we remove the extra OS’s and run the minimum needed for each application. Because containers (should be) smaller, they start-up more quickly, and have less overhead. This saves money when in cloud. There’s even ‘serverless’ containers where you don’t worry about the underlying servers.
From Servers to Serverless Containers
Containers are often mentioned in the same conversations as Agility and DevOps. Just as DevOps can seem daunting with all the code that needs writing; containers can also seem daunting for those not comfortable with code. This means that they are left for ‘another day’ or ‘for the next CIO.’
Until now, containerising applications which have not been under active development for some time or were developed elsewhere, could seem too challenging. To do it, you would need to understand the software’s dependencies, security and networking needs. AWS sought to address this issue by developing a tool to simplify the process.
On July 1st, 2020, AWS announced the launch of App2Container (A2C) for Java and .NET, with Ensono as a launch partner.
Here’s how it works:
AWS has 6 strategies for Cloud Migration and App2Container gives an easier path to refactoring through opening up new architectures and de-coupling parts of a workload. Then AWS’ Container Services help teams operate and scale parts of the application separately.
Containers are great for automated testing (improving testing speed and quality) and ephemeral testing (improving the throughput of testing and reducing costs); both pave the way for delivering changes faster with fewer problems through Continuous Integration and/or Continuous Delivery (CI/CD).
On the Operations front, through removing the OS and the management responsibilities, resources are freed-up to work on changes customers value rather than working with complexity.