Highlights
- Integration and flexibility: Docker ensures seamless integration of JaneTech’s applications across different services and infrastructures, allowing easy transition between platforms like AWS Lambda, Amazon ECS, and Kubernetes for their 35+ supported core services.
- Deployment and scalability: Reduced setup times, minimized errors, and increased load without traditional scaling issues, managing up to 1,800 concurrent container instances and hundreds of thousands of concurrent requests during peak usage.
- “Docker is a core service for us — it’s critical for building enterprise-grade systems that last.” — Mona Fawzy, CTO and founder of JaneTech.
Introduction
Established in 2016 and headquartered in New York, JaneTech is an engineering firm that serves a variety of industries. Their primary focus is developing bespoke technology solutions in media, education, gaming, and virtual reality. JaneTech also prioritizes diversity and inclusion, especially supporting underrepresented groups in science, technology, engineering, and mathematics (STEM).
JaneTech faces specific challenges in creating software that meets the unique requirements of each industry. Alongside the necessity for quality and performance, the nature of serving many customers and business customers makes ensuring software compatibility across platforms a priority.
Despite the diversity of projects, JaneTech also faces the challenge of maintaining consistency in software development and ensuring reliable performance across all projects. Standardizing processes is necessary, but it should not stifle innovation that drives the success of JaneTech’s customers.
These challenges underscore the complexity of JaneTech’s work and the need for robust and adaptable technologies to simplify development processes, enhance scalability, and deliver high-quality, reliable software that meets the varied needs of its clients. In this context, integrating technologies like Docker becomes crucial for JaneTech’s operational success.
Mona Fawzy, the CTO and founder of JaneTech, shared her insights into why JaneTech uses Docker, a critical piece of the company’s commercially supported tech stack, to enhance its development processes. Fawzy’s detailed account reveals the strategic decision-making and benefits behind integrating Docker into JaneTech’s project workflow.
Company profile
About JaneTech
JaneTech is a software development firm specializing in creating bespoke technology solutions for industries such as media, education, gaming, and virtual reality, emphasizing diversity and inclusion within STEM fields.
Challenges
Complexity in scalability and deployment
JaneTech’s approach to project development is predicated on sustainability and reliability. According to Fawzy, Docker is not just a tool but a fundamental component of JaneTech’s development strategy. It ensures that the products and services offered have a lasting impact and remain relevant and functional for their clients over extended periods.
JaneTech’s need to support multiple enterprise customers exacerbates their scalability challenges. At any given time, they manage hundreds of thousands of concurrent requests across their platforms. Critical to handling such volume, its deployment strategy involves maintaining a few hundred different Docker images across dev, QA, staging, and production environments.
Constantly evolving technology presents software development firms with mixed challenges that can hinder their ability to deliver projects effectively. For companies like JaneTech, operating across multiple sectors amplifies such challenges, including:
- Environment discrepancy: Significant challenges arise from the differences between development, testing, and production environments. This is amplified at a shop like JaneTech dealing with many customers in different environments and can lead to the notorious “it works on my machine” syndrome, where software behaves differently across environments due to operating systems, versions, and configuration variations. Such discrepancies can derail project timelines and increase debugging and troubleshooting efforts, straining resources and delaying deliverables.
- Scalability issues: As firms grow, they must scale their applications efficiently to handle increased load. Traditional scaling methods can be resource-intensive and prone to errors, complicating deployment and jeopardizing system stability and performance.
- Integration complexity: Today’s software development typically involves integrating many technologies, frameworks, and services. Although essential for creating complete solutions, this integration often leads to compatibility issues. Without a unified approach, integration challenges may result in fragile systems that are hard to maintain and update.
- Resource management: Efficient management of developer time and infrastructure resources is essential for profitability and effectiveness. Overhead costs related to setting up and maintaining development environments can escalate quickly, especially in projects requiring multiple varied technology stacks.
Solution
Consistency across varied enterprise environments
Maintaining productivity across clients and technically diverse projects requires a consistent approach for JaneTech’s software development team. Docker provides a common software deployment platform that works within any environment. Creating new development, test, and deployment loops is critical.
JaneTech chose Docker because of its flexibility, reliability, and widespread acceptance in the development community. Facilitated through GitHub Actions and AWS orchestration, Docker container technology is pivotal in JaneTech’s implementation of CI/CD pipelines, supporting around 35 core services. Fawzy emphasizes Docker’s essential integration capabilities for building robust enterprise architectures, which are vital for the thousands of containers operated dynamically across services like AWS Lambda, Amazon EC2, and AWS Fargate.
Fawzy also highlights the changes in the industry. In 2006, she worked on a streaming radio project involving servers sitting under desks to stream internet radio. Today, she is working on a similar project, launching 700 stations hosted via cloud services. Although the project started on AWS Fargate, they had to quickly jump to a different service. While the use case is the same, the infrastructure is different. Being cloud-native and specifically using containerization has allowed her team to be more agile.
Fawzy notes that “Docker allows us to be agnostic or ubiquitous. We may start with Lambda, but we can easily transfer to ECS. If we decide that this is a Kubernetes project, EKS, Azure, or local cloud service, we can easily migrate. Docker is a “universal language” to us. We dockerize everything so it’s reusable no matter what service we use.
Cloud services, containerization, and DevOps methodologies have allowed companies to modernize. Fawzy highlights, “At JaneTech, we build things that last. We’re not a startup chasing market fit with a short shelf life. We expect everything we build to serve our customers for years. To build things that last, it has to be Docker.”
Key benefits
The integration of Docker within JaneTech’s development process has led to a multitude of benefits, By integrating Docker into its development process, JaneTech has experienced numerous advantages, including:
“Docker allows us to have the same patterns no matter what the framework or language is or even what the app is. Docker and containers provide several key advantages in bringing projects to fruition and on time,” Fawzy states.
Results
Continuous innovation and customer satisfaction
With approximately 1,800 container instances maximized at peak and managed effectively through AWS orchestration, JaneTech ensures high availability and robust performance across all their client projects.
Fawzy again emphasizes Docker’s role in JaneTech’s ability to manage large-scale deployments without compromising on speed or reliability. “Docker is critical for enterprise-grade systems, and it integrates with anything. If we’re building enterprise architecture, there’s no other choice than Docker.”
JaneTech benefits from:
- Enhanced development efficiency: The containerization approach reduces setup times, minimizes deployment errors, and streamlines the transition between development stages across various projects.
- Increased project versatility: With Docker, JaneTech can now manage a more heterogeneous project portfolio, ensuring reliable and consistent deployments across different types of projects, including complex e-commerce systems and interactive media platforms.
- Long-term strategic benefits: The standardization of Docker as a core component of the development strategy has prepared JaneTech to handle future technological shifts and market demands efficiently. This foresight is crucial for maintaining the relevance and effectiveness of their solutions in a rapidly evolving digital landscape.
Fawzy’s vision for JaneTech, coupled with Docker’s capabilities, illustrates a partnership that addresses the technical demands of their projects and aligns with the company’s mission to inspire and enact positive change through technology. “So I, as an engineer, am happy to pay for software that performs and delivers a core service requirement. That’s why we are a paying customer. To be honest, even if it were free, I would still want to pay for it because I would expect that when I’m paying,” Fawzy says.
JaneTech’s integration of Docker highlights a strategic approach to development that prioritizes flexibility, efficiency, and reliability. Managing hundreds of Docker images across multiple environments has positioned JaneTech to effectively scale and meet the diverse needs of their enterprise clients, solidifying their reputation as a leader in resilient, scalable software solutions.
As JaneTech continues to grow and evolve, Docker remains a cornerstone of their development philosophy, enabling them to navigate the complexities of modern software development while staying true to their mission of creating technology for positive change.
Looking ahead, JaneTech is poised to continue leveraging Docker to maintain its edge in delivering high-quality, resilient, and customer-centric solutions. Fawzy’s commitment to Docker underscores its indispensable role in JaneTech’s success and its potential to facilitate future innovations.