{"componentChunkName":"component---src-templates-blog-list-jsx","path":"/blog/15/","result":{"data":{"prismic":{"allFeaturedblogs":{"edges":[{"node":{"featured_blogs_enabled":true,"heading":[{"type":"paragraph","text":"Featured posts","spans":[]}],"featured_blog_1":{"__typename":"PRISMIC_Blog","_linkType":"Link.document","blog_header_image":{"dimensions":{"width":790,"height":395},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/6d8d81b1-971a-4313-b033-b4e125cb14a0_MondoDB-blog-header-790x395.PNG?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing DigitalOcean Managed MongoDB – a fully managed, database as a service for modern apps","spans":[]}],"blog_post_date":"2021-06-29","blog_post_content":[{"type":"paragraph","text":"MongoDB is one of the most popular databases, and it’s ideal for apps that evolve rapidly and need to handle huge volumes of data and traffic. It offers advantages like flexible document schemas, code-native data access, change-friendly design, and easy horizontal scale-out.","spans":[{"start":22,"end":44,"type":"hyperlink","data":{"link_type":"Web","url":"https://db-engines.com/en/ranking","target":"_blank"}}]},{"type":"paragraph","text":"However, building and maintaining MongoDB clusters from the ground up can be a huge undertaking. Developers often complain that they have to spend their valuable time and resources on database management. Well, we’ve been listening and have some great news: accessing and managing MongoDB on DigitalOcean just got a lot simpler!","spans":[]},{"type":"paragraph","text":"We are excited to announce that DigitalOcean Managed MongoDB is now in General Availability. Managed MongoDB is a fully managed, database as a service (DBaaS) offering from DigitalOcean, built in partnership with and certified by MongoDB Inc. It provides you all the technical capabilities that make MongoDB so beloved in the developer community. Together we have ensured that you will get access to all the latest releases of the MongoDB document database as they become available.","spans":[{"start":32,"end":91,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/managed-databases-mongodb/"}},{"start":230,"end":241,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.mongodb.com/","target":"_blank"}}]},{"type":"paragraph","text":"Managed MongoDB simplifies the MongoDB administration. Developers of all skill levels, even those who do not have prior experience in databases, can spin up MongoDB clusters in just a few minutes. We handle the provisioning, managing, scaling, updates, backups, and security of your MongoDB clusters, allowing you to offload the complex, time consuming –yet critical – database administration tasks to us. This empowers you to focus on what really matters: building awesome apps.","spans":[]},{"type":"embed","oembed":{"height":113,"width":200,"embed_url":"https://www.youtube.com/watch?v=NvHQSV7jnKA","type":"video","version":"1.0","title":"Create a MongoDB Database on DigitalOcean","author_name":"DigitalOcean","author_url":"https://www.youtube.com/c/Digitalocean","provider_name":"YouTube","provider_url":"https://www.youtube.com/","cache_age":null,"thumbnail_url":"https://i.ytimg.com/vi/NvHQSV7jnKA/hqdefault.jpg","thumbnail_width":480,"thumbnail_height":360,"html":"<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/NvHQSV7jnKA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>"}},{"type":"heading2","text":"Benefits of Managed MongoDB","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"list-item","text":"Easy set up and maintenance: We create the database clusters for you. Simply choose the cluster configuration (e.g., memory, disk size, number of nodes, etc.), and the data center in which you want to host the database. Follow a few simple steps and your database cluster will be up and running in a matter of minutes. You can spin up clusters using the cloud control panel, CLI, or API.\n\n","spans":[{"start":0,"end":28,"type":"strong"}]},{"type":"list-item","text":"Automatic daily backups with point in time recovery: Data is one of the most important assets of an app, so it’s critical to backup your database. We take backups of your entire clusters automatically on a daily basis, for free. We also provide a point in time recovery for 7 days, that way if things go wrong due to human error, machine error, or some combination of both, you can easily restore the database as it was at any point in the previous 7 days. \n\n","spans":[{"start":0,"end":52,"type":"strong"}]},{"type":"list-item","text":"Automatic updates and access to latest MongoDB releases: You get access to MongoDB 4.4. This is the latest release of MongoDB and comes packed with numerous enhancements like hedged reads, rust, and swift drivers. Since we have developed Managed MongoDB in partnership with MongoDB Inc, you will always get access to new releases as they become available. With Managed MongoDB, the updates happen automatically. Just select a date and time for the updates and we take care of the rest. This makes it easy to stay up to date with MongoDB releases without disrupting your business.\n\n","spans":[{"start":0,"end":56,"type":"strong"},{"start":148,"end":169,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.mongodb.com/new","target":"_blank"}}]},{"type":"list-item","text":"High availability with automated failover: If your database goes down, it can take down the entire app, leading to bad customer experiences. With Managed MongoDB, you can easily minimize the downtime for your database and make it highly available with standby nodes. Standby nodes add redundancy, so if for example the primary node fails, the standby node is immediately promoted to primary and begins serving requests while we provision a replacement standby node in the background.\n\n","spans":[{"start":0,"end":42,"type":"strong"}]},{"type":"list-item","text":"Scale up easily to handle traffic spikes: As your app gains traction and the usage grows, it’s important to have a database that can keep up with the increased demand. With Managed MongoDB, you can easily scale up the size of database nodes when needed.\n\n","spans":[{"start":0,"end":41,"type":"strong"}]},{"type":"list-item","text":"Secure by default: Since data is critical, it also needs to be secure. We encrypt data at rest with LUKS and in transit with SSL. When you create a new cluster, it’s placed in a VPC network by default that provides a more secure connection between resources. You can also restrict access to your nodes to prevent brute-force password and denial-of-service attacks.","spans":[{"start":0,"end":18,"type":"strong"},{"start":178,"end":189,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/networking/vpc/"}}]},{"type":"heading2","text":"The need for Managed Databases","spans":[]},{"type":"paragraph","text":"DigitalOcean’s mission is to simplify cloud computing so developers, startups, and SMBs can spend more time building software that changes the world. While databases are a critical component to any application, building, maintaining, and scaling them can be complex and time consuming. For developers that are building apps for their business, database administration is often not a core focus area. But it’s quite common to find developers that write the code and then also roll up their sleeves to maintain databases. Such users would rather offload the tedious database administration and focus their limited time and energy on building and enhancing their apps. ","spans":[]},{"type":"paragraph","text":"With this in mind, we introduced Managed Databases a couple of years ago and are excited to add Managed MongoDB to our portfolio. With this release, DigitalOcean Managed Databases now supports the following engines:","spans":[{"start":33,"end":50,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/managed-databases/"}}]},{"type":"image","url":"https://images.prismic.io/www-static/87745cc1-1c5f-4463-b104-104b7fc30dc7_managed-databases-logos.png?auto=compress,format","alt":null,"copyright":null,"dimensions":{"width":849,"height":104}},{"type":"paragraph","text":"Managed MongoDB launch comes on the heels of DigitalOcean App Platform, a modern, reimagined PaaS (Platform as a Service) that we released a few months ago. App Platform makes it very easy to build, deploy, and scale apps and static sites. You can deploy code by simply pointing to your GitHub and GitLab repos, and App Platform will do all the heavy lifting of managing infrastructure, app runtimes, and dependencies. App Platform, along with Managed Databases, helps fulfill DigitalOcean’s mission by empowering developers, startups, and SMBs to focus more on their apps, and less on the underlying infrastructure and databases.","spans":[{"start":45,"end":70,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/app-platform/"}}]},{"type":"heading2","text":"How Managed MongoDB works","spans":[]},{"type":"paragraph","text":"DigitalOcean provides you with various compute options to build your apps like:","spans":[]},{"type":"list-item","text":"Droplets: On-demand, Linux virtual machines suitable for production business applications and personal passion projects.","spans":[{"start":0,"end":8,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/droplets/"}}]},{"type":"list-item","text":"DigitalOcean Kubernetes: Managed Kubernetes with automatic scaling, upgrades, and a free control plane.","spans":[{"start":0,"end":23,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/kubernetes/"}}]},{"type":"list-item","text":"DigitalOcean App Platform: A fully managed Platform as a Service.","spans":[{"start":0,"end":25,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/app-platform/"}}]},{"type":"paragraph","text":"No matter which compute option you choose to build your apps, you can easily add Managed MongoDB to it. In addition to this, Managed MongoDB also integrates with the Node.js 1-Click App from DigitalOcean Marketplace making it a lot easier to build Node.js apps.","spans":[{"start":166,"end":215,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/apps/nodejs"}}]},{"type":"heading2","text":"Simple, predictable pricing","spans":[]},{"type":"paragraph","text":"Just like all DigitalOcean products, Managed MongoDB provides simple, predictable pricing that allows you to control costs and prevent any surprise bills. You can spin up a database cluster for just $15/month, or a highly available three-node replica set for $45/month. Click here for more information.","spans":[{"start":270,"end":301,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/pricing/#managed-databases"}}]},{"type":"heading2","text":"Regional availability","spans":[]},{"type":"paragraph","text":"Managed MongoDB is currently available in the following regions:","spans":[]},{"type":"list-item","text":"NYC3 (New York, USA)","spans":[]},{"type":"list-item","text":"FRA1 (Frankfurt, Germany)","spans":[]},{"type":"list-item","text":"AMS3 (Amsterdam, Netherlands)","spans":[]},{"type":"paragraph","text":"We will be making Managed Mongo available in other regions soon. Please check out the release notes for most up to date information on regional availability.","spans":[{"start":86,"end":99,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/docs/release-notes/"}}]},{"type":"heading2","text":"Join us at deploy, DigitalOcean’s virtual user conference","spans":[]},{"type":"paragraph","text":"Today we have deploy, DigitalOcean’s signature user conference, which focuses on celebrating, educating, and connecting awesome builders from all over the world.","spans":[{"start":14,"end":20,"type":"hyperlink","data":{"link_type":"Web","url":"https://deploy.digitalocean.com/home"}}]},{"type":"paragraph","text":"Check out the keynote session from DigitalOcean's CEO, Yancey Spruill, in which he talks about where we're headed as a company and shares some exciting product updates. His keynote will be followed by sessions from community members, engineers, customers, and other experts that are building technologies and businesses powered by the cloud. With live Q&A and an active Discord server, there’s ample opportunity to engage and learn something new. Click here to attend the deploy conference.","spans":[{"start":14,"end":69,"type":"hyperlink","data":{"link_type":"Web","url":"https://deploy.digitalocean.com/agenda/session/552806"}},{"start":347,"end":384,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/deploy-discord"}},{"start":461,"end":489,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/deploy"}}]},{"type":"paragraph","text":"We are also launching a hackathon for DigitalOcean Managed MongoDB. Learn how you can participate, submit an app and get a t-shirt.","spans":[{"start":24,"end":66,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/mongodb-hackathon"}}]},{"type":"paragraph","text":"We hope you will give Managed MongoDB a try. Here are some sample datasets and sample apps that you can use to kick the tires. Check out the docs and let us know what you think!","spans":[{"start":22,"end":43,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com/databases/new?engine=mongodb"}},{"start":59,"end":90,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/do-community/mongodb-resources","target":"_blank"}},{"start":141,"end":145,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.digitalocean.com/products/databases/mongodb/"}}]},{"type":"paragraph","text":"If you’d like to have a conversation about using DigitalOcean and Managed MongoDB in your business, please feel free to contact our sales team.","spans":[{"start":120,"end":142,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/company/contact/sales/"}}]},{"type":"paragraph","text":"Happy coding!","spans":[]},{"type":"paragraph","text":"André Bearfield","spans":[]},{"type":"paragraph","text":"Director of Product Management","spans":[]}],"tags":[{"tag1":{"__typename":"PRISMIC_Tag","tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"author":{"__typename":"PRISMIC_Author","author_name":"André Bearfield","author_image":{"dimensions":{"width":553,"height":547},"alt":"André Bearfield","copyright":null,"url":"https://images.prismic.io/www-static/fdc7c85186f0a850b04083e1d4306bd1c19772e8_andre-bearfield.png?auto=compress,format"},"_meta":{"uid":"andre-bearfield"}},"_meta":{"uid":"introducing-digitalocean-managed-mongodb"}},"featured_blog_2":{"__typename":"PRISMIC_Blog","_linkType":"Link.document","blog_header_image":{"dimensions":{"width":790,"height":400},"alt":"Droplet Console","copyright":null,"url":"https://images.prismic.io/www-static/710499ae-78cc-4179-afc1-15793637b200_DODX3727-790x400-logo-2.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Securely connect to Droplets with SSH key pairs using a new Droplet Console","spans":[]}],"blog_post_date":"2021-08-10","blog_post_content":[{"type":"paragraph","text":"The famous author Ken Blanchard once said, “Feedback is the breakfast of champions.\" This is something we truly believe at DigitalOcean, and we always strive to enhance our products based on customer feedback.","spans":[]},{"type":"paragraph","text":"With this goal in mind, we are excited to introduce a new Droplet Console that will make it much easier to connect to your Droplets securely. The new Droplet Console provides one-click SSH access to your Droplets through a native-like SSH/Terminal experience. It also eliminates the need for a password or manual configuration of SSH keys. Starting today, we’re pleased to announce that the new Droplet Console is now available to all Droplet users.","spans":[]},{"type":"heading2","text":"Why you should be using Secure Shell (SSH) ","spans":[]},{"type":"paragraph","text":"Password-based security is notoriously insecure due to password fatigue and the overuse of passwords such as ‘123456’. Secure Shell or SSH is a network communication protocol that solves this by using passwordless solutions for encryption, enabling two computers to communicate and securely share data. At a high level, SSH works by creating cryptographic key pairs consisting of a public and private key, which are computer generated and stored separately to ensure their security. ","spans":[{"start":80,"end":117,"type":"hyperlink","data":{"link_type":"Web","url":"https://cybernews.com/best-password-managers/most-common-passwords/"}}]},{"type":"paragraph","text":"SSH has become the default encryption protocol for many industries, but it was difficult to use SSH keys with DigitalOcean’s current Recovery (VNC) console, which is why we developed our new Droplet Console. The new Droplet Console is backed by an agent that security supervises the key pair, while also providing one-click SSH access to our users. You can see the full list of features below.","spans":[]},{"type":"heading2","text":"The new Droplet Console: More time saving, less time wasting ","spans":[]},{"type":"paragraph","text":"The new Droplet Console is for everyone who is looking to build fast, secure apps and avoid hassles with SSH access & usability issues.","spans":[]},{"type":"paragraph","text":"In addition to easier SSH access, the new Droplet Console comes with:","spans":[]},{"type":"list-item","text":"Copy/paste text: Instead of typing lengthy key pairs and text manually, you can use copy/paste to save time. ","spans":[{"start":0,"end":17,"type":"strong"}]},{"type":"list-item","text":"Multi-color support: Multi-color support makes the console more useful and intuitive, and breaks the conventional standard appearance which is black text on a white background. ","spans":[{"start":0,"end":41,"type":"strong"}]},{"type":"list-item","text":"Multi-language support: DigitalOcean’s new Droplet Console supports multiple languages, meaning you can now type and view any content in any language that is supported by UTF-8","spans":[{"start":0,"end":24,"type":"strong"}]},{"type":"list-item","text":"OS/images supported: Linux distributions (Ubuntu(16.04 - 20.04), Fedora (32 & 33), Debian (9), CentOS (7.6 & 8.3), CentOS 8 Stream, Rocky Linux and Marketplace images.","spans":[{"start":0,"end":20,"type":"strong"},{"start":148,"end":159,"type":"hyperlink","data":{"link_type":"Web","url":"https://marketplace.digitalocean.com/"}}]},{"type":"paragraph","text":"The new Droplet Console is available by default on any new Droplets you spin up. You can also enable it manually on older Droplets. Click here to learn more!","spans":[{"start":132,"end":157,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.digitalocean.com/products/droplets/how-to/connect-with-console/"}}]},{"type":"paragraph","text":"Check out this short walkthrough video that shows the new Droplet Console in action: ","spans":[]},{"type":"embed","oembed":{"type":"video","embed_url":"https://www.youtube.com/watch?v=Qt7QihVuxiE","title":"Access Your Droplet Terminal Through the Web Console","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/Qt7QihVuxiE/hqdefault.jpg","provider_url":"https://www.youtube.com/","author_name":"DigitalOcean","author_url":"https://www.youtube.com/c/Digitalocean","height":113,"width":200,"version":"1.0","thumbnail_height":360,"thumbnail_width":480,"html":"<iframe width=\"200\" height=\"113\" src=\"https://www.youtube.com/embed/Qt7QihVuxiE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>"}},{"type":"paragraph","text":"We hope you’re excited about the new Droplet Console. You’re welcome to spin some Droplets up right now, and try out the new Droplet Console – why wait?","spans":[{"start":72,"end":103,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com/droplets/new"}}]},{"type":"paragraph","text":"Happy coding!","spans":[]},{"type":"paragraph","text":"Harsh Banwait, Senior Product Manager","spans":[]}],"tags":[{"tag1":{"__typename":"PRISMIC_Tag","tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"author":{"__typename":"PRISMIC_Author","author_name":"Harsh Banwait","author_image":{"dimensions":{"width":600,"height":399},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/e83ff690-b20c-4d88-a2b6-57e562558cd6_download.png?auto=compress,format"},"_meta":{"uid":"harsh-banwait"}},"_meta":{"uid":"new-droplet-console-ssh-support"}},"featured_blog_3":{"__typename":"PRISMIC_Blog","_linkType":"Link.document","blog_header_image":{"dimensions":{"width":790,"height":400},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/588e28d3-d41e-480b-937b-8c3b19201f6e_DODX3568-790x400-Blog.jpg?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"How to scale your SaaS product without breaking the bank","spans":[]}],"blog_post_date":"2021-06-22","blog_post_content":[{"type":"paragraph","text":"These days, if you are in the business of software, chances are you are delivering or plan to deliver your services using a Software-as-a-Service (SaaS) model. A combination of internet-based delivery, subscription-based pricing, and low-friction product experiences have made SaaS solutions valuable tools for their users, and an excellent vehicle for software builders looking to distribute their products.","spans":[]},{"type":"paragraph","text":"These factors have made SaaS solutions ubiquitous; SaaS is the largest segment in the public cloud market, and is used to provide functionality ranging from personal finance apps for consumers, to productivity software for businesses, and even tools and services for software developers themselves to compose their applications and simplify their workflows. It is also not uncommon to find micro-SaaS applications being built for specific industries such as retail, job functions such as accounting or marketing, or tasks such as event management. ","spans":[]},{"type":"paragraph","text":"The best thing about this SaaS wave has been that it has allowed a new generation of software builders to build and monetize applications and participate in the digital economy. Previously, you had to be a big company with lots of resources, name recognition and distribution networks to successfully sell software products. Now, irrespective of whether you are a single person working on a passion project, a small team of developers in a startup, or a small and medium-sized business (SMB), the SaaS model enables you to express your ideas in the form of software and deliver them to customers anywhere in the world.","spans":[]},{"type":"heading2","text":"The unique challenges of building SaaS solutions","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Despite the opportunities that come with the widespread adoption of SaaS products, software builders still have to answer key questions in their journey to building successful SaaS products. Understanding what customers to target, features to prioritize, how to price your product, and how to acquire customers are all critical questions to figure out while you are also doing the important job of actually building and operating the product. ","spans":[]},{"type":"paragraph","text":"Writing the code, testing, deployment, monitoring the usage in production, and ensuring that your apps are able to handle the additional demand when customer base and usage grows are all essential and time-consuming tasks.","spans":[]},{"type":"paragraph","text":"Additionally, being able to test multiple ideas, pivot, and double down on the ideas that actually work is critical in early stages of SaaS development. Once growth comes, it is equally important to scale up without compromising on performance or reliability. Needless to say, all of this needs to be economically viable as well, since not everyone has the resources of large SaaS providers like Salesforce or Adobe.","spans":[]},{"type":"heading2","text":"Cloud Computing enables builders but also poses challenges","spans":[]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Fortunately, for the act of building and operating your apps, cloud computing can help take some load off your shoulders. Unless you have the scale and resources of Facebook, chances are you are not going to set up your own data centers to host the computing infrastructure that powers your SaaS company. Public cloud infrastructure providers can bring great value to SaaS builders by providing on-demand computing services with usage-based pricing. However, just like how the legacy software companies weren't built for the SaaS model, the early (and big) cloud computing services were not optimized for the unique needs of small SaaS building teams. ","spans":[]},{"type":"paragraph","text":"Smaller SaaS teams face challenges with large cloud computing providers, including:","spans":[]},{"type":"heading4","text":"Too many technology options","spans":[]},{"type":"paragraph","text":"There are just too many options for tech stacks on which to build your SaaS - programming languages, application development frameworks, libraries, runtime environments, architectural patterns, and deployment models - and the list is growing by the day.","spans":[]},{"type":"heading4","text":"Complexity of cloud computing services","spans":[]},{"type":"paragraph","text":"Even when you have decided on a technology stack, there is a lot of cloud vendor-specific terminology you need to learn and heavy lifting you need to do to build on the cloud, not all of which contributes to making your SaaS applications successful.","spans":[]},{"type":"heading4","text":"Unpredictable costs","spans":[]},{"type":"paragraph","text":"The experimentation necessary in early stages of SaaS development, as well as the scaling of applications required during the growth phase, call for affordable and predictable pricing from your cloud provider. The last thing SaaS teams want is surprising and indecipherable bills from your cloud provider. Unfortunately, smaller businesses often experience unpredictable costs with cloud providers who are busy serving only the large enterprises.","spans":[]},{"type":"heading2","text":"DigitalOcean provides a simple, cost effective solution for SaaS builders","spans":[]},{"type":"paragraph","text":"Fortunately, at DigitalOcean we have a laser focus on small software development teams, who are trying to build the next generation of applications. Today, DigitalOcean customers are already building SaaS applications which serve all kinds of customers.","spans":[{"start":191,"end":217,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/solutions/saas/"}}]},{"type":"paragraph","text":"We believe SaaS builders should focus on building apps that power their business, and not spend their valuable time on managing infrastructure. That is exactly what we have been able to enable through our intuitive products that are built for scale and reliability.","spans":[{"start":205,"end":223,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/"}}]},{"type":"list-item","text":"Vidazoo is an advertising technology company specializing in video streaming and serving. It serves video ads to thousands of websites and handles close to 10 billion requests per day. \n\n“We are as much a data company as an adtech company. Our business relies on speedy and accurate data processing at massive scale. DigitalOcean provides us the perfect set of tools to operate our SaaS business profitably, while not making us feel the need to become full time system administrators. We plan to move a lot of our apps to DigitalOcean App Platform and other fully managed products.” - Roman Svichar, CTO of Vidazoo","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://vidazoo.com/"}},{"start":187,"end":583,"type":"em"}]},{"type":"paragraph","text":"We believe in meeting customers where they are. If they already have an understanding of cloud infrastructure technologies, they should be able to leverage that knowledge and get started with our products without any further ramp up.","spans":[]},{"type":"list-item","text":"Whatfix is an enterprise SaaS provider that offers a digital adoption platform to businesses. The company helps enterprises gain the full value of their investments in enterprise applications by providing real-time, interactive, and contextual guidance to users of those applications. \n\n“What we really love about the DigitalOcean platform is the ease of use. We feel like we know infrastructure and can handle most of the configuration and management. What we needed from a cloud was not bells and whistles but efficiency and reliability. DigitalOcean provides us a platform to build our apps and then gets out of the way. Just how we like it.” - Achyuth Krishna, Director of Engineering of Whatfix","spans":[{"start":0,"end":7,"type":"hyperlink","data":{"link_type":"Web","url":"https://whatfix.com/blog/driving-the-future-now-were-excited-to-announce-our-90-million-series-d-funding/"}},{"start":287,"end":648,"type":"em"}]},{"type":"paragraph","text":"We understand that scaling while maintaining reliability of applications and profitability of business is important, so we provide robust solutions which minimize downtime.","spans":[]},{"type":"list-item","text":"Centra is a SaaS-based e-commerce platform for global direct-to-consumer and wholesale e-commerce brands. Centra provides a powerful e-commerce backend that lets brands build pixel-perfect, custom designed, online flagship stores. \n\n“How do we enable our customers to create differentiated online experiences? How do we ensure their e-commerce apps stay up and running at all times? How do we scale on-demand when traffic grows or new customers come in? These are the questions that we ask ourselves every day. Thankfully, we have a partner in DigitalOcean that provides just the platform to answer those questions enabling us to guarantee 99.9% uptime for our clients.” - Martin Jensen, CEO of Centra","spans":[{"start":0,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"https://centra.com/"}},{"start":233,"end":673,"type":"em"}]},{"type":"paragraph","text":"These are just a few examples of SaaS businesses finding success on DigitalOcean. We are constantly amazed by the creativity and innovation that software builders are utilizing our platform for. If you are interested in learning more about product updates, technical deep-dives and best practices for building SaaS products and businesses, please contact us to learn how we can help you get started. ","spans":[{"start":340,"end":357,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/migrate/?utmmedium=blog","target":"_blank"}}]},{"type":"paragraph","text":"Come build with DigitalOcean!","spans":[]},{"type":"paragraph","text":"Looking to migrate your SaaS to DigitalOcean? Leverage free infrastructure credits, robust training, and technical support to ensure a worry-free migration.","spans":[{"start":0,"end":156,"type":"strong"},{"start":0,"end":156,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/migrate/?utmmedium=blog","target":"_blank"}}]},{"type":"paragraph","text":"","spans":[]},{"type":"paragraph","text":"Raman Sharma","spans":[]},{"type":"paragraph","text":"Vice President, Product & Programs Marketing","spans":[]}],"tags":[{"tag1":{"__typename":"PRISMIC_Tag","tag":"Developer Relations","_linkType":"Link.document","_meta":{"uid":"developer-relations"}}}],"author":{"__typename":"PRISMIC_Author","author_name":"Raman Sharma","author_image":{"dimensions":{"width":512,"height":512},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/497b4b14-d192-493a-8b66-7ae176ba99f3_raman.png?auto=compress,format"},"_meta":{"uid":"raman-sharma"}},"_meta":{"uid":"how-to-scale-your-saas-product-without-breaking-the-bank"}}}}]}}},"pageContext":{"limit":12,"skip":168,"numPages":33,"currentPage":15,"data":[{"node":{"author":{"_linkType":"Link.document","author_name":"Anthony D'Atri","author_image":{"dimensions":{"width":400,"height":400},"alt":"Anthony D'Atri","copyright":null,"url":"https://images.prismic.io/www-static/8aa99d000b4c6f257ec399164007b65493e9912f_anthony.jpg?auto=compress,format"},"_meta":{"uid":"anthony_d_atri"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"square abstract illustration","copyright":null,"url":"https://images.prismic.io/www-static/2df56a860ce0ec38090d432b8521ab59512df8a4_ceph-blockstorage_v1.2_twitter---facebook.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Why We Chose Ceph to Build Block Storage","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"In January 2013, DigitalOcean became one of the first cloud providers to offer SSD storage. For several years, a slice of the virtualization hypervisor's local drives provided this storage available to Droplets. This approach worked great but had its limitations, such as:","spans":[{"start":70,"end":90,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/now-offering-double-the-memory-solid-state-drives-for-all-plans/"}}]},{"type":"list-item","text":"Volume size and growth were limited by the hypervisor's complement of drives, which was shared with other Droplets.","spans":[]},{"type":"list-item","text":"Storage was released once a Droplet was destroyed. The term “ephemeral” is sometimes used to describe this virtualization strategy.","spans":[]},{"type":"list-item","text":"Storage volumes could not be easily moved or reattached to different Droplets.","spans":[]},{"type":"paragraph","text":"For these and other reasons, we introduced Block Storage in July 2016. Since then, we’ve steadily increased capacity and have deployed into all service regions. In this post, we'll explore the underlying technology behind our Block Storage offering.","spans":[{"start":43,"end":56,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/storage/"}}]},{"type":"heading3","text":"Creating Block Storage That Can Scale","spans":[]},{"type":"paragraph","text":"In the past, portable, scalable block storage service was usually provided with a traditional SAN (Storage Area Network). These tended to be expensive and difficult to manage and upgrade. Scaling and upgrading could be difficult, and the architecture was susceptible to considerable vendor lock-in.","spans":[]},{"type":"paragraph","text":"At DigitalOcean, we love and support open-source software. So when the time came to architect our Block Storage service, we used these guiding criteria:","spans":[{"start":20,"end":57,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean"}}]},{"type":"list-item","text":"Open-source software, available to a wide community of users, testers, and developers","spans":[]},{"type":"list-item","text":"Widespread deployment in production at scale","spans":[]},{"type":"list-item","text":"Ease of scaling up and out","spans":[]},{"type":"list-item","text":"Freedom from scalability barriers","spans":[]},{"type":"list-item","text":"Freedom from vendor lock-in and product obsolescence","spans":[]},{"type":"list-item","text":"Fault tolerance","spans":[]},{"type":"list-item","text":"RAS: Redundancy, Availability, Serviceability","spans":[]},{"type":"list-item","text":"Transparent maintenance and upgrade operations","spans":[]},{"type":"list-item","text":"Strong protection of customer data integrity","spans":[]},{"type":"paragraph","text":"The best-of-breed solution for all of these criteria is the leader in open and widely-adopted distributed storage: Ceph.","spans":[{"start":115,"end":119,"type":"hyperlink","data":{"link_type":"Web","url":"https://ceph.com/"}}]},{"type":"heading3","text":"Ceph in Production","spans":[]},{"type":"paragraph","text":"In the 15 years since Ceph began, it has steadily grown in popularity, performance, stability, scalability, and features. As GNU Lesser General Public License (LGPL) open-source software, Ceph enjoys a rich community of users and developers, including multiple DigitalOcean engineers who've contributed upstream code to the core Ceph project.","spans":[]},{"type":"paragraph","text":"The RBD (RADOS Block Device) service provided by Ceph slots right into the popular KVM  QEMU virtualization technology we employ. Droplets enjoy flexible block storage that is presented just like a local drive.","spans":[]},{"type":"paragraph","text":"Our Ceph-backed Block Storage service is also 100% SSD-based. Ceph is built for redundancy, and we carefully ensure that the loss of a single drive, server, or even an entire data center rack does not compromise data integrity or availability.","spans":[]},{"type":"paragraph","text":"Ceph gracefully heals itself when individual components fail, ensuring continuity of service with uncompromised data protection. Additionally, we use sophisticated monitoring systems built around tools including Icinga, Prometheus, and our own open-source ceph_exporter. These help us respond immediately to any issues with our Ceph infrastructure to ensure continuous availability.","spans":[{"start":256,"end":269,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/ceph_exporter"}}]},{"type":"paragraph","text":"Our Block Storage deployment into each new Droplet region brings hundreds of enterprise-class SSDs managed by the Luminous release of Ceph. We keep three copies of your data to ensure the highest data durability and availability. These replicas are carefully distributed across separate servers and racks to eliminate any single point of failure.","spans":[]},{"type":"paragraph","text":"Each Ceph cluster's performance and utilization is carefully monitored so that we can add additional resources as needed. Ceph's flexibility allows us to expand existing storage clusters or even add new ones to a region completely transparently.  We are also able to upgrade Ceph and complete other types of fleet-wide maintenance in a rolling fashion, without downtime or other impacts to our valued customers.","spans":[]},{"type":"paragraph","text":"It is important to note however that this replication is entirely behind-the-scenes. It prevents us losing your Block Storage volume data, but does not protect your Droplet itself, nor does it allow recovery from accidental deletion on your end. Thus, backups of critical data are still important. See these articles for help on Block Storage volume snapshots and data backups:","spans":[]},{"type":"list-item","text":"Introduction to DigitalOcean Backups","spans":[{"start":0,"end":36,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-backups"}}]},{"type":"list-item","text":"Understanding DigitalOcean Droplet Backups","spans":[{"start":0,"end":42,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/understanding-digitalocean-droplet-backups"}}]},{"type":"list-item","text":"Creating a Snapshot from a Block Storage Volume","spans":[{"start":0,"end":47,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-snapshots#creating-a-snapshot-from-a-block-storage-volume"}}]},{"type":"paragraph","text":"And if you haven’t already, create your own Block Storage volume on DigitalOcean.","spans":[{"start":28,"end":64,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/storage/"}}]},{"type":"paragraph","text":"Anthony D’Atri is a veteran sysadmin who's been working with Ceph for four years, starting with the Dumpling release. He is the co-author, along with Vaibhav Bhembre, of Learning Ceph, which outlines architecting, deploying, and managing Ceph at scale. He enjoys photography and a never ending quest for exotic fruit. He lives in Portland, Oregon with his wife and son.","spans":[{"start":0,"end":369,"type":"em"},{"start":170,"end":183,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.amazon.com/Learning-Ceph-Second-Anthony-DAtri-ebook/dp/B01NBP2D9I"}}]}],"blog_post_date":"2018-05-31","tags":[{"tag1":{"tag":"Engineering","_linkType":"Link.document","_meta":{"uid":"engineering"}}}],"_meta":{"uid":"why-we-chose-ceph-to-build-block-storage"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"DigitalOcean","author_image":{"dimensions":{"width":600,"height":600},"alt":"Sammy avatar","copyright":null,"url":"https://images.prismic.io/www-static/a10e3c2eb15b74ee43f872be3044313423b1c9a9_sammy_avatar.png?auto=compress,format"},"_meta":{"uid":"digitalocean"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"GDPR lock and EU stars illustration","copyright":null,"url":"https://images.prismic.io/www-static/e14514bbef8658da8b50cfae97309915a8d368fc_gdpr_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"GDPR is Here, and We've Got You Covered","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Today, the new European General Data Protection Regulation (GDPR) goes into effect. (You might have received a few emails about it.) There are a lot of moving parts, but it’s an important step in protecting the fundamental right of privacy for European citizens, and it also raises the bar for data protection, security, and compliance in the industry. This post is here to guide you to our GDPR-related resources.","spans":[]},{"type":"paragraph","text":"We’ve created a new GDPR section on our website to go over what GDPR means for you and the steps we’ve taken to ensure the protection of your privacy.  In this section, you’ll find:","spans":[{"start":20,"end":47,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/security/gdpr/"}}]},{"type":"list-item","text":"An FAQ to help you understand GDPR and how it affects you as a DigitalOcean customer, which we regularly update as we receive questions.","spans":[{"start":3,"end":6,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/security/gdpr/faq/"}}]},{"type":"list-item","text":"The DigitalOcean Data Processing Agreement (DPA), which enables you to comply with your GDPR obligations.","spans":[{"start":17,"end":48,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/security/gdpr/data-processing-agreement/"}}]},{"type":"list-item","text":"A Data Portability section, which explains how to download your content/data from your DigitalOcean services.","spans":[{"start":2,"end":26,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/security/gdpr/data-portability/"}}]},{"type":"paragraph","text":"In addition, we updated our Privacy Policy and Terms of Service Agreement to comply with the new requirements of GDPR. If you’re interested in seeing what changed in the Privacy Policy and TOS, check out our GitHub repo where you can compare versions.","spans":[{"start":28,"end":42,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/legal/privacy/"}},{"start":47,"end":73,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/legal/terms/"}},{"start":204,"end":219,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/tos"}}]},{"type":"paragraph","text":"We take this new regulation seriously, and we want to get you back to doing what you love—building great software.","spans":[]}],"blog_post_date":"2018-05-25","tags":[{"tag1":{"tag":"News","_linkType":"Link.document","_meta":{"uid":"news"}}}],"_meta":{"uid":"gdpr-resources"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Daniel Zaltsman","author_image":{"dimensions":{"width":188,"height":188},"alt":"Daniel Zaltsman","copyright":null,"url":"https://images.prismic.io/www-static/663d428f56c46eeb165c811add8f1f60402aa451_daniel_zaltsman-c47f4847.png?auto=compress,format"},"_meta":{"uid":"daniel_zaltsman"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"High five illustration","copyright":null,"url":"https://images.prismic.io/www-static/3a111128190b5abcad25ab884b857ee71e4715e7_developer_advocates_blog_color4--1-.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"May Community Doers: Open Source Contributors","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Since DigitalOcean came to be, the founders believed that the developer community is far greater than the sum of its parts. Six years later we continue to learn and grow thanks to the tireless work of our global community. Instrumental to increasing collaboration and ease-of-use, the Projects section of the Community received its first submission four years ago and today boasts a total of 186 apps, wrappers, and integrations using the DigitalOcean API.","spans":[{"start":285,"end":301,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/projects"}}]},{"type":"paragraph","text":"In this month’s “Doers” spotlight, we highlight three builders who continue to maintain technology that makes a difference for users in the DigitalOcean ecosystem. When they are not working on software engineering and DevOps, they give back in a way that enriches the community. Please join us in recognizing May’s featured Doers:","spans":[]},{"type":"paragraph","text":"Jeevanandam M. (@myjeevablog)","spans":[{"start":0,"end":14,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/jeevatkm"}},{"start":16,"end":28,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/myjeevablog"}}]},{"type":"paragraph","text":"When he is not building out and supporting aah, the secure, flexible, and rapid Go web framework, Jeeva has been making valuable contributions that enable developers to use DigitalOcean. Since early 2014, he has maintained a widely used DigitalOcean API client library written in Java. The client is used by the Jenkins DigitalOcean plugin, powering a large quantity of CI use cases on top of DigitalOcean. We are immensely thankful for Jeeva’s commitment to quality and community and believe this recognition is long due.","spans":[{"start":43,"end":46,"type":"hyperlink","data":{"link_type":"Web","url":"https://aahframework.org"}},{"start":237,"end":268,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/jeevatkm/digitalocean-api-java"}},{"start":312,"end":339,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/jenkinsci/digitalocean-plugin"}}]},{"type":"paragraph","text":"Lorenzo Setale (@koalalorenzo)","spans":[{"start":0,"end":14,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/koalalorenzo"}},{"start":16,"end":29,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/koalalorenzo"}}]},{"type":"paragraph","text":"Lorenzo is a Copenhagen-based Italian developer of ideas who has been involved in the community since 2012. Anyone who has spun up Droplets using the python-digitalocean Python library will be familiar with tireless Lorenzo’s work. He has long authored and maintained one of the most used and best supported DigitalOcean API libraries. A playground for experimentation for some is a tool to build someone’s first project, thanks to Lorenzo for the technology that keeps on giving.","spans":[{"start":150,"end":184,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/koalalorenzo/python-digitalocean"}},{"start":353,"end":368,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/gsechter/status/603644573999636481"}},{"start":397,"end":420,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/HunterJoz/status/939710970221551616"}}]},{"type":"paragraph","text":"Peter Souter (@petersouter)","spans":[{"start":0,"end":12,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/petems"}},{"start":14,"end":26,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/PeterSouter"}}]},{"type":"paragraph","text":"Peter is an open source citizen that leads by example, noting on his blog that “as long as people are interested I will keep maintaining and helping with open source software I maintain.” with regards to his work on Tugboat, a CLI that predates doctl. Previously at Puppet, Peter currently works at HashiCorp out of London and we’re proud to say he's been around our community for a long time. In addition to being the main contributor to tugboat, he's had a few contributions to droplet_kit, the Ruby API client. Thanks for all your work, we appreciate it all.","spans":[{"start":55,"end":73,"type":"hyperlink","data":{"link_type":"Web","url":"https://petersouter.xyz/some-thoughts-on-maintaining-oss-that-has-an-official-competitor/"}},{"start":204,"end":223,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/petems/tugboat"}},{"start":245,"end":250,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl"}},{"start":480,"end":491,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/droplet_kit"}}]},{"type":"paragraph","text":"Jeeva, Lorenzo, and Peter showcase the qualities we are proud to see in our community and we hope that they inspire others as well.  We’re grateful to have this opportunity to recognize our amazing community contributors and if you’re interested in getting more involved in the DigitalOcean community, here are a few places to start:","spans":[]},{"type":"list-item","text":"Share a project that you’ve built with our API.","spans":[{"start":0,"end":15,"type":"hyperlink","data":{"link_type":"Web","url":"http://www.digitalocean.com/community/projects"}}]},{"type":"list-item","text":"Share your knowledge in our community Q&A section.","spans":[{"start":28,"end":49,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/questions"}}]},{"type":"list-item","text":"Join our Write for DOnations program and contribute to our library of tutorials.","spans":[{"start":9,"end":36,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/write-for-digitalocean"}}]},{"type":"list-item","text":"Get involved in your local DigitalOcean Meetup or start your own.","spans":[{"start":21,"end":46,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/pro/digitalocean/"}},{"start":50,"end":64,"type":"hyperlink","data":{"link_type":"Web","url":"https://do.co/cometomycity"}}]},{"type":"list-item","text":"Read up on other Doers in our March and April editions.","spans":[{"start":30,"end":35,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/introducing-community-doers-march-edition/"}},{"start":40,"end":45,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/april-community-do-ers-meetup-edition/"}}]},{"type":"paragraph","text":"Want to recognize someone in the community? Leave their name in the comments or reach out to Doers [at] DigitalOcean [.] com.","spans":[]}],"blog_post_date":"2018-05-21","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"may-community-doers"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Josh Feinblum","author_image":{"dimensions":{"width":170,"height":170},"alt":"Josh Feinblum","copyright":null,"url":"https://images.prismic.io/www-static/c4c133b1c9fcb9c2688f1feeb95690fbe53b2e6b_41049-0-4.jpg?auto=compress,format"},"_meta":{"uid":"josh_feinblum"}},"blog_header_image":null,"blog_headline":[{"type":"heading1","text":"A Message About Intel’s Latest Security Findings","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"In response to Intel’s statement today regarding new vulnerabilities, we wanted to share all the information we have to date with our customers and community.","spans":[{"start":15,"end":32,"type":"hyperlink","data":{"link_type":"Web","url":"https://newsroom.intel.com/editorials/addressing-new-research-for-side-channel-analysis/"}}]},{"type":"paragraph","text":"Current information does not suggest that this latest vulnerability, Variant 4, would allow Droplets to gain access to the host hypervisor, or access to other Droplets. We also do not believe that we will need to reboot our entire fleet of hypervisors, as was necessary to mitigate impact from the initial Spectre and Meltdown vulnerabilities. However, there is a remote potential for exploit and we are working with Intel to validate microcode to patch for the vulnerabilities. We are accelerating the fix, but applying these updates takes coordination and time.","spans":[]},{"type":"paragraph","text":"Our security and engineering teams are monitoring our hypervisors and following this issue closely. We remain in communication with our contacts at Intel regarding any new developments. The security of our users’ data is one of our highest priorities, and we are ready to take action if and when appropriate. At this time, we strongly recommend ensuring that you have the latest packages from your distributions, and you use the latest browser versions with fixes for Variant 4.","spans":[]},{"type":"paragraph","text":"We will update this blog as more information becomes available. In addition to posting here, we will notify customers directly if there is a need to take action.","spans":[]}],"blog_post_date":"2018-05-21","tags":[{"tag1":{"tag":"News","_linkType":"Link.document","_meta":{"uid":"news"}}},{"tag1":{"tag":"Trust & Security","_linkType":"Link.document","_meta":{"uid":"trust-security"}}}],"_meta":{"uid":"a-message-about-intels-latest-security-findings"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Priya Chakravarthi","author_image":{"dimensions":{"width":200,"height":200},"alt":"Priya Chakravarthi","copyright":null,"url":"https://images.prismic.io/www-static/a764a7c4d900d2e77bbd3a25ad5b2a348063df40_image.png?auto=compress,format"},"_meta":{"uid":"priya_chakravarthi"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"droplets illustration","copyright":null,"url":"https://images.prismic.io/www-static/da552a7e73a57ae8b974605a7ae65ccad3553db6_burstableblockstorage_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Block Storage Volumes Gets a Performance Burst","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"At DigitalOcean, we’ve been rapidly adding new products and features on our mission to simplify cloud computing, and today we're happy to announce our latest enhancement.","spans":[{"start":43,"end":68,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/2018-whats-shipping-next-on-digitalocean/"}}]},{"type":"paragraph","text":"Over the first half of 2018, we've improved performance for Block Storage Volumes with backend upgrades that reduce cluster latency by 50% and provide new burst support for higher performance for spiky workloads.","spans":[{"start":60,"end":81,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-block-storage"}}]},{"type":"heading3","text":"Burst Performance Characteristics","spans":[]},{"type":"paragraph","text":"Block Storage Volumes have a wide variety of use cases, like database reads and writes as well as storing logs, static assets, backups, and more. The performance expectations from a particular volume will depend on how it's used.","spans":[]},{"type":"paragraph","text":"Database workloads, for example, need single-digit millisecond latency. Most workloads in the cloud today are bursty, however, and don't require sustained high performance at all times. Use cases like web servers, backups, and data warehousing can require higher performance due to short increases in traffic or a temporary need for more bandwidth.","spans":[]},{"type":"paragraph","text":"To meet the need for very low latency, we upgraded Ceph to its latest version, Luminous v12.2.2, in all regions containing Block Storage. This reduced our cluster latency by 50% and provides the infrastructure you need to manage databases with Block Storage Volumes.","spans":[{"start":42,"end":136,"type":"strong"}]},{"type":"paragraph","text":"To support spiky workloads, we added burst support, which automatically increases Block Storage Volumes' IOPS and bandwidth rates for short periods of time (60 seconds) before returning to baseline performance to cool off (60 seconds).","spans":[]},{"type":"paragraph","text":"Here's a summary of the burst performance characteristics, which compares a Standard Droplet (SD) plan and an Optimized Droplet (OD) plan:\nDroplet Plan\nSDODBaseline \nIOPS \n (in IOPS/volume)50007500Baseline BW\n(in MB/s)200300Burst IOPS\n (in IOPS/volume)750010000Burst BW\n(in MB/s)300350Avg Latency<10 ms<10 ms\nWe don't scale performance by the size of the volume you create, so every Block Storage Volume is configured to provide the same level of performance for your applications. However, your application needs to be written to realize these limits, and the kind of performance you get will depend on your app's configuration and a number of other parameters.","spans":[]},{"type":"heading3","text":"Performance and Latency Benchmarking","spans":[]},{"type":"paragraph","text":"To learn more about the performance you're getting, we wrote How To Benchmark DigitalOcean Volumes, which explains not only how to benchmark your volumes but also how to interpret the results.","spans":[{"start":61,"end":98,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/how-to-benchmark-digitalocean-volumes"}}]},{"type":"paragraph","text":"We then ran some of these tests internally to share the numbers and performance of our offering. You can find all the details in the tutorial, but here's a sample of results, which shows typical performance based on the queue depth (QD) of the application and the block size (on the x-axis) versus IOPS (on the y-axis).","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/2cef077b3573d7ee341b1fd93a7f67a48db4e36f_read-iops-graph.png?auto=compress,format","alt":"Read IOPS graph","copyright":null,"dimensions":{"width":948,"height":588}},{"type":"image","url":"https://images.prismic.io/www-static/07699c7776781fdb0e63465d75e001ead074584d_read-throughput-graph.png?auto=compress,format","alt":"Read Throughput graph","copyright":null,"dimensions":{"width":946,"height":580}},{"type":"paragraph","text":"These graphs show that the IOPS rate increases as queue depth increases until we hit our practical IOPS cap. Smaller block sizes tend to be IOPS limited, while larger block sizes tend to be bandwidth limited.","spans":[]},{"type":"paragraph","text":"What about latency? Most real-world customer applications won't run the same kind of workload often used as a baseline (QD = 1 4K I/O), so these graphs show latency in µsec (or microseconds) as we add load to the cluster.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/49f41fb6b09c3bfddb7bc5a99a4a520f4207a4cc_average-read-latency.png?auto=compress,format","alt":"Average read latency","copyright":null,"dimensions":{"width":808,"height":230}},{"type":"image","url":"https://images.prismic.io/www-static/2a4fec7732ced832f752ea525bab70b45c2ea066_average-write-latency.png?auto=compress,format","alt":"Average write latency","copyright":null,"dimensions":{"width":805,"height":229}},{"type":"paragraph","text":"We see the same behavior in reads and writes. Because of how the backend storage stores the data, our results show that 16K has better latency at high queue depth, so we recommend you tune for 16K workloads if possible.","spans":[]},{"type":"heading3","text":"What's Next?","spans":[]},{"type":"paragraph","text":"The performance improvements aren’t the only thing we have in store. There are several QoS features and infrastructure investments in the pipeline to improve your experience of Block Storage Volumes. (Ready to get started? Create a Volume now.)","spans":[{"start":201,"end":243,"type":"hyperlink","data":{"link_type":"Web","url":"https://cloud.digitalocean.com/droplets/volumes?i=3d8857"}}]},{"type":"paragraph","text":"We'd love to hear your thoughts, questions, and feedback. Feel free to leave a comment here or reach out to us through our UserVoice.","spans":[{"start":123,"end":132,"type":"hyperlink","data":{"link_type":"Web","url":"https://digitalocean.uservoice.com/forums/136585-digitalocean"}}]}],"blog_post_date":"2018-05-15","tags":[{"tag1":{"tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"uid":"block-storage-volume-performance-burst"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Tyler Crandall","author_image":{"dimensions":{"width":280,"height":280},"alt":"Tyler Crandall","copyright":null,"url":"https://images.prismic.io/www-static/445258e6ef5412ec1d759c61296620e393cea199_tyler_crandall-bd42a38f.png?auto=compress,format"},"_meta":{"uid":"tyler_crandall"}},"blog_header_image":{"dimensions":{"width":1568,"height":836},"alt":"Three drops with the words Load Balancers underneath illustration","copyright":null,"url":"https://images.prismic.io/www-static/237f0a894630cb5482678ee5f166e4d6b0d7f59f_lbaas-1.5-imagery-blog-header2x--1-.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Introducing Updates for Load Balancers","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"In February 2017, we launched Load Balancers, our highly available and managed load balancing service. Thousands of users rely on them to distribute traffic across Web and application servers.","spans":[{"start":21,"end":44,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/load-balancers-simplifying-high-availability/"}}]},{"type":"paragraph","text":"Today, we’re announcing significant upgrades to Load Balancers, including Let's Encrypt integration and HTTP/2 support. All users now have access to these features at no additional cost and with no action required. In fact, all existing Load Balancers already have been upgraded.","spans":[{"start":74,"end":87,"type":"hyperlink","data":{"link_type":"Web","url":"https://letsencrypt.org"}},{"start":104,"end":110,"type":"hyperlink","data":{"link_type":"Web","url":"https://http2.github.io"}}]},{"type":"paragraph","text":"Let’s Encrypt Integration","spans":[{"start":0,"end":25,"type":"strong"}]},{"type":"paragraph","text":"Load Balancers now support a simple method to generate, manage, and maintain SSL certificates using Let’s Encrypt.","spans":[]},{"type":"paragraph","text":"With a couple of clicks, you can add a free Let’s Encrypt SSL certificate to your Load Balancer to secure your traffic and offload SSL processing. Certificates will automatically renew, so you don't have to worry about a thing.","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/04f7d4189d88b30146c7c89164d5af8cee5d9292_new-certificate-request-final.jpg?auto=compress,format","alt":"UI updates for Let's Encrypt","copyright":null,"dimensions":{"width":1314,"height":1370}},{"type":"paragraph","text":"HTTP/2","spans":[{"start":0,"end":6,"type":"strong"}]},{"type":"paragraph","text":"Load Balancers now also support the HTTP/2 protocol, which is a major update to HTTP/1.x designed primarily to reduce page load time and resource usage. You can find this under the Forwarding Rules dropdown in your Load Balancer settings.","spans":[]},{"type":"paragraph","text":"Load Balancers can additionally terminate HTTP/2 client connections to act as a gateway to HTTP/1.x applications, allowing you to take advantage of HTTP/2's performance and security improvements without upgrading your backend servers.","spans":[]},{"type":"paragraph","text":"Keep a look out for more performance-focused announcements in the coming months.","spans":[{"start":25,"end":58,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/release-notes"}}]},{"type":"paragraph","text":"Our improved Load Balancers are available in all regions for $10/month. [Note: edited November 5, 2018, from $20/month.] For more information about Load Balancers, please check out our website and these community articles:","spans":[{"start":185,"end":192,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/products/load-balancer/"}}]},{"type":"list-item","text":"An Introduction to DigitalOcean Load Balancers","spans":[{"start":0,"end":46,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-load-balancers"}}]},{"type":"list-item","text":"How to Use Let’s Encrypt with DigitalOcean Load Balancers","spans":[{"start":0,"end":57,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/how-to-use-let-s-encrypt-with-digitalocean-load-balancers"}}]},{"type":"list-item","text":"Best Practices for Performance on DigitalOcean Load Balancers","spans":[{"start":0,"end":61,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/best-practices-for-performance-on-digitalocean-load-balancers"}}]},{"type":"paragraph","text":"Happy coding,","spans":[]},{"type":"paragraph","text":"Tyler Crandall","spans":[]},{"type":"paragraph","text":"Product Manager","spans":[]}],"blog_post_date":"2018-05-08","tags":[{"tag1":{"tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"uid":"introducing-load-balancer-upgrades"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Jamie Wilson","author_image":{"dimensions":{"width":453,"height":454},"alt":"Jamie Wilson","copyright":null,"url":"https://images.prismic.io/www-static/6cba717cd13d5d39485abcec1782a51d88371f32_jamie-wilson.png?auto=compress,format"},"_meta":{"uid":"jamie_wilson"}},"blog_header_image":{"dimensions":{"width":1200,"height":640},"alt":null,"copyright":null,"url":"https://images.prismic.io/www-static/f0ae65520153925bcf7961cce341d2b1a61a293b_image8-1.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Simplify Container Orchestration","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"Over the last 18 months, we’ve delivered many cloud primitives to serve developers and their teams in our unique DO-Simple way. We introduced Load Balancers, Monitoring and Alerts, Cloud Firewalls, Spaces, CPU-Optimized Droplets, a new Dashboard, and new Droplet pricing plans. We extended the availability of Block Storage to all regions. All of these primitives make it easier to go from an idea to production without the overhead and complexity of managing cloud infrastructure.","spans":[{"start":106,"end":126,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/2017-whats-shipping-next-on-digitalocean/"}},{"start":142,"end":156,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/load-balancers-simplifying-high-availability/"}},{"start":158,"end":179,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/introducing-monitoring/"}},{"start":181,"end":196,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/cloud-firewalls-secure-droplets-by-default/"}},{"start":198,"end":204,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/introducing-spaces-object-storage/"}},{"start":206,"end":228,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/introducing-high-cpu-droplets/"}},{"start":232,"end":245,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/introducing-control-panel-dashboard/"}},{"start":251,"end":276,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/new-droplet-plans/"}},{"start":310,"end":323,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/block-storage-in-ams3/"}}]},{"type":"paragraph","text":"Today, we’re excited to build on those primitives and announce DigitalOcean Kubernetes, a simple and cost-effective way to deploy, orchestrate, and manage container workloads. Deploying workloads as containers provides many benefits for developers, from rapid deployment to isolation and security. But orchestrating those workloads comes with additional layers of complexity that can be difficult for development teams to manage.","spans":[]},{"type":"paragraph","text":"Kubernetes has become the leading open source platform for orchestration, with thousands of contributors in the last year alone. DigitalOcean has been running large workloads on Kubernetes over the past two years, and we’re excited to bring our learnings and expertise to our customers.","spans":[]},{"type":"paragraph","text":"We designed DigitalOcean Kubernetes with developers and their teams in mind, so you can save time and deploy your container workloads without needing to configure everything from scratch. Automatic deployment of load balancers, block storage, firewalls, ingress controllers, and more makes configuring your cluster on DigitalOcean as simple as deploying a Droplet.","spans":[]},{"type":"paragraph","text":"We understand having your data close to your cluster is essential, so you’ll have the option to deploy a private container registry to your cluster with no configuration, and store the images on DigitalOcean Spaces.","spans":[]},{"type":"paragraph","text":"In addition to offering Kubernetes on our platform, we are also upgrading our CNCF membership to Gold. We’re committed to contributing to and supporting the open source technologies around containers, and are looking forward to working with CNCF members to continue the evolution of these and related technologies.","spans":[{"start":78,"end":82,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.cncf.io/"}}]},{"type":"paragraph","text":"The DigitalOcean Kubernetes Early Access Program sign-up starts today, and access for select users begins next month. If you’re part of the program, your cluster will be free through September 2018.","spans":[]},{"type":"paragraph","text":"","spans":[{"start":0,"end":0,"type":"hyperlink","data":{"link_type":"Web","url":"http://do.co/k8s"}}]},{"type":"image","url":"https://images.prismic.io/www-static/cc0f6266a921a051633144679763838adbad1aef_early.png?auto=compress,format","alt":"Sign up button","copyright":null,"dimensions":{"width":494,"height":77}},{"type":"paragraph","text":"UPDATE: June 21, 2018","spans":[{"start":0,"end":21,"type":"strong"}]},{"type":"paragraph","text":"Since we announced DigitalOcean Kubernetes in May, we've received 20,000 sign-ups for early access. We’re excited to announce our first phase of early access, and want to take this opportunity to share more about our plans.","spans":[]},{"type":"paragraph","text":"We will be sending out early access invitations in two phases:","spans":[]},{"type":"list-item","text":"Phase One: Beginning on July 10, we'll send invitations for up to 1,000 developers, looking for feedback on key features and product usability.","spans":[{"start":0,"end":9,"type":"strong"}]},{"type":"list-item","text":"Phase Two+: At a future date, we'll expand testing, and invite as many developers as we can based on capacity.","spans":[{"start":0,"end":10,"type":"strong"}]},{"type":"paragraph","text":"We want to keep everyone up to date on our progress, so we’ll also provide email updates during early access as new product functionality is added, and as our Community team creates new Kubernetes content. Finally, look out for a webinar invitation where we’ll walk you through the early access product as we’d love to hear your feedback through this process.","spans":[]},{"type":"paragraph","text":"Happy Coding,","spans":[]},{"type":"paragraph","text":"DigitalOcean Kubernetes Product Team","spans":[]}],"blog_post_date":"2018-05-02","tags":[{"tag1":{"tag":"Product Updates","_linkType":"Link.document","_meta":{"uid":"product-updates"}}}],"_meta":{"uid":"introducing-digitalocean-kubernetes"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"DigitalOcean","author_image":{"dimensions":{"width":600,"height":600},"alt":"Sammy avatar","copyright":null,"url":"https://images.prismic.io/www-static/a10e3c2eb15b74ee43f872be3044313423b1c9a9_sammy_avatar.png?auto=compress,format"},"_meta":{"uid":"digitalocean"}},"blog_header_image":{"dimensions":{"width":788,"height":425},"alt":"boat with fish and a jellyfish on it in the ocean illustration","copyright":null,"url":"https://images.prismic.io/www-static/75564900077400aa98d37b52387720140c8256b4_kubecon-1.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Catch Us in Copenhagen for KubeCon EU","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"UPDATE: Catch the talks, now embedded below!","spans":[{"start":0,"end":44,"type":"strong"}]},{"type":"paragraph","text":"Next week is KubeCon EU in Copenhagen, Denmark. We're already drooling at the idea of diving into smørrebrød, perhaps near the famed Little Mermaid statue.","spans":[{"start":13,"end":23,"type":"hyperlink","data":{"link_type":"Web","url":"https://events.linuxfoundation.org/kubecon-eu-2018/"}}]},{"type":"paragraph","text":"DigitalOcean will have two speakers and a booth at KubeCon EU:","spans":[]},{"type":"paragraph","text":"On Wednesday, May 2, from 2:45 PM-3:20 PM, Matt Layher presents \"How To Export Prometheus Metrics From Just About Anything.\"","spans":[{"start":43,"end":54,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/mdlayher"}},{"start":65,"end":122,"type":"hyperlink","data":{"link_type":"Web","url":"https://kccnceu18.sched.com/event/DquG/how-to-export-prometheus-metrics-from-just-about-anything-matt-layher-digitalocean-intermediate-skill-level"}}]},{"type":"paragraph","text":"Prometheus exporters bridge the gap between Prometheus and systems which cannot export metrics in the Prometheus format. During this talk, you will learn how to gather metrics from a wide variety of data sources, including files, network services, hardware devices, and system calls to the Linux kernel. You will also learn how to build a reliable Prometheus exporter using the Go programming language. This talk is intended for developers who are interested in bridging the gap between Prometheus and other hardware or software.","spans":[{"start":0,"end":529,"type":"em"}]},{"type":"paragraph","text":"Then, on Thursday, May 3, Andrew Kim speaks from 2:45PM-3:20PM on \"Global Container Networks on Kubernetes at DigitalOcean.\"","spans":[{"start":26,"end":36,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/kimandrewsy"}},{"start":67,"end":122,"type":"hyperlink","data":{"link_type":"Web","url":"https://kccnceu18.sched.com/event/Dqv8/global-container-networks-on-kubernetes-at-digitalocean-andrew-sy-kim-digitalocean-intermediate-skill-level"}}]},{"type":"paragraph","text":"Building a container network that is reliable, fast and easy to operate has become increasingly important in DigitalOcean’s distributed systems running on Kubernetes. Today’s container networking technologies can be restrictive as Pod and Service IPs are not reachable externally which forces cluster administrators to operate load balancers. The addition of load balancers introduces new points of failure in a cluster and hinders observability since source IPs are either NAT’d or masqueraded.","spans":[{"start":0,"end":495,"type":"em"}]},{"type":"paragraph","text":"This talk will be a deep dive of how DigitalOcean uses BGP, Anycast and a variety of open source technologies (kube-router, CNI, etc) to achieve a fast and reliable container network where Pod and Service IPs are reachable from anywhere on DigitalOcean’s global network. Design considerations for scalability, lessons learned in production and advanced use cases will also be discussed.","spans":[{"start":0,"end":386,"type":"em"}]},{"type":"paragraph","text":"You can also catch us in Hall C, at booth number G-C06. We’ll be tending the booth, where we'll be giving demos and answering questions:","spans":[]},{"type":"list-item","text":"Wednesday, May 2 from 10:30 AM-8:30 PM","spans":[]},{"type":"list-item","text":"Thursday, May 3 from 10:30 AM-5:30 PM, and","spans":[]},{"type":"list-item","text":"Friday, May 4 from 10:30 AM-4:00 PM","spans":[]},{"type":"paragraph","text":"Vi snakkes ved!","spans":[]}],"blog_post_date":"2018-04-27","tags":[{"tag1":{"tag":"Developer Relations","_linkType":"Link.document","_meta":{"uid":"developer-relations"}}},{"tag1":{"tag":"Engineering","_linkType":"Link.document","_meta":{"uid":"engineering"}}}],"_meta":{"uid":"kubecon-eu-2018"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Blake Thorne","author_image":{"dimensions":{"width":532,"height":566},"alt":"Blake Thorne","copyright":null,"url":"https://images.prismic.io/www-static/252c1d86d1456ee5cd008f2c5b542d4d04d73a18_blake.png?auto=compress,format"},"_meta":{"uid":"blake_thorne"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Game plan drawing with circles and X layered on top of code illustration","copyright":null,"url":"https://images.prismic.io/www-static/7af7b90903a03d72cbf2f26eb7f3fac06f49bd32_incidentcommssocial_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Getting Started with an Incident Communications Plan","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"At Statuspage, we believe it’s never too early for a team to start thinking about an incident communications plan. When your first big incident happens is way too late. Unplanned downtime can cause customer churn and unmanageable inbound support volume. Just one hour of unplanned downtime can cost organizations more than $100,000—and often much more—according to the latest annual downtime survey from Information Technology Intelligence Consulting Research.","spans":[{"start":3,"end":13,"type":"hyperlink","data":{"link_type":"Web","url":"http://www.statuspage.io"}},{"start":404,"end":459,"type":"hyperlink","data":{"link_type":"Web","url":"http://itic-corp.com/blog/2017/05/hourly-downtime-tops-300k-for-81-of-firms-33-of-enterprises-say-downtime-costs-1m/"}}]},{"type":"paragraph","text":"Some downtime is inevitable, even massive organizations experience outages from time to time. The good news is the harm from downtime can be mitigated by deploying reassuring context and information in a timely fashion. You may hope to never need an incident communications plan but, as any good Site Reliability Engineer (SRE) will tell you, hope is not a strategy.","spans":[]},{"type":"paragraph","text":"Mapping out your team’s first incident communications strategy doesn’t have to be overly complex or resource-draining. In fact, you can accomplish it fairly quickly using these four steps:","spans":[]},{"type":"list-item","text":"Block off two hours (don’t be surprised if you need even less time) with your core team to brainstorm and document a few simple things outlined in this guide. Involve anyone whose work touches an incident, including your ops and customer support leaders.","spans":[]},{"type":"list-item","text":"Use the incident communications planning template to document your strategy.","spans":[{"start":8,"end":49,"type":"hyperlink","data":{"link_type":"Web","url":"https://assets.digitalocean.com/public/IncidentCommsPlan.pdf"}}]},{"type":"list-item","text":"Set a quarterly meeting to review your strategy and make any changes.","spans":[]},{"type":"list-item","text":"Review and adjust your strategy each time you have an incident.","spans":[]},{"type":"heading1","text":"Before the Incident","spans":[]},{"type":"heading2","text":"Know what constitutes an incident","spans":[]},{"type":"paragraph","text":"Sometimes it’s hard to know what exactly to label as an “incident.” Here’s a set of guidelines Google SREs use, where if any one of the following is true the event is considered an incident:","spans":[{"start":75,"end":110,"type":"hyperlink","data":{"link_type":"Web","url":"https://landing.google.com/sre/book/chapters/managing-incidents.html"}}]},{"type":"list-item","text":"Do you need to involve a second team in fixing the problem?","spans":[]},{"type":"list-item","text":"Is the outage visible to customers?","spans":[]},{"type":"list-item","text":"Is the issue unsolved even after an hour’s concentrated analysis?","spans":[]},{"type":"paragraph","text":"Feel free to adopt these exact guidelines, adjust them, or write your own. “If any one of the following is true” is a good format. (Another helpful resource for mapping incident severity is this Severity Definitions guide from VMware.)","spans":[{"start":190,"end":233,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.vmware.com/support/policies/severity.html"}}]},{"type":"paragraph","text":"A note on playing it safe: in our experience it’s better to overcommunicate in situations where you’re uncertain. The inconvenience of closing the loop on an expected incident that never took off far outweighs the downside of playing catch up on incident comms hours into an incident.","spans":[]},{"type":"paragraph","text":"“I’ll just fix this quickly before anyone notices,” is a slippery slope. You might gamble and win the first time you try that, but play the game enough and eventually you’ll lose.","spans":[]},{"type":"heading2","text":"Team Roles","spans":[]},{"type":"paragraph","text":"Define key roles and expectations for incident responders. Clear labels and expectations can prevent a lot of damage in the heat of an incident. While large teams and complex SRE organizations have a web of roles and responsibilities, we see two roles as a good starting point.","spans":[]},{"type":"paragraph","text":"Incident commander","spans":[{"start":0,"end":18,"type":"strong"}]},{"type":"paragraph","text":"The incident commander is in charge of the incident response, making sure everyone is working toward resolution and following through on their tasks. They also are in charge of setting up any communications and documentation channels for the incident. That could be chat rooms, shared pages for documenting the incident, and even physical spaces in the office. This person also drives the post-incident review.","spans":[]},{"type":"paragraph","text":"Communicator","spans":[{"start":0,"end":12,"type":"strong"}]},{"type":"paragraph","text":"The communicator is in charge of translating the technical information into customer communications and getting those communications out via the right channels. They also monitor incoming customer communications and notify the incident commander if new groups of customers become impacted. After the incident, they ensure the post-mortem gets sent out.","spans":[]},{"type":"paragraph","text":"Our recommendation: make it clear from the beginning who has what role in an incident. Even if these people have the bandwidth to help with other areas of the incident, they should respond to these primary objectives first and delegate other tasks where necessary.","spans":[]},{"type":"heading2","text":"Preparation","spans":[]},{"type":"paragraph","text":"With a lean team, any time saved during an incident means a lot. Figuring out the right way to wordsmith an announcement can take up precious time in the heat of an incident.","spans":[]},{"type":"paragraph","text":"Decide on boilerplate language ahead of time and save it in a template somewhere. Use it to plug in the relevant details during an incident when you need it.","spans":[]},{"type":"paragraph","text":"Here is one incident template we use here for our own status page:","spans":[{"start":50,"end":65,"type":"hyperlink","data":{"link_type":"Web","url":"https://metastatuspage.com/"}}]},{"type":"paragraph","text":"\"The site is currently experiencing a higher than normal amount of load, and may be causing pages to be slow or unresponsive. We're investigating the cause and will provide an update as soon as possible.”","spans":[{"start":0,"end":204,"type":"em"}]},{"type":"paragraph","text":"This language is very simple and generic, and can be deployed as-is in a lot of cases where this is all we know. We can also amend the language to add more relevant details if we have them. For example:","spans":[]},{"type":"paragraph","text":"“The site is currently experiencing a higher than normal amount of load due to an incident with one of our larger customers. This is causing about 50% of pages to be unresponsive. We're investigating the cause and will provide an update as soon as possible.”","spans":[{"start":0,"end":258,"type":"em"}]},{"type":"paragraph","text":"You should also define your communications channels during an incident. While we obviously recommend Statuspage, there are a lot of tools you can use: Twitter, email, and company blog, as examples. Just make sure you’re clear where you will be posting messages.","spans":[]},{"type":"heading1","text":"During the incident","spans":[]},{"type":"paragraph","text":"Once the incident begins, we recommend these three “golden rules” which are worth keeping in mind during the incident.","spans":[]},{"type":"heading2","text":"Early","spans":[]},{"type":"paragraph","text":"It’s important to communicate as soon as there is any sign that the incident is impacting customers. Get a message posted as early as possible. It doesn’t have to be perfect. This message serves to reassure users that you’re aware of the issue and actively looking into it. This will also slow down the flood of support tickets and inbound messaging you’re sure to receive during incidents.","spans":[]},{"type":"heading2","text":"Often","spans":[]},{"type":"paragraph","text":"When you’re heads-down working on an incident, it can be easy to let regular updates slide. But these long gaps between updates can cause uncertainty and anxiety for your customers. They can start to expect the worst. Even if you’re just updating to say that you’re still investigating the matter, that’s better than no communication. Bonus points if you give an estimate on when next comms will be (and stick to it).","spans":[]},{"type":"paragraph","text":"Here’s an example a 2016 HipChat incident.","spans":[{"start":0,"end":17,"type":"hyperlink","data":{"link_type":"Web","url":"https://status.hipchat.com/incidents/6zcv7x6rrktk"}}]},{"type":"heading2","text":"Precision","spans":[]},{"type":"paragraph","text":"In your messaging during the incident, be as precise as you can be without guessing or giving non-committal answers.","spans":[]},{"type":"paragraph","text":"Instead of:","spans":[]},{"type":"paragraph","text":"“We think we know what’s going on but we need more time.”","spans":[{"start":0,"end":57,"type":"em"}]},{"type":"paragraph","text":"Try:","spans":[]},{"type":"paragraph","text":"“We’re still working to verify the root cause.”","spans":[{"start":0,"end":47,"type":"em"}]},{"type":"paragraph","text":"Instead of:","spans":[]},{"type":"paragraph","text":"“The problem seems to be database related.”","spans":[{"start":0,"end":43,"type":"em"}]},{"type":"paragraph","text":"Try:","spans":[]},{"type":"paragraph","text":"“We’re continuing to investigate the problem.”","spans":[{"start":0,"end":46,"type":"em"}]},{"type":"paragraph","text":"At first glance this second example may seem counterintuitive. Why leave out the fact that the issue could be database related? Because you aren’t sure yet. Avoiding hedging words like “we think.” Don’t say you “think” you found the root cause. Either you actually have found the cause or you haven’t.","spans":[]},{"type":"paragraph","text":"Once you’ve confirmed the cause, then clearly state as much detail as you’re able to.","spans":[]},{"type":"paragraph","text":"For example:","spans":[]},{"type":"paragraph","text":"“We’ve identified a corruption with our database related to our last deploy. We are currently rolling back that deploy and monitoring results.”","spans":[{"start":0,"end":143,"type":"em"}]},{"type":"heading1","text":"After the Incident","spans":[]},{"type":"paragraph","text":"Some of the biggest opportunities for your team come in the moments after the dust settles from an incident. Your team ideally will run a Post Incident Review session to unpack what happened on the technical side. It’s also a great time to build customer trust by letting them know that you’re taking the incident seriously and taking steps to ensure it doesn’t happen again.","spans":[]},{"type":"paragraph","text":"An incident post-mortem is meant to be written after the incident and give a big picture update of what happened, how it happened, and what steps the team is taking to ensure it isn’t repeated. Here are our post-mortem rules.","spans":[]},{"type":"heading2","text":"Empathize","spans":[]},{"type":"paragraph","text":"Apologize for the inconvenience, thank customers for their patience, and ensure you’re working on a fix.","spans":[]},{"type":"heading2","text":"Be personal","spans":[]},{"type":"paragraph","text":"We see it all the time where teams depersonalize themselves in an effort to seem professional or official. This leads to a cold, distant tone in post-mortems that doesn’t build trust.","spans":[]},{"type":"paragraph","text":"Use active voice and “we” pronouns to tell your story. Steer away from words that are overly academic or corporate sounding when simple ones will do.","spans":[]},{"type":"paragraph","text":"Instead of:","spans":[]},{"type":"paragraph","text":"“Remediation applications on the new load balancer configurations are finalized.”","spans":[{"start":0,"end":81,"type":"em"}]},{"type":"paragraph","text":"Try:","spans":[]},{"type":"paragraph","text":"“We’ve completed the configuration on the new load balancer.”","spans":[{"start":0,"end":61,"type":"em"}]},{"type":"heading2","text":"Details inspire confidence","spans":[]},{"type":"paragraph","text":"People have a good sense for when you’re using a lot of words but not really saying anything. Details are the way to keep your post-mortem from sounding like a lot of hot air.","spans":[]},{"type":"paragraph","text":"Here’s an example from a post-mortem Facebook engineers posted after a 2010 incident.","spans":[{"start":18,"end":84,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.facebook.com/notes/facebook-engineering/more-details-on-todays-outage/431441338919/"}}]},{"type":"paragraph","text":"Consider this paragraph:","spans":[]},{"type":"paragraph","text":"“Today we made a change to the persistent copy of a configuration value that was interpreted as invalid. This meant that every single client saw the invalid value and attempted to fix it. Because the fix involves making a query to a cluster of databases, that cluster was quickly overwhelmed by hundreds of thousands of queries a second.”","spans":[{"start":0,"end":338,"type":"em"}]},{"type":"paragraph","text":"Likely that’s more technical of an explanation than most readers will need. The ones who want this level of detail will appreciate it. The ones who don’t will at least recognize that you’re going above and beyond to explain what happened. A lot of teams worry about being too technical in their messaging and instead wind up sending watered-down communications. Opt for specific details instead.","spans":[]},{"type":"heading2","text":"Close the loop","spans":[]},{"type":"paragraph","text":"The post-mortem is your chance to have the last word in an incident. Leave the reader with a sense of trust and confidence by laying out clearly what you’re doing to keep this from happening again.","spans":[]},{"type":"paragraph","text":"Here’s an example from a Twilio post-mortem:","spans":[{"start":7,"end":43,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.twilio.com/blog/2013/07/billing-incident-post-mortem-breakdown-analysis-and-root-cause.html"}}]},{"type":"paragraph","text":"“In the process of resolving the incident, we replaced the original redis cluster that triggered the incident. The incorrect configuration for redis-master was identified and corrected. As a further preventative measure, Redis restarts on redis-master are disabled and future redis-master recoveries will be accomplished by pivoting a slave.","spans":[{"start":0,"end":341,"type":"em"}]},{"type":"paragraph","text":"The simultaneous loss of in-flight balance data and the ability to update balances also exposed a critical flaw in our auto-recharge system. It failed dangerously, exposing customer accounts to incorrect charges and suspensions. We are now introducing robust fail-safes, so that if billing balances don’t exist or cannot be written, the system will not suspend accounts or charge credit cards. Finally, we will be updating the billing system to validate against our double-bookkeeping databases in real-time.”","spans":[{"start":0,"end":509,"type":"em"}]},{"type":"paragraph","text":"Notice how specific this is with outlining what went wrong and exactly what the team is putting in place to keep the problem from repeating.","spans":[]},{"type":"paragraph","text":"Even though users today expect 24/7 services that are always up, people are tolerant of outages. We’ve heard a lot of stories about outages over the years at Statuspage, nobody ever went out of business by being too transparent or communicative during an incident. Consider the kind of information and transparency you’d like to receive from the products and vendors you use, and try to treat your users the way you’d like to be treated.","spans":[]},{"type":"paragraph","text":"Looking to go even deeper on incident comms exercises? Check out our recent Team Playbook plays on incident response values and incident response communications.","spans":[{"start":0,"end":161,"type":"em"},{"start":99,"end":123,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.atlassian.com/team-playbook/plays/incident-values"}},{"start":128,"end":160,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.atlassian.com/team-playbook/plays/incident-response-communications"}}]},{"type":"paragraph","text":"Blake Thorne is a Product Marketing Manager at Statuspage, which helps teams big and small with incident communications. He can be reached at bthorne@atlassian.com or on Twitter.","spans":[{"start":142,"end":163,"type":"hyperlink","data":{"link_type":"Web","url":"mailto:bthorne@atlassian.com"}},{"start":170,"end":177,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/blakethorne"}}]}],"blog_post_date":"2018-04-26","tags":[{"tag1":{"tag":"Engineering","_linkType":"Link.document","_meta":{"uid":"engineering"}}}],"_meta":{"uid":"getting-started-with-an-incident-communications-plan"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Jaime Woo","author_image":{"dimensions":{"width":960,"height":895},"alt":"Jaime Woo","copyright":null,"url":"https://images.prismic.io/www-static/318ff445a77048bed7becaef09b052a6ea607178_digitalocean---copy.jpg?auto=compress,format"},"_meta":{"uid":"jaime_woo"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Ruby gem on a rollercoaster ","copyright":null,"url":"https://images.prismic.io/www-static/92392fd7c40c49bbd7a5203031f60f9810055ac7_railsconfsocial_blog.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Pittsburgh, We’ll See Yinz at RailsConf!","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"RailsConf has left the desert and makes its way to Steel City April 17-19, 2018. We’ll have Sam Phippen presenting, and several DO-ers checking out talks and tending our booth. Here’s what you need to know about RailsConf 2018.","spans":[{"start":51,"end":79,"type":"hyperlink","data":{"link_type":"Web","url":"https://railsconf.com/"}}]},{"type":"paragraph","text":"In Sam’s talk, “Quick and easy browser testing using RSpec and Rails 5.1,” you'll learn about the new system specs in RSpec, how to set them up, and what benefits they provide. It’s for anyone wanting to improve their RSpec suite with full-stack testing.","spans":[]},{"type":"paragraph","text":"From the talk description:","spans":[{"start":0,"end":25,"type":"hyperlink","data":{"link_type":"Web","url":"https://railsconf.com/program/sessions#session-577"}}]},{"type":"paragraph","text":"Traditionally doing a full-stack test of a Rails app with RSpec has been problematic. The browser wouldn't automate, capybara configuration would be a nightmare, and cleaning up your DB was difficult. In Rails 5.1 the new 'system test' type was added to address this. With modern RSpec and Rails, testing every part of your stack including Javascript from a browser is now a breeze.","spans":[{"start":0,"end":382,"type":"em"}]},{"type":"paragraph","text":"Make sure you don’t miss it, Thursday, April 19, from 10:50 AM-11:30 AM in the Spirit of Pittsburgh Ballroom. If you’re interested in RSpec, you might dig his talk from 2017, “Teaching RSpec to Play Nice with Rails.”","spans":[{"start":29,"end":108,"type":"strong"},{"start":176,"end":214,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=jyPfrK1y1nc"}}]},{"type":"paragraph","text":"You can also catch us in the Exhibit Hall, at booth number 520. The Hall is on Level 2, in Hall A. We’ll be hanging at our booth Wednesday, April 18 from 9:30 AM-6:00 PM, and Thursday, April 19 from 9:30 AM-5:15 PM.","spans":[{"start":46,"end":62,"type":"strong"}]},{"type":"paragraph","text":"See you there, or, as they say in Pittsburgh, meechinsdahnair!","spans":[]}],"blog_post_date":"2018-04-18","tags":[{"tag1":{"tag":"Developer Relations","_linkType":"Link.document","_meta":{"uid":"developer-relations"}}},{"tag1":{"tag":"Engineering","_linkType":"Link.document","_meta":{"uid":"engineering"}}}],"_meta":{"uid":"pittsburgh-well-see-you-at-railsconf"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Daniel Zaltsman","author_image":{"dimensions":{"width":188,"height":188},"alt":"Daniel Zaltsman","copyright":null,"url":"https://images.prismic.io/www-static/663d428f56c46eeb165c811add8f1f60402aa451_daniel_zaltsman-c47f4847.png?auto=compress,format"},"_meta":{"uid":"daniel_zaltsman"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Two hands high fiving illustration","copyright":null,"url":"https://images.prismic.io/www-static/3c16c4d97dd48415f2ab15678999ed51ed391286_developer_advocates_blog_color2-1.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"April Community Doers: Meetup Edition","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"On the six-year voyage toward becoming the cloud platform for developers and their teams, we have received tremendous support from the larger developer community. We’ve seen hundreds of Meetups organized, pull requests submitted, tutorials written, and Q&As contributed, with even more ongoing activity. To show our appreciation, last month we introduced a new way to highlight some of our most active community contributors - our Community Doers!","spans":[{"start":186,"end":193,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/pro/digitalocean/"}},{"start":205,"end":218,"type":"hyperlink","data":{"link_type":"Web","url":"https://github.com/digitalocean/doctl/pulls?q=is%3Apr+is%3Aclosed"}},{"start":230,"end":239,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/tutorials/"}},{"start":253,"end":257,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/questions?primary_filter=trending"}},{"start":441,"end":446,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community#do-ers"}}]},{"type":"paragraph","text":"Community Doers help make the community better through the content they create and the value they add. In addition to the Community homepage, we’ll regularly highlight Community Doers on the blog, Infrastructure as a Newsletter, social media, and to our growing internal community. In March, we were excited to bring you the trio of Marko, Mateusz, and Peter. This month, with a focus on our global Meetup community, we have three new individuals for you to get to know and celebrate with us. Without further ado, meet April’s featured Community Doers:","spans":[{"start":197,"end":227,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/newsletter"}},{"start":254,"end":261,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.linkedin.com/company/digitalocean/"}},{"start":333,"end":338,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/xmudrii?primary_filter=tutorials"}},{"start":340,"end":347,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/mati"}},{"start":353,"end":358,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/DigitalOceanHsinchu/"}}]},{"type":"paragraph","text":"Aditya Patawari(@adityapatawari)","spans":[{"start":0,"end":15,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/adityapatawari"}},{"start":0,"end":32,"type":"strong"},{"start":15,"end":32,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/adityapatawari"}}]},{"type":"paragraph","text":"Aditya is an early adopter and advocate of DigitalOcean, so it’s no surprise that he became the first organizer of our second largest Meetup group, based in Bangalore. He has been producing Meetups since 2016 and has served as a speaker and panelist at consecutive DigitalOcean TIDE conferences. His talk on foolproofing business through infrastructure gap analysis was well received at TIDE New Delhi, and we later invited him to conduct an online webinar on setting up a multi-tier web application with Ansible. We’re extremely proud and excited to be working with him because of his passion for education and for helping the wider community.","spans":[{"start":13,"end":18,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/adityapatawari/status/723742019445612544"}},{"start":157,"end":166,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/DigitalOceanBangalore/"}},{"start":190,"end":197,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/adityapatawari/status/754190674912808960"}},{"start":278,"end":282,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/hashtag/DOTide?src=hash&amp;lang=en"}},{"start":300,"end":304,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=yv1T1MqiEqA"}},{"start":449,"end":456,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=X4jxywaK9fM"}}]},{"type":"paragraph","text":"Samina Fu(@sufuf3149)","spans":[{"start":0,"end":9,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/sufuf3149"}},{"start":0,"end":21,"type":"strong"},{"start":9,"end":21,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/sufuf3149"}}]},{"type":"paragraph","text":"For the second month running, we are proud to highlight the work of our active Taiwan community. Specifically, we are excited to recognize Samina Fu, a Network and Systems Engineering graduate of National Chiao Tung University in Taiwan. Samina is a co-organizer of our Hsinchu community, which she has been bringing together since early 2017. She helped to organize our first of 120 Hacktoberfest Meetups last year, and works closely with Peter Hsu (who we highlighted last month) as a core contributor to the CDNJS project.","spans":[{"start":308,"end":325,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/DigitalOceanHsinchu/events/past/"}},{"start":371,"end":376,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/DigitalOceanHsinchu/events/243649913/"}},{"start":470,"end":480,"type":"hyperlink","data":{"link_type":"Web","url":"https://blog.digitalocean.com/introducing-community-doers-march-edition/"}}]},{"type":"paragraph","text":"David Endersby(@davidendersby1)","spans":[{"start":0,"end":14,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/users/davetherave2010"}},{"start":0,"end":31,"type":"strong"},{"start":14,"end":31,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/DavidEndersby1"}}]},{"type":"paragraph","text":"When David filled out our Meetup Organizer Application Form in September 2016, we didn’t know he would go on to lead one of our largest and most active Meetup communities. Since early 2017, David has worked hard to develop a blueprint for successfully running a new Meetup community, covering everything from starting out, to finding speakers, to time management, choosing a location, feeding attendees, and more. His efforts have produced a wealth of content and he has an ambitious plan for 2018. If you’re interested in joining, he welcomes you with open arms!","spans":[{"start":26,"end":59,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.google.com/forms/d/e/1FAIpQLSdJE0FEiMAVMmwFwkXzVlUu6gtFyHz35kYZGW5PPlZj1ElpHg/viewform?c=0&amp;w=1"}},{"start":128,"end":135,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/DigitalOceanAmsterdam/events/past/?_cookie-check=oqalp0BDukCUs61k"}},{"start":225,"end":234,"type":"hyperlink","data":{"link_type":"Web","url":"https://medium.com/@daendersby/a-year-in-review-the-digitalocean-amsterdam-meetup-fd8e7a4363c6"}},{"start":452,"end":459,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.youtube.com/watch?v=UaZKdDUKBPk"}},{"start":548,"end":562,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/DavidEndersby1/status/816261005374263296"}}]},{"type":"paragraph","text":"Aditya’s, Samina’s, and David’s efforts exemplify the qualities we are proud to see in our community. They all have a knack for educating the community (off- and online), promoting both learning and community collaboration. But there are so many others we have yet to recognize! We look forward to highlighting more of our amazing community members in the months to come.","spans":[]},{"type":"paragraph","text":"Are you interested in getting more involved in the DigitalOcean community? Here are a few places to start:","spans":[]},{"type":"list-item","text":"Share a project that you’ve built with our API.","spans":[{"start":0,"end":15,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/projects"}}]},{"type":"list-item","text":"Share your knowledge in our community Q&A section.","spans":[{"start":28,"end":49,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/community/questions"}}]},{"type":"list-item","text":"Join our Write for DOnations program and contribute to our library of tutorials.","spans":[{"start":9,"end":28,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.digitalocean.com/write-for-donations/"}}]},{"type":"list-item","text":"Get involved in your local DigitalOcean Meetup or start your own.","spans":[{"start":21,"end":46,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.meetup.com/pro/digitalocean/"}},{"start":50,"end":64,"type":"hyperlink","data":{"link_type":"Web","url":"https://docs.google.com/forms/d/e/1FAIpQLSfdGnLX61AkpkdnMFO__QKaweNZFm93Z0eW_Jw-Vic0izF2Kg/viewform?c=0&amp;w=1"}}]},{"type":"paragraph","text":"Know someone who fits the profile? Nominate a member to be recognized in the comments!","spans":[]}],"blog_post_date":"2018-04-13","tags":[{"tag1":{"tag":"Community","_linkType":"Link.document","_meta":{"uid":"community"}}}],"_meta":{"uid":"april-community-do-ers-meetup-edition"}}},{"node":{"author":{"_linkType":"Link.document","author_name":"Tom Spiegelman","author_image":{"dimensions":{"width":892,"height":772},"alt":"Tom Spiegelman","copyright":null,"url":"https://images.prismic.io/www-static/ae5336e19ec28b1509eb6321c57124f56704d81f_screen-shot-2017-09-25-at-12.18.13-pm.png?auto=compress,format"},"_meta":{"uid":"tom_spiegelman"}},"blog_header_image":{"dimensions":{"width":784,"height":418},"alt":"Woman and Male Developers talking illustration","copyright":null,"url":"https://images.prismic.io/www-static/c46ee9ed2681cc2f82facb789cb95fd7f05de1b0_mentoringengineers_blog-1.png?auto=compress,format"},"blog_headline":[{"type":"heading1","text":"Mentoring Engineers Through An Engineering Fellowship Program","spans":[]}],"blog_post_content":[{"type":"paragraph","text":"For two years, I’ve managed the Infrastructure Engineering (“Infra”) team at DigitalOcean. We’re responsible for managing all servers and machines up to the application layer. This includes hardware spec, firmware, component validation, base OS, configuration management, and hardware management (hardware management database).","spans":[]},{"type":"paragraph","text":"In addition to my core responsibilities managing the Infra team, I wanted to foster an environment where mentorship was possible and worked with colleagues to create the Infrastructure Engineering Fellowship Program. It’s an immersive program where DigitalOcean employees from other teams “join” the Infra team for two weeks. Employees with fundamental Linux knowledge and some configuration management experience are eligible to participate.","spans":[]},{"type":"paragraph","text":"“Fellows”—as they are known—are invited to a private Slack channel with fellowship alum. They work through JIRA tickets assigned to the team (all while pairing with Infra team engineers), attend team stand-ups, and finally, pick a project to work on for the two week duration. Additionally, fellows meet with me at the start and end of each week to discuss what they worked on and to answer questions they have. To date, we’ve had nine people complete the fellowship and we continue to open the fellowship up to other engineers at DO.","spans":[]},{"type":"heading3","text":"How the Fellowship Started","spans":[]},{"type":"paragraph","text":"This program started as a cross-team training experience between my team and the Tier-2 Cloud Operations team (the 24/7 team responsible for uptime on our servers and services), since both of our teams interacted with each other on a daily basis. After a few successful trials with the Cloud Operations team, we realized that there were several other teams that were interested in learning what we do and wanted to take advantage of the fellowship program. We have now had people from five different teams sign up and participate in the program.","spans":[]},{"type":"paragraph","text":"My team gets so much more out of the fellowship than we put in. First, we build comradery between the wider organization and my team. Individuals we only worked with through JIRA and Slack now have a personal relationship with the team and are more eager to engage and work with us. My team gains a better perspective of what other teams go through and work on a daily basis which helps us build better tools and workflows to support them. Finally, it is a great way to recruit. Engineers that have been hired for my team came through the fellowship program.","spans":[]},{"type":"paragraph","text":"Growing people internally is one of the greatest things I have done with my career. I have had three people join my team from inside the company and have been very successful in their new roles. In a perfect world, we would pair every senior engineer on the team with one engineer still early in their career. In my experience, when looking at the “Tuckman's stages of group development” you will have the best performing team when you have mentors and mentees going through the four stages together as a team:","spans":[]},{"type":"image","url":"https://images.prismic.io/www-static/9e553fc24522dfde4c08d234d1e805766b24aca3_tuckman_team_development-large1.png?auto=compress,format","alt":"Tuckman 4-stages of group development","copyright":null,"dimensions":{"width":600,"height":324}},{"type":"paragraph","text":"Tuckman's stages of group development. Photo credit: Tutorials Point","spans":[{"start":0,"end":68,"type":"em"},{"start":53,"end":68,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.tutorialspoint.com/individual_and_group_behavior/five_stage_model_group_development.htm"}}]},{"type":"heading3","text":"Managing the Fellowship Program","spans":[]},{"type":"paragraph","text":"One of the things that we keep top of mind is sustainability. Although two weeks isn’t very long, properly mentoring someone takes a lot of time, and we want to make sure no one feels overwhelmed by the experience. We currently take on just one fellow at a time, and we cater the program to each participant. For example, if a fellow is more interested in hardware than big data, they might pair with our integration team who is charged with managing hardware and firmware, rather than our DevOps-focused team.","spans":[]},{"type":"paragraph","text":"There are a few benefits of managing the fellowship this way. One, we can iterate quickly since the program lasts just two weeks. And two, we can focus our energies on mentoring just one person at a time to limit straining the team’s bandwidth. Based on feedback from past fellows, we’ve changed how we handle our 1:1s with engineers and code pairing sessions. We now conduct 1:1s with specific goals in mind. Each fellow is asked to give feedback at the very end of the program to help us guide future fellows.","spans":[]},{"type":"paragraph","text":"That said, the same benefits are in some ways ongoing challenges. Working with each fellow individually takes up my time, but it also affects the engineers on my team. They need to take time out of their busy schedules to pair with the fellow by breaking their usual workflow and compelling them to walk through projects step by step. This means something that may take them an hour ends up taking most of a day.","spans":[]},{"type":"paragraph","text":"That said, we’re able to make this work because we work on a number of tasks and projects at any given time. If a team is working on one long-term project, the time it takes to explain the project to someone won’t actually yield any benefit in a two-week long program. The fellowship program (and programs like it) really need to be catered to the participant and the team that they are embedding with.","spans":[]},{"type":"heading3","text":"What Makes It Worthwhile","spans":[]},{"type":"paragraph","text":"As I pointed out earlier, pairing engineers with more senior engineers leads to better performing teams. Furthermore, there is an even stronger connection when you pair engineers that have proprietary or historical knowledge from inside the company. I am a firm believer that if strong minded, eager-to-learn engineers exist within the company, you shouldn’t hire from outside the company. Creating infrastructure that supports mentorship leads to strong engineers, strong teams, and a strong company.","spans":[]},{"type":"paragraph","text":"I love seeing people continue to have conversations and work on projects with my team after the fellowship is over. It is simply amazing to see, and I give all the credit to the engineers on my team. Every one of them is eager to pass on knowledge that they have, and they’ve embraced the fellowship and its goals. The fellowship wouldn’t have been successful if my team didn’t share the same beliefs around mentorship and its cross-team benefits that I have.","spans":[]},{"type":"heading3","text":"Future of the Fellowship","spans":[]},{"type":"paragraph","text":"When I started my career in IT, I had an amazing mentor (shout out to Rob Lahnemann) who really took me under his wing and taught me everything he could about programming, Linux, and networking. My manager at the time (shout out to Eric Austin) set this up and put me in a place to succeed as a mentee. This experience really influenced what I believe it means to be a good manager. Pairing engineers eager to learn with senior engineers is huge key factor in any successful team. In the current engineering community, it is not uncommon to find engineers who are not influenced to share their knowledge or are not given the time to be a mentor. But in my opinion, growing as an engineer means being a mentor.","spans":[]},{"type":"paragraph","text":"In the future, I would love to see the program more of a revolving door of people doing more work with the Infrastructure Engineering team and doing the fellowship program multiple times (hopefully sometimes for longer than two weeks). I also would love to influence programs like this more often inside DigitalOcean and outside DigitalOcean. One of my biggest goals and drivers in writing this is to influence similar programs in the industry as a whole. My career and pace of growth was directly influenced by a strong mentor, so my passion here for influencing more mentor/mentee relations in the industry is high.","spans":[]},{"type":"paragraph","text":"Tom Spiegelman is an Infrastructure Engineering Manager at DigitalOcean. He has an awesome dog, a great team, and is married to the amazing Chantal Spiegelman. He is passionate about all things tech, specifically infrastructure. You can find him on LinkedIn or on Twitter.","spans":[{"start":0,"end":272,"type":"em"},{"start":249,"end":257,"type":"hyperlink","data":{"link_type":"Web","url":"https://www.linkedin.com/in/tspiegs/"}},{"start":264,"end":271,"type":"hyperlink","data":{"link_type":"Web","url":"https://twitter.com/tspeegs"}}]}],"blog_post_date":"2018-04-03","tags":[{"tag1":{"tag":"Engineering","_linkType":"Link.document","_meta":{"uid":"engineering"}}},{"tag1":{"tag":"Culture","_linkType":"Link.document","_meta":{"uid":"culture"}}}],"_meta":{"uid":"mentoring-engineers-through-an-engineering-fellowship-program"}}}]}}}