Writable, which provides online services that assess and monitor the writing growth of students, wanted to create more time to focus on strategic IT initiatives by automating DevOps processes and ensuring its IT infrastructure in the cloud could easily scale up and down according to workload demands. By turning to Mission for its Cloud Foundation and ongoing Cloud Elevate services, Writable was able to move its applications off of Microsoft Azure and deploy a new infrastructure on Amazon Web Services (AWS). The new cloud environment features containerized microservices, infrastructure-as-code (IaC), and a CI/CD pipeline that leverages several AWS services—including AWS Fargate serverless compute resources and Amazon Elasticsearch Service to analyze logs.
With the new capabilities created by Mission in the AWS environment, Writable can prove compliance and streamline audits when customers request a review of the security controls. The environment also adapts depending on the network connections used by students while handling spikes in workload demand during school hours. Writable further benefits from compute resources that scale down at night and on weekends to reduce cloud costs and the ability to accelerate the implementation of environments for disaster recovery and new product offerings. For the internal IT team at Writable, the environment speeds up the process to diagnose and resolve infrastructure and application performance issues while also streamlining the implementation of software code changes.
“All of the tasks we’ve collaborated on with Mission demonstrate just how wide their expertise spans. They are an ideal partner for building and supporting our AWS environment to ensure applications continue to meet the needs of our customers. I can also step out of the hands-on DevOps role and focus on the bigger picture—I now spend less time in the weeds solving technical problems and more time enhancing our applications.”
Driven by the vision to elevate the writing proficiency of students across the U.S., Writable continues to operate like a start-up with a lean staff. Shawn Hempel, the Writable CTO, handles software development and deployment, cybersecurity, and the company’s IT infrastructure.
As the company began to grow rapidly, Hempel wanted to create more time to focus on strategic IT initiatives by automating DevOps processes and ensuring the IT infrastructure could easily scale up and down according to workload demands. “The demand on our applications is heavy during the school day but not at night and during weekends,” Hempel explains. “We want to handle the activity spikes, but we also do not want to pay for compute resources when we don’t need them.”
At this time, the Writable applications were running in a cloud environment hosted by Microsoft Azure. Hempel determined it would be best to create containerized microservices for the applications within a cloud infrastructure. This would increase the ability of the compute resources supporting the applications to scale up as each school day begins in the eastern U.S., and then scale down when schools close for the day in the west.
“Our deployment in Azure was manual,” Hempel points out. “We felt we needed to consider a new environment that provides access to tools for automating processes and containerizing applications. We also realized we would benefit by collaborating with a partner with expertise in DevOps and in modernizing infrastructure environments. Trying to hire experienced resources with these skills would have been more costly and taken longer than we wanted to wait.”
In selecting a new cloud environment for the Writable applications, Hempel did not need to look far: The database supporting the applications was already running in the Amazon Web Services (AWS) cloud. “We were happy with the performance of the database running in AWS,” says Hempel. “We also found AWS easy to navigate when setting up the environment and deploying applications.”
Another key for Hempel is that AWS offers a wide range of services that enable the cloud platform to perform optimally. For example, AWS Fargate—a serverless compute engine—automatically scales container environments.
“Fargate is very hands-off and makes it easy to scale rapidly in a cost-effective way,” Hempel adds. “By using the serverless approach, we don’t have to pay for hardware when we’re not using it.”
When Hempel began looking for help to migrate the Writable applications from Azure to AWS, he came across a helpful blog published by Mission. That prompted him to view other Mission blogs, and he was impressed by their range of expertise. Hempel then reached out to Mission to schedule a call to discuss the possibility of designing the AWS infrastructure and setting up a containerized microservices environment.
Hempel also appreciated how the Mission team took the time to understand how the Writable business operates. With the confidence Mission instilled, he did not seriously consider another partner. “I needed someone who could complete tasks on their own without a lot of input,” Hempel says. “That’s exactly what we get from Mission.”
“In addition to Mission’s knowledge about AWS, I was particularly impressed with their proficiency in building infrastructure-as-code environments using the Terraform tool. Mission also offers a subscription payment model that gives us the ability to hire a small team that works with us consistently over time.”
To prepare for the migration of the Writable applications, Mission DevOps Consultants and Engineers designed and deployed the AWS infrastructure. In addition to AWS Fargate, key components include Amazon EC2 (Elastic Cloud Compute), Amazon S3 (Simple Storage Service), AWS Relational Database Service (RDS) for Aurora PostgreSQL, and Amazon Elasticsearch for log analysis.
Next, Mission delivered its Cloud Elevate service to create the infrastructure-as-code (IaC) environment with Terraform. Mission also set up Docker containerized microservices in Amazon Elastic Container Service (ECS) and a hybrid CI/CD deployment pipeline that uses a source code repository hosted by Bitbucket.
The containerized environment makes it easier and faster to roll out applications and updates. Mission also created integrations between the application container build-and-deploy pipelines and a specific Terraform IaC configuration so that when working on a new feature, ephemeral environments are created for validation. Additionally, commits to a pattern-specific code branch (i.e., feature/*), allow for the triggering of a downstream Terraform pipeline, which is automatically populated with specific information from the upstream application branch.
An environment is then automatically provisioned, pulling the relevant container/data sets and launching an environment for testing and validation. Once complete, the process breaks down the environment when the feature development is marked complete. Mission also set up separate content deployment pipelines for per-environment updates of static assets. All of the pipelines are secure and use easier patterns than manual workflows.
Following the application migration, Mission continues to introduce new containerized microservices for Writable applications and recently set up an automated disaster recovery environment in another AWS region. The process to build and validate the disaster recovery plan and the environment was greatly accelerated by the IaC approach.
Mission also migrated the load testing framework from BlazeMeter to a native AWS service using an open source tool called Taurus that runs on isolated AWS Fargate clusters. This allows Writable to verify its applications will continue to handle activity spikes during the school day.
Another key facet of the implementation is security—especially since Writable handles personally identifiable information belonging to students. To address this issue, Mission encrypted data so it is protected in transit and at rest.
“Mission’s help in securing our AWS environment and validating our compliance is critical,” Hempel says. “School districts need assurance that their technology partners have done the work to protect student information. With the AWS tools Mission showed us how to use, the audit process is a lot less burdensome.”
The AWS environment designed and supported by Mission also proved itself when the COVID pandemic hit. The usage of Writable applications by students did not spike more so than normal, but rather than connecting from school networks, the students began using their home networks, which did not always provide reliable connections.
“Our environment had to respond to a wide spectrum of network connectivity and devices,” Hempel says. “This primarily affected our applications, but given the way Mission set up the infrastructure, we were ready. The load testing also helped us make sure we could adapt to different connection paths.”
The IaC approach applied by Mission has delivered additional benefits. “The transition to IaC is usually challenging, but Mission’s expertise with Terraform made that process easy,” Hempel emphasizes. “The approach came in handy when we developed our disaster recovery environment. We reused many components from the existing environment rather than manually recreating them to accelerate the implementation.”
Another tool Hempel appreciates is Amazon Elasticsearch. Writable faced a big challenge pulling together log data from the various services that run the applications. APIs, the database, and the front-end of each application all generate logs, so it was difficult to trace application performance problems.
“Elasticsearch resolves that issue by pulling all the data together into a single index,” Hempel explains. “This makes it easier to proactively discover application issues and to audit how something was changed. We can also discover, respond and mitigate customer issues much faster.”
The IT team also benefits from another key AWS difference. In the previous cloud environment, single-line code changes to fix bugs usually required a prolonged process. After pulling code from the repository, Hempel would have to log into five different machines, change the code, and redeploy it separately on each machine. Now in AWS, he can commit code changes, go to the build pipeline, click run, and that’s it—the code changes occur automatically in every machine.
“As a result of the hard work we’ve done internally and the contributions from Mission, we’ve seen significant performance improvements in our applications and our database. Our ability to scale and our response and resolution times for issues have also improved.”
Hempel says that partnering with Mission helps to mitigate concerns that Writable applications might struggle under a high workload or experience a security breach. Mission also helps reduce the day-to-day stress he feels while fighting fires so can stay productive in the rapid-pace Writable environment.
Writable is in the process of developing a new educational product that will run on a separate AWS account. The IaC approach will pay off once again as Hempel can spin up the new environment quickly by reusing some of the components from the existing AWS account. This will allow Writable to bring that product to market faster and start generating revenue sooner.
Through online services that assess and monitor the writing growth of students, Writable helps teachers support and motivate students to become purposeful and proficient writers. The company assists more than 10,000 schools in organizing writing programs around the instruction and feedback that every teacher and student needs.